5.1.6.2 OAuthおよびOracle HTTP Serverの構成

OAA、OARMおよびOUAでは、OAuthサービスを有効にしてOracle Access Management (OAM)デプロイメントにアクセスする必要があります。OAM OAuthおよびOAAに関連するエントリを使用してOracle HTTP Serverを構成する必要があります。

OAA、OARMおよびOUAのユーザー・インタフェース(UI)コンポーネント(管理コンソールおよびセルフサービス・ポータル)は、OAM OAuthによって保護されます。OAAインストールでは、次のようにOAM OAuthが自動的に構成されます:
  • OAMでOAuthが有効化されます。
  • OAAに必要なOAuthコンポーネント(アイデンティティ・ドメイン、リソース、クライアント)が作成されます。
  • 既存のIAM Suiteアプリケーション・ドメイン内に必要なOAMリソースが作成されます。

「サポートされているアーキテクチャ」のOAAサンドボックス・デプロイメント・アーキテクチャの場合、OHSがOAMおよびOAAのプロキシとして使用されます。デプロイメントを容易にするために、Oracle HTTP Server (OHS)を関連するエントリで更新する必要があります。

Oracle HTTP Serverの構成

次の手順では、SSLがOHSで終端するため、ssl.conf内の関連するSSL <VirtualHost>セクションですべてのエントリが更新されていることを前提としています。SSLがロード・バランサで終端するなど、別のアーキテクチャの場合は、その環境に関連するOHS構成ファイルを更新します。OHS構成ファイルの更新の詳細は、「Oracle HTTP Serverの操作」を参照してください。

  1. OAuthのRewriteRulesに次のエントリを追加します:

    ノート:

    OAADomainは、OAAインストールによってOAMに作成されるOAuthドメインになります。
    <IfModule mod_rewrite.c>
      RewriteEngine on
      RewriteRule ^/oauth2/rest/authorize? /oauth2/rest/authorize?domain=OAADomain [PT,QSA,L]
      RewriteRule ^/oauth2/rest/token? /oauth2/rest/token?domain=OAADomain [PT,QSA,L]
      RewriteRule ^/oauth2/rest/token/info? /oauth2/rest/token/info?domain=OAADomain [PT,QSA,L]
      RewriteRule ^/oauth2/rest/authz? /oauth2/rest/authz?domain=OAADomain [PT,QSA,L]
      RewriteRule ^/oauth2/rest/userinfo? /oauth2/rest/userinfo?domain=OAADomain [PT,QSA,L]
      RewriteRule ^/oauth2/rest/security? /oauth2/rest/security?domain=OAADomain [PT,QSA,L]
      RewriteRule ^/oauth2/rest/userlogout? /oauth2/rest/userlogout?domain=OAADomain [PT,QSA,L]
    </IfModule>
    
    <IfModule mod_headers.c>
      #Add Identity domain header always for OpenID requests
      RequestHeader set X-OAUTH-IDENTITY-DOMAIN-NAME "OAADomain"
    </IfModule>
  2. OHS構成ファイルに次のOAMエントリが存在することを確認します:

    ノート:

    OAMサンドボックス・デプロイメント・アーキテクチャの前提条件を考慮すると、次のエントリはすでに存在しているはずです。ここでは、完全を期すためにこれらを記載しています。
    
    #OAM entries	
    <Location /oam>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /oam/services/rest/auth>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID   
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /oam/services/rest/access>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /oamfed>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    # OAM Forgotten Password Page
    <Location /otpfp/>   
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID 
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /ms_oauth>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /oauth2>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    
    </Location>
      
    <Location /.well-known/openid-configuration>
      WLSRequest ON
      DynamicServerList OFF
      PathTrim /.well-known
      PathPrepend /oauth2/rest
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID 
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /.well-known/oidc-configuration>
      WLSRequest ON
      DynamicServerList OFF
      PathTrim /.well-known
      PathPrepend /oauth2/rest
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID 
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /CustomConsent>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID 
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    <Location /iam/access>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_Managed_Server_Host>
      WebLogicPort <OAM_Managed_Server_Port>
    </Location>
      
    # WebLogic Console Access
    <Location /console>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
    
    <Location /management>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /consolehelp>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /em>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /oamconsole>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /access>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_Policy_Managed_Server_Host>
      WebLogicPort  <OAM_Policy_Managed_Server_Port>
    </Location>
      
    <Location /iam/admin>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /oam/services/rest/11.1.2.0.0>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /oam/services/rest/ssa>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /oam/services>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
      
    <Location /dms>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID   
      WebLogicHost <OAM_AdminServer_Host>
      WebLogicPort <OAM_AdminServer_Port>
    </Location>
       
  3. 次のOAAエントリをOHS構成ファイルに追加します:

    ノート:

    管理者は、次のことに注意する必要があります:
    • 次の例では、3つのワーカー・ノード<K8S_WORKER_HOST1><K8S_WORKER_HOST2><K8S_WORKER_HOST3>を持つKubernetesクラスタにOAAをデプロイすることを前提としています。必要に応じて変更し、「構成のチェックポイント」に従って、これらの値を関連するワーカー・ノードの完全修飾ホスト名に置き換えます。
    • ポート30777はイングレス・コントローラのHTTPポートで、後から「イングレス・コントローラの構成」で作成します。
    
    ## OAA entries
    <Location /oaa-admin>
      WLSRequest ON
      WLCookieName OAMJSESSIONID
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777, <K8S_WORKER_HOST2>:30777, <K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /admin-ui>
      WLSRequest ON
      WLCookieName OAMJSESSIONID
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-policy>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /policy>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /risk-cc>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oua-admin-ui>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa/runtime>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa/rui>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa/authnui>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /fido>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-email-factor>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-sms-factor>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-totp-factor>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-push-factor>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-yotp-factor>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-kba>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /risk-analyzer>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oua>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
    
    <Location /oaa-drss>
      WLSRequest ON
      DynamicServerList OFF
      WLProxySSL ON
      WLProxySSLPassThrough ON
      WLCookieName OAMJSESSIONID
      WebLogicCluster <K8S_WORKER_HOST1>:30777,<K8S_WORKER_HOST2>:30777,<K8S_WORKER_HOST3>:30777
    </Location>
  4. Oracle HTTP Serverを再起動します。「Oracle HTTP Serverインスタンスの再起動」を参照してください。

