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

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 WebGateはOracle HTTP Serverで使用できます。

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デプロイメントで動作保証されているWebGateバージョンの使用をお薦めします。

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

エンタープライズ・デプロイメントでのOracle HTTP Server 12c WebGateの構成

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パラメータはオプションです。

    このコマンドは次の処理を実行します。

    • Oracle HTTP Server Oracleホームのapache_webgate.templateファイルを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/webtier_domain/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. ファイルを保存します。

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|openssl x509 -outform PEM > LOADBALANCER.pem
たとえば:
openssl s_client -connect login.example.com:443 -showcerts </dev/null 2>/dev/null|openssl x509 -outform PEM > 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インスタンスの場所へのコピー

idmTool configOAMを実行すると、Webgate_IDMという名前のWebゲート・エージェントが作成されます。このプロセスで、このエージェントに関連するいくつかのアーティファクトがIAD_ASERVER_HOME/output/Webgate_IDMに作成されます。これらのアーティファクトをWeb層ホスト上のOracle HTTP Server構成ディレクトリにコピーする必要があります。

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

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

ノート:

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

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

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

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

ファイル SIMPLEモードを使用する場合の場所 CERTモードを使用する場合の場所
wallet/cwallet.sso脚注1 WEB_CONFIG_DIR/webgate/config/wallet

デフォルトでは、ウォレット・フォルダは使用できません。WEB_CONFIG_DIR/webgate/config/の下にwalletフォルダを作成します。

WEB_CONFIG_DIR/webgate/config/wallet
ObAccessClient.xml WEB_CONFIG_DIR/webgate/config WEB_CONFIG_DIR/webgate/config
password.xml WEB_CONFIG_DIR/webgate/config WEB_CONFIG_DIR/webgate/config
aaa_key.pem WEB_CONFIG_DIR/webgate/config/simple/ WEB_CONFIG_DIR/webgate/config
aaa_cert.pem WEB_CONFIG_DIR/webgate/config/simple/ 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://IADADMINVHN.example.com:7001/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アサーション・プロバイダを設定し、プロバイダの順序を設定します。

ここでは、「新しいLDAPオーセンティケータの作成とエンタープライズ・デプロイメント・ユーザーおよびグループのプロビジョニング」のステップに従ってLDAPオーセンティケータをすでに構成していると仮定しています。LDAPオーセンティケータをまだ作成していない場合は、作成してからこの項を読み進めてください。

ノート:

これらのステップは、IAMGovernanceDomainでのみ実行する必要があり、IAMAccessDomainではconfigOAMの実行の一部としてすでに実行されています。

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

まず、次の関連する構成ファイルをバックアップする必要があります。

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

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

ASERVER_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アイデンティティ・アサーション・プロバイダが最初で、DefaultAuthenticatorプロバイダが最後になるようにします。

    表22-2 ソート順

    ソート順序 プロバイダ 制御フラグ

    1

    OAMIdentityAsserter

    REQUIRED

    2

    LDAP認証プロバイダ

    SUFFICIENT

    3

    OIMAuthenticationProvider

    SUFFICIENT

    4

    DefaultIdentityAsserter

    該当なし

    5

    信頼サービスIDアサータ

    該当なし

    6

    DefaultAuthenticator

    SUFFICIENT

  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ドメインの作成後に次の場所に配置されます。

ASERVER_HOME/config/fmwconfig/jps-config.xml

ノート:

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

OPSS構成を更新してOracle Access ManagerにSSOアクションを委任するステップは次のとおりです。
  1. 次のディレクトリに変更します。
    ORACLE_COMMON_HOME/common/bin
  2. WebLogic Server Scripting Tool (WLST)を起動します。
    ./wlst.sh
  3. 次のWLSTコマンドを使用して管理サーバーに接続します。
    connect(‘admin_user’,’admin_password’,’admin_url’)
  4. 次に示すように、addOAMSSOProviderコマンドを実行します。
    addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication", logouturi="/oam/logout.html")

    次の表は、addOAMProviderコマンドにおける各引数の予想される値を定義しています。

    ノート:

    構成内の各ドメインに対してこの操作を実行します。

    表22-3 addOAMProviderコマンドにおける引数の予想される値

    引数 定義

    loginuri

    ログイン・ページのURIを指定します

    ノート:

    ADFセキュリティが有効なアプリケーションの場合、"/context-root/adfAuthentication"を'loginuri'パラメータに指定する必要があります。

    たとえば:

    /${app.context}/adfAuthentication

    ノート:

    ${app.context}は、表示されているとおりに入力する必要があります。実行時に、アプリケーションによって変数が適切に置き換えられます。

    手順を示します。

    1. たとえば、ユーザーがOPSSの認証ポリシーで保護されているリソースにアクセスします。

    2. ユーザーがまだ認証されていない場合、ADFはユーザーをloginuriで設定したURIにリダイレクトします。

    3. Access Managerにはloginuriの値を保護するポリシー(たとえば、"/context-root/adfAuthentication")が存在する必要があります。

    4. ADFがこのURIにリダイレクトすると、Access Managerにより「ログイン」ページが表示されます(このURI用のAccess Managerで構成された認証スキームにより異なる)。

    logouturi

    ログアウト・ページのURIを指定します通常、loginurlの値は/oam/logout.htmlです。

    autologinuri

    自動ログイン・ページのURIを指定しますこれはオプションのパラメータです。

  5. 次のコマンドを実行して、管理サーバーから切断します。
    disconnect()
  6. 管理サーバーおよび管理対象サーバーを再起動します。