28 エンタープライズ・デプロイメント用のシングル・サインオンの構成

Oracle Access Managerでシングル・サインオンを有効化するために、Oracle HTTP Server WebGateを構成する必要があります。

この章の内容は次のとおりです。

Oracle WebGateについて

Oracle WebGateは、HTTPリクエストを捕捉して、認証と認可を行うために既存のOracle Access Managerインスタンスに転送するWebサーバー・プラグインです。

Oracle Fusion Middleware 12cの場合、Oracle WebGateソフトウェアはOracle HTTP Server 12cソフトウェア・インストールの一部としてインストールされます。『Oracle Access Management管理者ガイド』で、OAM 11gエージェントの登録と管理に関する項を参照してください。

Oracle HTTP Server Webgateの構成の一般的な前提条件

Oracle HTTP Server WebGateを構成するには、動作保証されたバージョンのOracle Access Managerをインストールして構成しておく必要があります。

最新情報は、Oracle Fusion Middlewareのサポートされるシステム構成ページで、ご使用のリリース向けの動作保証情報のドキュメントを参照してください。

WebGateの動作保証マトリクスについては、クリックしてhttp://www.oracle.com/technetwork/middleware/id-mgmt/downloads/oam-webgates-2147084.htmlを開き、「Certification Matrix for 12c Access Management WebGates」リンクをクリックして動作保証マトリクスのスプレッドシートをダウンロードします。

ノート:

本番環境の場合は、エンタープライズ・デプロイメントをホストしているマシンではなく、専用の環境にOracle Access Managerをインストールすることを強くお薦めします。

Oracle Access Managerの詳細は、Oracle Help CenterMiddlewareドキュメントにある最新のOracle Identity and Access Managementドキュメントを参照してください。

エンタープライズ・デプロイメント用にOracle HTTP Server 12c Webゲートを構成

WEBHOST1とWEBHOST2の両方でOracle HTTP Server 12c WebGate for Oracle Access Managerを構成するには、次のステップを実行する必要があります。

次の手順では、WEB_ORACLE_HOMEWEB_CONFIG_DIRなどのディレクトリ変数を「このガイドで使用するファイル・システムとディレクトリ変数」で定義された値に置き換えてください。

  1. Web層ドメインの完全なバックアップを実行します。

  2. ディレクトリをOracle HTTP ServerのOracleホームの次の場所に変更します。

    cd WEB_ORACLE_HOME/webgate/ohs/tools/deployWebGate/

  3. 次のコマンドを実行して、WebGateインスタンス・ディレクトリを作成し、OHSインスタンスでのWebGateロギングを有効にします。
    ./deployWebGateInstance.sh -w WEB_CONFIG_DIR -oh WEB_ORACLE_HOME
    たとえば:
    ./deployWebGateInstance.sh -w /u02/private/oracle/config/domains/ohsDomain/config/fmwconfig/components/OHS/ohs1 -oh /u01/oracle/products/web
  4. deployWebGateInstanceコマンドでwebgateディレクトリおよびサブディレクトリが作成されたことを確認します。

    ls -lat WEB_CONFIG_DIR/webgate/
    
    total 16
    drwxr-x---+ 8 orcl oinstall 20 Oct  2 07:14 ..
    drwxr-xr-x+ 4 orcl oinstall  4 Oct  2 07:14 .
    drwxr-xr-x+ 3 orcl oinstall  3 Oct  2 07:14 tools
    drwxr-xr-x+ 3 orcl oinstall  4 Oct  2 07:14 config
    
  5. 次のコマンドを実行し、LD_LIBRARY_PATH変数にWEB_ORACLE_HOME/libディレクトリ・パスが含まれるようにします。

    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:WEB_ORACLE_HOME/lib

  6. ディレクトリを次のディレクトリに変更します。

    WEB_ORACLE_HOME/webgate/ohs/tools/setup/InstallTools

  7. InstallToolsディレクトリから次のコマンドを実行します。
    ./EditHttpConf -w WEB_CONFIG_DIR -oh WEB_ORACLE_HOME -o output_file_name
    たとえば:
    ./EditHttpConf -w /u02/private/oracle/config/domains/ohsDomain/config/fmwconfig/components/OHS/ohs1 -oh /u01/oracle/products/web

    ノート:

    -oh WEB_ORACLE_HOMEおよび-o output_file_nameパラメータはオプションです。

    このコマンドは:

    • apache_webgate.templateファイルをOracle HTTP ServerのOracleホームからOracle HTTP Server構成ディレクトリの新しいwebgate.confファイルにコピーします。

    • httpd.confファイルを更新して1行を追加し、webgate.confが含まれるようにします。

    • WebGate構成ファイルを生成します。ファイルのデフォルト名はwebgate.confですが、コマンドに対して-o output_file_name引数を使用してカスタム名を使用できます。