OAMのOAMリソース

前述のように、OAAインストールでは、既存のIAM Suiteアプリケーション・ドメインに必要なすべてのOAMリソースおよび関連するポリシーが作成されます。

次の表に、OAAインストールによって追加されるすべてのリソースを示します:
製品 リソース・タイプ ホスト識別子 リソースURL 保護レベル 認証ポリシー 認可ポリシー
OAM HTTP IAMSuiteAgent /oauth2/rest/** 除外    
OAM HTTP IAMSuiteAgent /oam/** 除外    
OAM HTTP IAMSuiteAgent /.well-known/openid-configuration 除外    
OAM HTTP IAMSuiteAgent /iam/access/binding/api/v10/oap/** 除外    
OAM HTTP IAMSuiteAgent /oam/services/rest/** 除外    
OAM HTTP IAMSuiteAgent /iam/admin/config/api/v1/config/** 除外    
OAM HTTP IAMSuiteAgent /oauth2/rest/approval 保護 OAuth認証ポリシー 保護リソース・ポリシー
OAM HTTP IAMSuiteAgent /oam/pages/consent.jsp 保護 OAuth認証ポリシー 保護リソース・ポリシー
OAA HTTP IAMSuiteAgent /oaa-admin/** 除外    
OAA HTTP IAMSuiteAgent /admin-ui/** 除外    
OAA HTTP IAMSuiteAgent /oaa/** 除外    
OAA HTTP IAMSuiteAgent /policy/** 除外    
OAA HTTP IAMSuiteAgent /oaa-email-factor/** 除外    
OAA HTTP IAMSuiteAgent /oaa-sms-factor/** 除外    
OAA HTTP IAMSuiteAgent /oaa-totp-factor/** 除外    
OAA HTTP IAMSuiteAgent /oaa-yotp-factor/** 除外    
OAA HTTP IAMSuiteAgent /fido/** 除外    
OAA HTTP IAMSuiteAgent /oaa-kba/** 除外    
OAA HTTP IAMSuiteAgent /oaa-push-factor/** 除外    
OAA HTTP IAMSuiteAgent /risk-analyzer/** 除外    
OAA HTTP IAMSuiteAgent /risk-cc/** 除外    
OAA HTTP IAMSuiteAgent /consolehelp/** 除外    
OAA HTTP IAMSuiteAgent /otpfp/** 除外    
OAA HTTP IAMSuiteAgent /oua/** 除外    
OAA HTTP IAMSuiteAgent /oua-admin-ui/** 除外    
OAA HTTP IAMSuiteAgent /oaa-drss/** 除外    

ノート:

IAM SuiteおよびIAMSuiteAgent以外のものを使用している場合は、これらのリソースをすべて手動で作成する必要があります。