OAM REST OAPコールとヘルス・チェックの有効化

Oracle Access Manager 12cでは、WebGateはREST APIコールを介してOracle Access Managerと対話します。WebGateがこれらのREST APIに対して無制限にアクセスできるようにするには、WEB_CONFIG_DIR/webgate.confファイルを更新する必要があります。

たとえば:
/u02/private/oracle/config/domains/ohsDomain/config/fmwconfig/components/OHS/ohs1/webgate.conf

WEB_CONFIG_DIR/webgate.confを更新するには:

  1. 次の行を追加します。
    <LocationMatch "/iam/access/binding/api/v10/oap">
        require all granted
    </LocationMatch>
  2. ヘルス・チェックを有効にするには、次の行を追加します:

    ノート:

    このステップは、「ヘルス・チェックの作成」で説明されているヘルス・チェックを作成した場合に適用できます。
    
    <LocationMatch "/health-check.html">
        require host webtier.com
        request ip IP ADDRESS OF LOADBALANCER
    </LocationMatch>

    ノート:

    前述のwebtier.comの例では、ロード・バランサが存在する特定のサブネットへのアクセスを制限するために、require hostが使用されます。または、ロード・バランサのIPアドレスをリクエストする句を使用して、ロード・バランサのアドレスを指定することもできます。これは、ロード・バランサのIPアドレスであり、ロード・バランサに割り当てられた浮動IPアドレスではありません。これにより、OHSがロード・バランサにヘルス・チェック・テストのみを返すようになります。

    ロード・バランサでWebサーバーが停止していることが示された場合は、OHSアクセス・ログをチェックして、拒否されたリクエストの原因を確認する必要があります。これは、ドメインの適切なIPアドレスに制限していない場合に発生する可能性があります。

    組織の外部にヘルス・チェックが公開されないように、リクエスト・ホストをインターネット・ドメインに設定しないでください。

  3. ファイルを保存します。

Webゲートへのロード・バランサ証明書の追加

Oracle WebGate 12cは、RESTコールを使用してOracle Access Manager 12cと対話します。通信が正しく行われるように、ロード・バランサ証明書をWebゲート構成にコピーし、RESTエンドポイントが正しく設定されていることを確認する必要があります。

WebGate構成へのロード・バランサ証明書のコピー

WebGateは、ロード・バランサ証明書を信頼する必要があります。この信頼を確保するには、WEB_CONFIG_DIR/webgate/configにあるcacert.pemファイルにロード・バランサの証明書認証局チェーンを追加する必要があります。

ロード・バランサの証明書は、Firefoxなどのブラウザを使用して取得できます。ただし、証明書を取得する最も簡単な方法は、opensslコマンドを使用します。コマンドの構文は、次のとおりです。
openssl s_client -connect <LOADBALANCER>:<PORT> -showcerts </dev/null 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > LOADBALANCER.pem
たとえば:
openssl s_client -connect login.example.com:443 -showcerts </dev/null 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > login.example.com.pem

このコマンドにより、証明書がlogin.example.com.pemという名前のファイルに保存されます。

Webゲート・トラストストアにロード・バランサ証明書がない場合は、login.example.com.pemファイルをWEB_CONFIG_DIR/webgate/config renaming it to cacert.pemにコピーします。

たとえば:
cp login.example.com.pem WEB_CONFIG_DIR/webgate/config/cacert.pem

WebGateに信頼できる証明書がすでにある場合は、その証明書をcacert.pemファイルに追加します。

たとえば:
cp login.example.com.pem >> WEB_CONFIG_DIR/webgate/config/cacert.pem

RESTエンドポイントが正しく設定されていることの確認

RESTエンドポイントが正しく設定されていることを確認するには:

  1. OAM管理者アカウントを使用してOAMコンソールにログインします。
  2. 「エージェント」をクリックします。
  3. 「検索」をクリックします。
  4. 検索結果からWebゲート・エージェントの名前を見つけてクリックし、編集画面を開きます。
  5. 「ユーザーのプロパティ」画面を開き、次のパラメータが正しく定義されていることを確認します:
    • OAMRestEndPointHostName = login.example.com
    • OAMRestEndPointPort = 443
    • OAMServerCommunicationMode = HTTPS

    これらの値は、Oracle Access Managerインストールのログイン・ポイントを反映している必要があります。これらの値が不明な場合は、OAM管理者に問い合せてください。

Web層へのWebゲート・アーティファクトのコピー

Oracle Access Managementインストールを作成した際、Webgate_IDMという名前のWebゲートが作成されています。WebゲートがAccessサーバーと通信するには、このWebゲートに関連付けられているアーティファクトをWeb層にコピーする必要があります。

生成済アーティファクトのOracle HTTP Server WebGateインスタンスの場所へのコピー

Oracle HTTP Server構成ディレクトリのファイルの場所は、Oracle Access Managerセキュリティ・モード設定(OPEN、SIMPLEまたはCERT)によって異なります。

次の表に、Oracle Access Managerのセキュリティ・モード設定に基づいて、生成されたアーティファクトごとにOracle HTTP Server構成ディレクトリの必須の場所を示します。存在しない場合はディレクトリの作成が必要になることがあります。たとえば、walletディレクトリが構成ディレクトリに存在しない場合があります。

ノート:

エンタープライズ・デプロイメントでは、認証および認可トラフィックの暗号化にカスタム・セキュリティ証明書を実装する追加の要件が存在する場合を除き、簡易モードを使用することをお薦めします。オープン・モードまたは証明書モードの使用方法の詳細は、利便性のため、ここで説明します。

オープン・モードではOracle Access Managerサーバーとの間のトラフィックが暗号化されないため、オープン・モードを使用しないでください。

証明書モードの使用方法やOracle Access Managerでサポートされるセキュリティ・モードの詳細は、『Oracle Access Management管理者ガイド』OAMサーバーとWebゲート間の通信の保護に関する項を参照してください。

表28-1 生成済アーティファクトをコピーするWeb層のホストの場所

ファイル CERTモードを使用する場合の場所
wallet/cwallet.ssoFoot 1 WEB_CONFIG_DIR/webgate/config/wallet
ObAccessClient.xml WEB_CONFIG_DIR/webgate/config
password.xml WEB_CONFIG_DIR/webgate/config
aaa_key.pem WEB_CONFIG_DIR/webgate/config
aaa_cert.pem WEB_CONFIG_DIR/webgate/config

脚注1 cwallet.ssoは、outputフォルダではなくwalletフォルダからコピーします。同じ名前のファイルが2つ存在していたとしても、それらは別のものです。正しいものは、walletサブディレクトリにあるほうです。

ノート:

WEBHOST1およびWEBHOST2ObAccessClient.xmlを再デプロイする必要がある場合、サーバーからObAccessClient.xmlのキャッシュされたコピーおよびロック・ファイルObAccessClient.xml.lckを削除します。WEBHOST1のキャッシュの場所は次のとおりです。
WEB_DOMAIN_HOME/servers/ohs1/cache/
また、WEBHOST2で2番目のOracle HTTP Serverインスタンスに対して、同様のステップを実行する必要があります。
WEB_DOMAIN_HOME/servers/ohs2/cache/

Webゲート・アーティファクトの取得

Webゲート・アーティファクトを取得する最も簡単な方法は、OAMコンソールからダウンロードすることです。ダウンロードするには、次のステップを実行します:

  1. 次のURLを使用して、ユーザー名oamadminでOAMコンソールにログインします:
    http://iadadmin.example.com/oamconsole
  2. 「エージェント」をクリックします。
  3. 「検索」画面で、「検索」をクリックします。
  4. エージェントのリストから、「Webgate_IDM」を選択します。
  5. ダウンロード・ボタンを使用してアーティファクトをダウンロードします。使用しているホスト・マシンにzipファイルがダウンロードされます。

ダウンロードしたzipファイルをOracle HTTP Serverマシンにコピーし、WEB_CONFIG_DIR/webgate/configの場所に解凍します。ファイルが適切な場所に抽出されます。

Oracle HTTP Serverインスタンスの再起動

Oracle HTTP Serverインスタンスの再起動の詳細は、Oracle HTTP Serverの管理WLSTを使用したOracle HTTP Serverインスタンスの再起動を参照してください。

WebLogic ServerドメインにOracle HTTP Serverを構成した場合、Oracle Fusion Middleware Controlを使用してOracle HTTP Serverインスタンスを再起動することもできます。『Oracle HTTP Serverの管理』Fusion Middleware Controlを使用してOracle HTTP Serverインスタンスを再起動することに関する項を参照してください。

WebLogic Server認証プロバイダの設定

WebLogic Server認証プロバイダを設定するには、構成ファイルをバックアップし、Oracle Access Manager IDアサーション・プロバイダを設定し、プロバイダの順序を設定します。

次のトピックでは、unresolvable-reference.htmlのステップに従って、LDAPオーセンティケータをすでに構成していると想定しています。LDAPオーセンティケータをまだ作成していない場合は、この項の作業を進める前に作成しておいてください。

構成ファイルのバックアップ

安全を確保するため、まず関連する構成ファイルをバックアップする必要があります。

次の構成ファイルのバックアップを作成します。

DOMAIN_HOME/config/config.xml
DOMAIN_HOME/config/fmwconfig/jps-config.xml
DOMAIN_HOME/config/fmwconfig/system-jazn-data.xml

管理サーバーのboot.propertiesファイルもバックアップします。

DOMAIN_HOME/servers/AdminServer/security/boot.properties

Oracle Access Manager IDアサーション・プロバイダの設定

Oracle WebLogic Server管理コンソールを使用してOracle Access Manager IDアサーション・プロバイダを設定します。

Oracle Access Manager IDアサーション・プロバイダを設定するには:
  1. WebLogic Server管理コンソールにログインしていない場合は、ログインします。
  2. 「ロックして編集」をクリックします。
  3. 左のナビゲーション・バーにある「セキュリティ・レルム」をクリックします。
  4. myrealmというデフォルト・レルム・エントリをクリックします。
  5. 「プロバイダ」タブをクリックします。
  6. 「新規」をクリックし、ドロップダウン・メニューからアサータ・タイプ「OAMIdentityAsserter」を選択します。
  7. アサータに名前(OAM ID Asserterなど)を付け、「OK」をクリックします。
  8. 新しく追加したアサータをクリックし、Oracle Access Manager IDアサーション・プロバイダの構成画面を確認します。
  9. 制御フラグを「必須」に設定します。
  10. 選択タイプで、デフォルトで選択されていない場合は「ObSSOCookie」および「OAM_REMOTE_USER」オプションを選択します。
  11. 「保存」をクリックして設定を保存します。
  12. 「変更のアクティブ化」をクリックして変更を伝播します。

デフォルト・オーセンティケータの更新とプロバイダの順序の設定

WebLogic Server管理コンソールを使用してIDアサーション・プロバイダと認証プロバイダを設定します。

デフォルト・オーセンティケータを更新し、プロバイダの順序を設定するには:
  1. WebLogic Server管理コンソールにログインしていない場合は、ログインします。
  2. 「ロックして編集」をクリックします。
  3. 左側のナビゲーションから、「セキュリティ・レルム」を選択します。
  4. myrealmというデフォルト・レルム・エントリをクリックします。
  5. 「プロバイダ」タブをクリックします。
  6. プロバイダの表で、DefaultAuthenticatorをクリックします。
  7. 「制御フラグ」をSUFFICIENTに設定します。
  8. 「保存」をクリックして設定を保存します。
  9. ナビゲーション・ブレッドクラムから、「プロバイダ」をクリックして、プロバイダのリストに戻ります。
  10. 「並替え」をクリックします。
  11. OAM IDアサーション・プロバイダが最初で、DefaultAuthenticatorプロバイダが最後になるように、プロバイダを並べ替えます。

  12. 「OK」をクリックします。
  13. 「変更のアクティブ化」をクリックして変更を伝播します。
  14. 必要に応じて、管理サーバー、管理対象サーバーおよびシステム・コンポーネントを停止します。
  15. 管理サーバーを再起動します。
  16. SSOを使用してADFコンソールを構成する場合は、管理対象サーバーを停止状態のままにし、後で再起動できます。そうでない場合は、管理対象サーバーを再起動します。

Oracle Access ManagerでのOracle ADFおよびOPSSセキュリティの構成

一部のOracle Fusion Middleware管理コンソールでは、Oracle Access Managerシングル・サインオン(SSO)と統合可能なOracle Application Development Framework (Oracle ADF)セキュリティが使用されます。これらのアプリケーションではユーザー認証にOracle Platform Security Services (OPSS) SSOを利用できますが、まずドメイン・レベルのjps-config.xmlファイルを構成して、これらの機能を有効にする必要があります。

ドメインレベルのjps-config.xmlファイルは、Oracle Fusion Middlewareドメインの作成後に次の場所に配置されます。

/u01/oracle/user_projects/domain/<OAM_DOMAIN_NAME>/config/fmwconfig/jps-config.xml

ノート:

ドメインレベルのjps-config.xmlをカスタム・アプリケーションでデプロイされたjps-config.xmlと混同しないでください。

OPSS構成を更新してOracle Access ManagerにSSOアクションを委任するステップは次のとおりです。
  1. 次のコマンドを使用して、AdminServerコンテナに接続します:
    kubectl exec -n oamns -ti accessdomain-adminserver -- /bin/bash
  2. WebLogic Server Scripting Tool (WLST)を起動します。

    ORACLE_COMMON_HOME/common/bin/wlst.sh

    たとえば:

    /u01/oracle/oracle_common/common/bin/wlst.sh

  3. 次のWLSTコマンドを使用して管理サーバーに接続します。
    connect('<OAM_WEBLOGIC_USER>','<OAM_WEBLOGIC_PWD>','t3://<OAM_DOMAIN_NAME>-adminserver.<OAMNS>.svc.cluster.local:<OAM_ADMIN_PORT>')
    たとえば:
    connect('weblogic','<password>','t3://accessdomain-adminserver.oamns.svc.cluster.local:7001')
  4. 次に示すように、addOAMSSOProviderコマンドを実行します。
    addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication", logouturi="/oam/logout.html")
  5. 次のコマンドを実行して、管理サーバーから切断します。
    exit()
  6. exitコマンドを使用して、コンテナを終了します。

構成ファイルのバックアップ

安全を確保するため、まず関連する構成ファイルをバックアップする必要があります。

次の構成ファイルのバックアップを作成します。

DOMAIN_HOME/config/config.xml
DOMAIN_HOME/config/fmwconfig/jps-config.xml
DOMAIN_HOME/config/fmwconfig/system-jazn-data.xml

管理サーバーのboot.propertiesファイルもバックアップします。

DOMAIN_HOME/servers/AdminServer/security/boot.properties