ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity and Access Managementサードパーティ・アプリケーション・サーバー・ガイド
11gリリース2 (11.1.2.1.0)
B72797-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

6 IBM WebSphereでのOracle Access Manager IDアサーションの管理

IBM WebSphere Application Server (IBM WebSphere)に対してOracle Access Manager IDアサーション・プロバイダを使用して、Oracle Access Manager 10g (10.1.4.3)または11gで認証およびシングル・サインオンを提供することができます。

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


注意:

詳細は、「サポートされているIBM WebSphere Application Server」を参照してください。IBM WebSphereポータルでのOAMの使用については、第7章「Oracle Access Manager IDアサーションとIBM WebSphereポータルの統合」で説明しています。


6.1 IBM WebSphereでのOAM IDアサーションの概要

Oracle Access Manager IDアサーション・プロバイダはOracle Fusion Middlewareに組み込まれています。OracleではIBM WebSphereに対応するIDアサーション・プロバイダを用意しており、これを使用してOAMセッションのインターセプトと検証、およびIBM WebSphere固有のセッションの生成を実行できます。

IBM WebSphereでは、Trust Association Interceptor (TAI)を使用することにより、外部オーセンティケータによるシングル・サインオン(SSO)が許可されます。TAIインタフェースのメカニズムにより、外部オーセンティケータはユーザー認証を実行し、IBM WebSphereに対してIDをアサートします。IBM WebSphere対応のOracle Access Manager IDアサーション・プロバイダは、TAIインタフェースを使用してOAMセッションからIBM WebSphereに対してユーザーIDをアサートします。IBM WebSphereは、IDアサーション・プロバイダからユーザーID情報を受信するとただちに、ユーザー・レジストリ内にユーザーが存在するかどうかを問い合わせます。

IBM WebSphere対応のOracle Access Manager IDアサーション・プロバイダは、IBM WebSphereに対してユーザーIDをアサートするために有効なOAMセッションを必要とします。通常、これはフロントエンドのIBM WebSphereに対してIBM HTTP Server (IHS)リバース・プロキシを使用することで実行されます。OAM WebGateはIHSプロキシにインストールされていて、Oracle Access Managerに対するユーザーの認証に使用されます。ユーザーの認証が正常に行われると、WebGateはOAMセッション・トークンを生成します。その後、IHSプロキシはこのセッション・トークンをIBM WebSphereに転送します。IDアサーション・プロバイダはリクエストをインターセプトして、セッション・トークンのユーザーIDをIBM WebSphereに対してアサートします。

IDアサーション・プロバイダは、HTTP CookieまたはHTTPリクエスト・ヘッダーのいずれかを使用してIDアサーションを実行します。したがって、IAPはCookieベースのアサーションまたはヘッダー・ベースのアサーションに対応できるように構成できます。

詳細は、次の項を参照してください。

6.1.1 シナリオ1: IBM WebSphereでIAPを使用するOracle Access Manager 10g (10.1.4.3)

このシナリオでは、Java EEアプリケーションがOracle Access Manager 10g (10.1.4.3)に依存してユーザーの認証と認可を行います。このアプリケーションはIBM WebSphereにデプロイされており、IDアサーション・プロバイダを使用してOracle Access Manager 10g (10.1.4.3)に対してSSOを実行します。

図6-1 OAM 10g (10.1.4.3)およびIAPを使用するコンポーネントとプロセス・フロー

図6-1の説明が続きます
「図6-1 OAM 10g (10.1.4.3)およびIAPを使用するコンポーネントとプロセス・フロー」の説明

プロセスの概要: IBM WebSphereでのIDアサーション

  1. ブラウザからIHSプロキシWebサーバーへ: ユーザーはプロキシIHSホストおよびポートを使用してIBM WebSphereリソースにアクセスします。これによって、IHS Webサーバーにインストールされた10g (10.1.4.3) WebGateがトリガーされてユーザーの認証と認可が行われます。

  2. WebGateからアクセス・サーバーへ: WebGateは、Oracle Accessプロトコル(OAP)を使用してOAM 10g (10.1.4.3)と通信します。アクセス・サーバーはポリシー・ストアをチェックして、リクエストされたリソースを保護するポリシーをすべて検出します。WebGateはアクセス・サーバーを介して、指定された認証スキームに基づいてユーザーから資格証明情報を収集し、ユーザーが認証可能かどうかを検証します。認証が成功した時点で、WebGateはアクセス・サーバーを介してユーザーを認可し、IHS Webサーバー上のリクエストされたリソースにアクセスします。さらにWebGateは、OAMポリシーに指定されているように、リクエスト内に認可ヘッダーを設定します。

  3. WebサーバーからIBM WebSphereへ: IHS WebサーバーはIBM WebSphereのプロキシとして機能し、OAM 10g (10.1.4.3) WebGateによる認可が成功した後でリクエストをIBM WebSphereに転送します。また、IHS Webサーバーは、リクエスト内で設定されたHTTP Cookieとリクエスト・ヘッダーをIBM WebSphereに転送します。

    リクエストは、IBM WebSphereでOAM IAPによってインターセプトされます。その後で、OAMのTAIはCookieとHTTPヘッダーを検証します。OAM IAPはCookieベースのアサーションのために10g (10.1.4.3)アクセス・サーバーと通信して、セッション・トークンを検証し、セッションに関するユーザー情報を取得します。TAIは、IBM WebSphereに対してこのユーザーIDをアサートします。

    IBM WebSphereは、ユーザー・レジストリ(構成済LDAPインスタンス)内で、OAM IAPにより指定されたユーザーの有無をチェックします。ユーザーが見つかった場合は、アサーションが正常に行われます。このシナリオでは、IBM WebSphereはユーザーのパスワードをチェックしたり、リクエストしたりすることはありません。

  4. SSOログアウト: 「OAM IAP for IBM WebSphereに対するSSOログアウトの構成」を参照してください。

6.1.2 シナリオ2: IAPおよびIBM WebSphereを使用するOAM 11g

このシナリオでは、Java EEアプリケーションがOracle Access Manager 11gに依存してユーザーの認証と認可を行います。Java EEアプリケーションはIBM WebSphereにデプロイされており、OAM IAP for IBM WebSphereを使用してSSOをOracle Access Manager 11gに統合します。

図6-2 OAM 11gおよびIAPを使用するコンポーネントとプロセス・フロー

図6-2の説明が続きます
「図6-2 OAM 11gおよびIAPを使用するコンポーネントとプロセス・フロー」の説明

プロセスの概要: Oracle Access Manager 11gによるIDアサーション

  1. ブラウザからIHSプロキシWebサーバーへ: ユーザーはプロキシIHSホストおよびポートを使用してリソース(IBM WebSphere上のサンプル・アプリケーション)にアクセスします。これによって、インストールされたOAM 10g (10.1.4.3) WebGateがトリガーされてユーザーの認証と認可が行われます。

  2. OAM 10g (10.1.4.3) IHS WebGateは、Oracle Accessプロトコル(OAP)全体にわたってOAM 11gサーバーと通信します。

    OAM 11gサーバーはポリシー・ストアをチェックして、リクエストを保護するポリシーを検出します。

    WebGateとOAM 11gサーバーは、ポリシーに指定された認証スキームに基づいてユーザーから資格証明情報を収集し、OAM 11gサーバーはユーザーが認証可能かどうかを検証します。

    認証が成功した時点で、WebGateとOAMサーバーはユーザーを認可し、その後で、IHS Webサーバー上のリクエストされたリソースへのアクセス権が付与されます。WebGateは、OAMポリシーに指定されているように、リクエスト内に認可ヘッダーを設定します。

  3. WebサーバーからIBM WebSphereへ: IHS WebサーバーはIBM WebSphereのプロキシとして機能し、OAM 10g (10.1.4.3) WebGateによる認可が成功した後でリクエストをIBM WebSphereに転送します。また、IHS Webサーバーは、リクエスト内で設定されたHTTP Cookieとリクエスト・ヘッダーをIBM WebSphereに転送します。

    リクエストは、IBM WebSphereでOAM IAPによってインターセプトされます。その後で、OAMのTAIはCookieとHTTPヘッダーを検証します。OAM IAPはCookieベースのアサーションのためにOAM 11gサーバーと通信して、セッション・トークンを検証し、セッションに関するユーザー情報を取得します。TAIは、IBM WebSphereに対してこのユーザーIDをアサートします。

    IBM WebSphereは、ユーザー・レジストリ(構成済LDAPインスタンス)内で、(OAM IAPにより指定された)ユーザーの有無をチェックします。ユーザー・レジストリ内にユーザーが見つかった場合は、アサーションが正常に行われます。このシナリオでは、IBM WebSphereはユーザーのパスワードをリクエストしたり、チェックしたりすることはありません。

  4. SSOログアウト: 「OAM IAP for IBM WebSphereに対するSSOログアウトの構成」を参照してください。

6.2 Oracle Access Manager IAP for IBM WebSphereのコンポーネントのインストール

この項では、IBM WebSphereを使用するOAM IDアサーションの有効化に必要なタスクの概要を説明します。

Oracle Access Manager IAP for IBM WebSphereは、IBM WebSphereに対応できるOracle Fusion Middlewareスイートの一部として使用できます。IAP for IBM WebSphere jarは、次の場所に置かれています。

MW_HOME/oracle_common/modules/oracle.oamprovider_11.1.1/
    OAMTrustAssociationInterceptor.jar

Oracle Access Manager IAP for IBM WebSphere構成ファイルは、次の場所に置かれています。

MW_HOME/oracle_common/modules/oracle.oamprovider_11.1.1/ 
    domain_config/was/oamtai.xml

注意:

Oracle Access Manager 10g (10.1.4.3)のコンポーネントおよびインストールは、Oracle Access Manager 11gのコンポーネントおよびインストールと異なります。ただし、その他のコンポーネントのインストール・タスクはすべて同じです。


タスクの概要: IBM WebSphere、OAM、およびIAPのコンポーネントのインストール

  1. 第2章「Oracle Identity and Access ManagementのIBM WebSphereでのインストールおよび構成」での説明に従って、IBM WebSphereをインストールおよび設定します。

  2. IBM HTTP Server 7.xは、IBM WebSphereの前面のリバース・プロキシとして使用できます。


    注意:

    IBM HTTP Server 7.xの場合は、IHS22 WebGateパッケージを使用します。


  3. Oracle Access Manager: 次のいずれかをインストールします。

    • OAM 10g (10.1.4.3): 『Oracle Access Managerインストレーション・ガイド10g』の説明に従ってインストールします。次のコンポーネントがあります。


      10g (10.1.4.3)アイデンティティ・サーバー
      10g (10.1.4.3)アクセス・サーバー
      10g (10.1.4.3)ポリシー・マネージャ
      10g (10.1.4.3) OHS 11のWebコンポーネントg Webサーバー: Webパス、ポリシー・
      マネージャおよびWebゲート)
    • OAM 11g: 『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』の説明に従ってインストールします。次のコンポーネントがあります。


      Oracle Access Manager 11g (11.1.1.3.0)
      Oracle Identity Manager 11g (11.1.1.3.0
      Oracle WebLogic Server
  4. WebGate: OAM 10g (10.1.4.3)またはOAM 11gのいずれを使用しているかにかかわらず、必須です。これは、この章で後述するプロビジョニングの後でインストールできます。

6.3 Oracle Access Manager 10g (10.1.4.3)構成ツールの概要

この項では、Oracle Access Manager 10g (10.1.4.3)とともに使用するプラットフォームを認識しない構成ツール、OAMCfgTool (oamcfgtool.jar)について概要を説明します。OAM 11gをデプロイしている場合は、この項をスキップしてください。

OAMCfgToolは、一連のスクリプトを自動的に実行し、ポリシーを設定するコマンドライン・ユーティリティです。OAMCfgToolは、必須のフォーム・ベースの認証スキーム、ポリシー・ドメイン、アクセス・ポリシー、およびIBM WebSphereのシングル・サインオンを実行するためのIDアサータのWebGateプロファイルを作成する際の入力として、一連のパラメータを必要とします。


注意:

OAMCfgToolにはJRE 1.5または1.6が必要です。Fusion Middlewareアプリケーション用の国際化されたログイン・フォームはこれらのアプリケーションを保護するポリシーに対応しています。

OAM 10g (10.1.4.3)をデプロイしている場合、OAM Config Toolを使用しないのであれば、『Oracle Access Manager Access管理ガイド』に説明するようにアクセス・システム・コンソールを手動で使用して、ホスト識別子、認証スキーム、およびOAMポリシーを手動で作成する必要があります。


例6-1 OAM IAP for IBM WebSphereに必須のアーティファクトを作成するための構成ファイルのサンプル・テンプレート。この例の後に追加情報を示します。

例6-1 OAMCfgToolおよびIAP for IBM WebSphereに対するサンプルのURIs_configファイル

-- Template-starts --
###################################
#
# OAM-WAS Integration using OAM IAP
#
###################################
protected_uris

###################################
#Resources protected with default authentication scheme
/webcenter/adfAuthentication

###################################
public_uris
###################################
#Public Policy required for Cookie Based Assertion
Cookie Based Assertion
/Authen/SSOToken
-- Template-ends --

例6-2では、OAM 10g (10.1.4.3)およびIAP for IBM WebSphereに対してアーティファクトを構成する際のOAMCfgToolのコマンドライン構文のサンプルを示しています。

例6-2 OAM 10g (10.1.4.3) IAPのアーティファクトを構成するOAMCfgToolの構文

(echo ldappwdjava -jar oamcfgtool.jar 
mode=CREATE app_domain=OAMPolicy_for_WAS-IAP    
uris_file=/path-to-template-config-file 
web_domain=host-id-name
ldap_host=wxyz
ldap_port=6633
ldap_userdn=orcladmin
ldap_base=ldap-base-dn
oam_aaa_host=abcd
oam_aaa_port=7789
oam_aaa_mode=open
log_file=OAMCfg_date.log
log_level=INFO
output_ldif_file=<LDIF_filename>
-noprompt 

前述のサンプル・コマンドにより、次のアーティファクトが生成されます。

既知のリソースの場合、公開URIポリシーでは、表6-1に示すように、Cookieベースのアサーションに対する認可アクションで戻り属性が必要になります。この場合、戻り名OAM_REMOTE_USERはoamtai.xmlでは構成できません。

表6-1 公開URIポリシーでの「Cookieベースのアサーション」に対する認可アクション

タイプ 名前 戻り属性

HeaderVar

OAM_REMOTE_USER

uid


ヘッダー・ベースのアサーションを有効にするには、リソース(protected_uris)保護ポリシーの認可アクションに戻り属性を設定する必要があります。ヘッダー・ベースのアサーションを使用する場合、戻り名OAM_REMOTE_USERはoamtai.xmlファイルに構成可能であり、ヘッダー・ベースのアサーションのアクションが非コメント化されていることを確認する必要があります。

表6-2 公開URIポリシーでの「ヘッダー・ベースのアサーション」に対する認可アクション

タイプ 名前 戻り属性

HeaderVar

OAM_REMOTE_USER

uid


6.4 IBM WebSphereに対するWebGateのプロビジョニングとOAM 10g (10.1.4.3)およびIAPの構成

この項では、OAMCfgToolの取得、必須WebGateのプロビジョニング、フォーム認証スキームの作成および、IAPおよびIBM WebSphereに対するポリシー・ドメインとOAM 10g (10.1.4.3)ポリシーの作成に関する手順を説明します。

OAMCfgToolの取得および、IAP for IBM WebSphereに対するOAM 10g (10.1.4.3)の構成を行うには:

  1. OAMCfgToolを次のように取得します。

    1. 次のOracle Technology Networkにログインします。

      http://www.oracle.com/technology/software/products/middleware/htdocs/111110_fmw.html   
      
    2. Access Managerのコア・コンポーネント(10.1.4.3.0)を使用してOAMCfgTool ZIPファイルを見つけます。

      oamcfgtool<version>.zip  
      
    3. oamcfgtool.jarを抽出し、保護するIBM WebSphereアプリケーションをホストしているコンピュータにそれをコピーします。

    4. JDK 1.6(または最新バージョン)がホスト・コンピュータにインストールおよび構成されていることを確認します。

    5. OAMCfgToolが含まれているファイル・システム・ディレクトリに変更します。

  2. WebGateのプロビジョニング、認証スキームおよびポリシー・ドメインの作成: 使用環境に適した値を使用して次のコマンドを実行します。例:

    (echo ldappwdjava -jar oamcfgtool.jar 
    mode=CREATE app_domain=OAMPolicy_for_WAS-IAP    
    uris_file=/path-to-template-config-file 
    web_domain=host-id-name
    ldap_host=wxyz
    ldap_port=6633
    ldap_userdn=orcladmin
    ldap_base=ldap-base-dn
    oam_aaa_host=abcd
    oam_aaa_port=7789
    oam_aaa_mode=open
    log_file=OAMCfg_date.log
    log_level=INFO
    output_ldif_file=<LDIF_filename>
    -noprompt 
    
  3. このツールで指定した情報を確認します。たとえば、手順3のパラメータと値を使用すると、次の情報が表示されます。

    Processed input parameters
    Initialized Global Configuration
    Successfully completed the Create operation.
     Operation Summary:
         Policy Domain  : OAMPolicy_for_WAS-IAP
         Host Identifier: OAMPolicy_for_WAS-IAP
         Access Gate ID : OAMPolicy_for_WAS-IAP_AG
    
  4. 考えられるホスト・バリエーションが含まれるように、ホスト識別子を更新します。

  5. 次の認可アクションを「ヘッダー・ベースのアサーション」ポリシーに追加します。

    タイプ名 戻り属性

    HeaderVar OAM_REMOTE_USER uid

  6. 「IHS Web Serverに対する必須WebGateのインストール」に進みます。

6.5 IAPおよびIBM WebSphereに対するOAM 11gのプロビジョニングおよび構成

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

6.5.1 OAM 11gでのWebGateおよびアクセス・ゲートのプロビジョニングについて

この項では、ポリシー施行エージェントとして知られるOAM 11gアクセス・クライアントと、エージェントとOracle Access Manager 11gのSSO間での信頼メカニズムの設定に必要なプロセスについて概要を説明します。このプロセスはプロビジョニングと呼ばれます(エージェントの登録ともいいます)。

登録されたポリシー強制エージェントのみがOAMサーバーと通信でき、保護されたリソースにユーザーがアクセスを試みるときに情報を処理します。有効なOAM管理者の資格証明を持つユーザーは、管理コンソールを使用してOAMエージェントを登録できます。

WebGateエージェントは、インストールする前に登録できます。必須のWebGate構成ファイルまたはアクセス・ゲート構成ファイルは登録時に作成され、次のパスに格納されます。

DOAMIN_NAME/output/$Agent_NAME

登録時には、アプリケーション・ドメインとデフォルトのポリシーを作成することもできます。このため、エージェントの登録は、「パートナ・アプリケーションの登録」とも呼ばれています。

登録時に、エージェントは自身が保護するアプリケーションと同じWebサーバー上にあると想定されます。ただし、エージェントをプロキシWebサーバー、アプリケーションを異なるホストに配置できます。

エージェント登録時:

  • エージェントごとに1つのキーが生成され、クライアント・ホスト上のローカル・ウォレット・ファイルを介してWebGateから、サーバー側ではJavaキー・ストアを介してOAMサーバーからそれぞれアクセス可能になります。

    エージェント固有のキーは、クライアント・マシン上の保護されたローカル・ストレージを介してWebGatesからアクセス可能である必要があります。

  • キーは、登録時にパートナ(アプリケーション)に対して生成されます。(ただし、10g (10.1.4.3) WebGateエージェントを除きます)。

  • OAMアプリケーション・ドメインが作成されて、エージェントにちなんだ名称が付けられ、デフォルトの認証および認可ポリシーが移入されます。新しいアプリケーション・ドメインは、登録中にエージェントに対して指定されたものと同じホスト識別子を使用します。

登録の後、エージェントの詳細がOAM管理コンソールに表示され、クラスタ内のすべての管理対象サーバーに伝播されます。エージェント登録時にポリシーを自動作成するよう選択した場合、パートナ・アプリケーションに登録されたアプリケーション・ドメインとポリシーを表示、管理することもできます。

表6-3では、「OAMエージェントの作成」ページでリクエストされた情報を入力する場所である名前付きテキスト・フィールドを個別に説明しています。

表6-3 OAM 10g (10.1.4.3)および11gエージェントの「OAMエージェントの作成」ページ

OAMエージェントの要素 説明

エージェント名

このWebGateエージェントを識別する名称。ほとんどの場合、WebGateに使用されるWebサーバーをホストするコンピュータ名です。

: エージェント名が存在する場合、エラーが発生して登録が失敗します。ホスト識別子が存在する場合、一意のエージェント・ベースURLが既存のホスト識別子に追加され、登録が先に進みます。

エージェント・ベースURL

オプション

エージェントのWebサーバーがインストールされるコンピュータのホストとポート。たとえば、http://my_ohs_host:portまたはhttps://my_host:portとなります。ポート番号はオプションです。

: 特定のエージェント・ベースURLは、一度だけ登録できます。エージェント・ベースURLからWebGateがインストールされているWebサーバー・ドメイン(<hostidentifier>要素で指定)へのマッピングは、1対1です。ただし、1つのドメインが複数のエージェント・ベースURLを持つことができます。

アクセス・クライアント・パスワード

このWebGateのオプションかつ一意のパスワードで、WebGateの登録時に割り当てられています。

登録されたWebGateがOAM 11gサーバーに接続するときは、認可されていないWebGatesがOAM 11gサーバーに接続してポリシー情報を取得しないように、認証にこのパスワードが使用されます。

セキュリティ

エージェントとOAMサーバー間の通信トランスポート・セキュリティのレベル(これはOAMサーバーに指定したレベルと一致する必要があります)。

  • オープン--トランスポート・セキュリティは適用されません。

  • 簡易--動的に生成されたセッション・キーを使用したSSL v3/TLS v1.0のセキュアなトランスポート

  • 証明書: サーバー側のx.509証明書を使用したSSL v3/TLS v1.0のセキュアなトランスポート。このオプションを選択すると、この表の別の箇所で説明するエージェント・キー・パスワードを入力できるフィールドが表示されます。

ホスト識別子

この識別子は、Webサーバー・ホストを表します。

ポリシーの自動作成

エージェントの登録中、自動的に作成された認証および認可ポリシーを使用できます。デフォルトで、このオプションが選択(有効化)されます。

デフォルト: 有効

注意: ドメインおよびポリシーをすでに登録している場合、新しいリソースを追加できます。このオプションを解除(チェックなし)すると、アプリケーション・ドメインやポリシーは自動的に生成されません。

保護されているリソース(URI)リスト

保護されているアプリケーションのURI: /myapp/loginなど。保護されているアプリケーションの各URIは、保護されているリソース・リストの表の新しい行で指定する必要があります。

次のリソースは、デフォルトでは保護されています。

/** 

デフォルトは、複数のディレクトリにまたがるゼロまたは複数の中間レベル内にある任意の文字シーケンスに一致します。

保護対象のすべてのIBM WebSphereリソースをこのリストに追加します。

パブリック・リソース(URI)リスト

それぞれのパブリック・アプリケーションは、パブリック・リソース・リストの表の新しい行で指定する必要があります。

フィールドを追加して、パブリック・アプリケーションとリソースのURI値を入力してください。それぞれのURIは、パブリック・リソース・リストの表の新しい行で指定する必要があります。

保護する必要のないすべてのIBM WebSphereリソースをこのリストに追加します。

注意: /Authen/SSOTokenは、Oracle Access Manager IDアサーション・プロバイダにより使用される追加のパブリック・リソースです。



関連資料:

詳細は、『Oracle Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド』を参照してください。


6.5.2 IBM WebSphereに対するエージェントのプロビジョニングとOAM 11gポリシーの作成

この項では、OAM 11gに対するエージェントのプロビジョニングとポリシーの作成方法について説明します。

少なくとも1つのOAMサーバー・インスタンスがエージェントと同じモードで実行中である必要があります。そうでなければ、エージェント登録が失敗します。プロビジョニング後に、必要に応じてOAMサーバーの通信モードを変更できます。エージェントとサーバー間の通信は、WebGateモードが少なくともOAMサーバーのモードと同じ(またはそれ以上)であれば動作を続行します。

OAM 11g IAP for IBM WebSphereに対してエージェントを登録し、ポリシーを作成するには:

  1. 通常どおりにOAM 11g管理コンソールにログインします。例: http://host:port/oamconsole.

  2. 「ようこそ」ページで、「エージェント構成」パネルから「OAM 10g (10.1.4.3)エージェントの追加」をクリックして新しいページを開きます。

    または、「システム構成」タブから、「エージェント」ノード、「OAMエージェント」ノード、さらに「10g (10.1.4.3) Webゲート」ノードを展開してから、ツール・バーの「コマンド作成」ボタンをクリックします。

  3. 「OAMエージェントの作成」ページで、表6-3に示すように、必要な詳細(*の付いたもの)を入力して、このOAMエージェントを登録します。

  4. 保護されているリソース・リスト: この表では、表6-3にあるように、このOAMエージェントで保護する個々のリソースのURLを入力します。

  5. パブリック・リソース・リスト: この表では、 表6-3に示すように、パブリックにする(保護されない)個々のリソースURLを、Oracle Access Manager IDアサーション・プロバイダで使用する/Authen/SSOTokenも含めて入力します。

  6. 「ポリシーの自動作成」ボックスが選択されていることを確認します(または、ボックスの選択を解除してこの機能を無効にします)。

  7. 「適用」をクリックして、登録を送信します(または変更を適用しないでページを閉じます)。

  8. 「確認」ウィンドウで、生成されたアーティファクトの場所を確認し、ウィンドウを閉じます。

  9. この手順にある各ステップを繰り返して、WebGateで使用する追加のアクセス・ゲートとポリシーを登録し、次の処理を行います。

    • この登録の名前を入力します。

    • 適切なセキュリティ・モードを選択します。

    • ベースURLを指定しないでください。

    • 「ポリシーの自動作成」にチェックマークを付けます。

    • 「適用」をクリックします。

  10. 「IHS Web Serverに対する必須WebGateのインストール」に進みます。

6.6 IHS Web Serverに対する必須WebGateのインストール

プロビジョニング後に、OAM 10g (10.1.4.3) WebGate for IHSをインストールして、ここで説明するようにOAM 10g (10.1.4.3)またはOAM 11gのデプロイメントのいずれかで操作できます。使用環境に適用されない手順は無視してください。

10g (10.1.4.3) WebGate for IHSをダウンロードおよびインストールするには:

  1. 次のように、WebGateインストーラを検索してダウンロードします。

    1. 次の場所にあるOracle Fusion Middleware 11gR1ソフトウェア・ダウンロードに移動します。

      http://www.oracle.com/technology/software/products/middleware/htdocs/fmw_11_download.html
      
    2. ページの一番上の「ライセンス契約に同意」をクリックします。

    3. Access Manager WebGates (10.1.4.3.0)の行から、該当するプラットフォームのダウンロード・リンクをクリックし、画面の指示に従います。

    4. インストールする10g (10.1.4.3)アクセス・システムの言語パックと同じディレクトリに、WebGateインストーラを格納します。

  2. 使用しているプラットフォーム、インストール・モード、Webサーバーに対してWebGateインストーラを起動し、次の処理を行います。

    1. 次へをクリックして、ようこそ画面を閉じます。

    2. 尋ねられたら、管理者の権限を使用して回答します。

    3. WebGateのインストール・ディレクトリを指定します。例:

      /OracleAccessManager/WebComponent/

    4. LinuxまたはSolaris: このコンピュータ上のGCCランタイム・ライブラリの場所を指定します。

    5. 言語パック—「デフォルトのロケール」とインストールするその他のロケールを選択して、「次へ」をクリックします。

    6. プレゼンテーション・ワークシートにインストール・ディレクトリをまだ記録していない場合は記録し、「次へ」をクリックして続行します。

      WebGateのインストールが開始し、数秒間かかることがあります。Windowsシステムでは、Microsoft管理インタフェースの構成を知らせる画面が表示されます。

  3. OAM 10g (10.1.4.3)のデプロイメント: Continue installation, as described in the 『10g (10.1.4.3) Oracle COREid Access and Identityインストレーション・ガイド』に説明するようにインストールを続行して、次の処理を行います。

    1. 以前にOAMCfgToolを使用してWebGateをプロビジョニングした際に指定されたWebGateのインストール時と同じ値を指定します。

    2. リクエストされた追加の値をすべて指定して、インストールを適切に終了します。

    3. WebGateホスト: WebGate_install_dir\access\oblix\configにファイルをコピーします。

    4. WebGateのWebサーバーを再起動します。

    5. 「IHS Webサーバーの準備」に進みます。

  4. OAM 11gのデプロイメント: WebGateインストーラを(終了しないで)取り消し、WebGate 10g (10.1.4.3)のプロビジョニングのアーティファクト(および、必要に応じて証明書ファイル)を収集します。例:

    1. OAM AdminServerのホストで、更新されたOAMエージェントの構成ファイルObAccessClient.xml(およびすべての証明書アーティファクト)を検索し、コピーします。例:

      DOMAIN_HOME/output/$Agent_Name/


      ObAccessClient.xml
      password.xml(必要に応じて)
      aaa_key.pem (openSSLによって生成される秘密鍵)
      aaa_cert.pem (PEMフォーマットの署名済証明書)
    2. OAMエージェントのホストで、アーティファクトをWebgateディレクトリに追加します。例:


      WebGate_install_dir/access/oblix/lib/ObAccessClient.xml
      WebGate_install_dir/access/oblix/config
    3. WebGateのWebサーバーを再起動します。

    4. EditHTTPConfツールを実行して、WebGateに対するIHSサーバーの構成を更新します。

    5. エージェントをホストしているOAMサーバーを再起動します。

    6. 「IHS Webサーバーの準備」に進みます。

6.7 IHS Webサーバーの準備

10g (10.1.4.3) IHS2 WebGate (または、それ以降)を使用している場合、IHS httpd.confファイルにはWebサーバー・ルートに/oamssoディレクトリを追加するためのエントリが含まれています。ただし、以前のOracle Access Manager IHS2 WebGateを使用している場合は、次のエントリをhttpd.confファイルのWebGateブロックの下に追加する必要があります。

IHS Webサーバーを準備するには:

  1. WebGateをホストしているコンピュータで、IHS httpd.confファイルを検索して、次のエントリが存在していることを確認します(存在しない場合は追加します)。

    Alias /oamsso "<webage-install-dir>/access/oamsso"
    <LocationMatch "/oamsso/*">
    Satisfy All
    </LocationMatch>
    
  2. 「WebGateに対するログイン・フォームの作成」に進みます。

6.8 WebGateに対するログイン・フォームの作成

この項では、プロビジョニング後にインストールされた10g (10.1.4.3) IHS WebGateで使用する適切なOracle Access Managerのフォームの取得方法について説明します。WebGateのログイン・フォームは使用しません。

OAM 11gを使用している場合は、OAM 11gサーバーのインスタンスでログイン・フォームが提供されるため、この手順をスキップしてかまいません。


注意:

10g (10.1.4.3) WebGatesで提供されるフォームは、OAM 11gサーバーでは使用できません。


OAM 10g (10.1.4.3)のデプロイメントで、

10g (10.1.4.3) IHS WebGateのlogin.htmlファイルをプレビューするには:

  1. OAM 10g (10.1.4.3)に10g (10.1.4.3) IHS2 WebGate(または、それ以降)が統合されている場合は、WebGate_install_dir/access/oamsso/login.htmlにあるlogin.htmlをプレビューします。

  2. OAM 10g (10.1.4.3)に10g (10.1.4.2.0)またはそれ以前のWebGate for IHS2が統合されている場合は、次の手順を実行します。

    1. 次のパス、WebGate_install_dir/oamssoに/oamssoサブディレクトリを作成します。

    2. 新しい/oamssoディレクトリを作成して、次の要素が含まれているlogin.htmlファイルをそのディレクトリに追加します。

      <!--Sample login Page Code -->
      <form name="loginForm" method="post" action="/access/sso">
      <b> Username: </b> <input name="userid" type="text" maxLength="80" size="20" value="">
      <b> Password: </b> <input type="password" maxLength="255" size="20" 
      name="password" autocomplete="off">
      <input type="submit" value="Login" name="submit">
      </form>
      
  3. 「OAM SSOおよびIAPに対するIBM WebSphereの構成」に進みます。

6.9 OAM SSOおよびIAPに対するIBM WebSphereの構成

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

6.9.1 IBM WebSphere内のOAMに対するスタンドアロンLDAPレジストリの構成

この項では、IBM WebSphere内でのOAMのスタンドアロンLDAPレジストリの構成方法について説明します。

IBM WebSphereでOAMのスタンドアロンLDAPレジストリを構成するには:

  1. IBM WebSphereコンソールにログインします。例:

    http://host:port/ibm/console
    
  2. 「Security」→「Global Security」に移動します。

  3. 「Available realm definitions」にある「User account repository」の下で、「Standalone Ldap Registry」を選択して「Configure」をクリックします。

  4. 「General Properties」の下で、各フィールドに入力し、OAMで使用されるLDAPディレクトリを構成します。


    プライマリ管理ユーザー名<OAM管理ユーザー名>
    サーバー・ユーザーID: デフォルトの選択を保持
    LDAPサーバーのタイプ: < OAMに対するLDAPディレクトリのタイプ>
    ホスト < LDAPディレクトリが常駐するホスト名>
    ポート : <LDAPディレクトリのバインド・ポート>
    ベースDN: <LDAPベースDN>
    バインドDN: <LDAPバインドDN>
    パスワード: <LDAPパスワード>
    検索タイムアウト: デフォルト値(120秒)を保持
    デフォルトの再使用接続を保持し、認可のケースを無視(チェック済)
  5. 「Apply」および「OK」をクリックして、この構成を保存します。

  6. 同じページで、「Additional Properties」の下の「Advanced Lightweight Directory Access Protocol (LDAP)」のユーザー・レジストリ設定をクリックし、「General Properties」の各フィールドに入力します。


    ユーザー・フィルタ: (&(uid=%v)(objectclass=inetOrgPerson))
    グループ・フィルタ: (&(cn=%v)(objectclass=ldapsubentry))
    ユーザーIDマップ: uid
    グループIDマップ: cn
    グループ・メンバーIDマップ: nsRole:nsRole
  7. 「Apply」および「OK」をクリックして、この構成を保存します。

  8. 同じページで、「Related Items」の下の「Trusted authentication realms - inbound」をクリックして、LDAPエントリ(host:port)が信頼できることを確認します。

  9. 「Test Connection」をクリックして、接続構成を検証します。

  10. IBM WebSphereを再起動します。

    スタンドアロンLDAPレジストリが「Current realm」として選択されていない場合は、「Available realm」定義の「User account repository」の下で「Set As Current」をクリックします。

  11. 今後は、OAM LDAPディレクトリ・ログイン資格証明(IBM WebSphereで登録済)を使用して、IBM WebSphereコンソールにログインします。

6.9.2 IBM WebSphereでの仮想ホストの追加と構成

Webアプリケーションを仮想ホスト(特定のホスト名に対してWebアプリケーションを構成するための論理名)にバインドする必要があります。リソースをリクエストすると、IBM WebSphereはリクエストを定義済仮想ホストの別名にマップします。

IBM WebSphereで仮想ホストを追加および構成するには:

  1. IBM WebSphereコンソールにログインします。例: http://host:port/ibm/console

  2. 「Environment」→「Virtual Hosts」と移動して「New」をクリックします。

  3. 使用環境に対して、「General Properties」に次のように入力します。

    1. 名前: IHSホスト名を追加して「OK」をクリックし、変更を保存します。

    2. 最近作成されたエントリ「IHS host name」をクリックします。

  4. 「Additional Properties」の下の「Host Aliases」をクリックして、「New」をクリックします。

  5. 使用環境の「General Properties」に対して、次のように詳細を入力します。

    1. Host: IHSサーバーが常駐しているホスト名

    2. Port: IHSポート

  6. 「OK」をクリックして変更を保存し、次の手順を続行して、デプロイされたエンタープライズ・アプリケーションに仮想ホストを構成します。

  7. 「Applications」→「WebSphere Enterprise Applications」の順に移動して、次の手順を行います。

    1. <;enterprise application>をクリックします。

    2. 「Web Module Properties」の下で「Virtual Hosts」をクリックします。

    3. すべてのWebモジュールを選択して、追加した仮想ホストを適用します。

    4. 「OK」をクリックして変更を保存します。

  8. エンタープライズ・アプリケーションがデプロイされているIBM WebSphereを再起動します。

  9. 「IBM WebSphereコンソールでのIHSリバース・プロキシの構成」に進みます。

6.9.3 IBM WebSphereコンソールでのIHSリバース・プロキシの構成

この項では、IHSサーバーをIBM WebSphereコンソール内にリバース・プロキシ・モードで構成する方法について説明します。

IHSをIBM WebSphereコンソール内にリバース・プロキシ・モードで構成するには:

  1. IBM WebSphereコンソールにログインします。例:

    http://host:port/ibm/console
    
  2. 「Server Types」→「Web Servers」の順に移動します。

  3. 「New」をクリックして、IHS Webサーバーの詳細を指定します。

  4. 変更を保存して、IHSのサーバー・エントリを確認します。

  5. 「ServerName」を選択して、「Generate Plug-in」をクリックします。

  6. 「ServerName」を選択して、「Propagate Plug-in」をクリックします。

  7. 次の手順に従って、IBM WebSphereのリバース・プロキシとして動作するようにIHS Webサーバーを構成します。

    1. IHS_install_dir/Plugins/config/ServerNameの中でplugin-cfg.xmlを検索します。

    2. 次のエントリを削除します。

      <Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" 
      Name="/*"/>
      
  8. IHS Webサーバーを再起動します。

  9. 「IBM WebSphereコンソールでのインターセプタ・エントリの作成」に進みます。

6.9.4 IBM WebSphereコンソールでのインターセプタ・エントリの作成

Oracle Access Manager 10g (10.1.4.3)またはOracle Access Manager 11gのいずれを使用しているかにかかわらず、タスクは同じです。

実行時に、IBM WebSphereの拡張機能クラス・ローダーによってクラスがロードされます。拡張クラス・ローダーのクラス・パスはws.ext.dirsシステム・プロパティによって指定されます。したがって、IBM WebSphere OAMTrustAssociationInterceptor.jarファイルのIAPをIBM WebSphereクラスパスに追加する必要があります。

IBM WebSphere OAMTrustAssociationInterceptor.jarファイルのIAPは、次のパスから使用できます。

MW_HOME/oracle_common/modules/oracle.oamprovider_11.1.1/ 
     OAMTrustAssociationInterceptor.jar

OAMTrustAssociationInterceptor.jarをIBM WebSphereクラスパスに追加するには:

  1. IBM WebSphereコンソールで、「Servers」→「Server Types」→「WebSphere Application」→「Servers」の順に移動して、適切なサーバーを選択します。

  2. 「Server Infrastructure」セクションの下の「Java And Process Management」をクリックし、「Process Definition」をクリックします。

  3. 「Additional properties」で、「Java Virtual Machine」→「Custom Properties」を選択します。

  4. プロパティws.ext.dirsに、OAMTrustAssociationInterceptor.jarの値を追加します。例:

    MW_HOME/oracle_common/modules/oracle.oamprovider_11.1.1/ OAMTrustAssociationInterceptor.jar
    
  5. 2つの値がコロンで区切られていることを確認します。

  6. 次の手順に従って、OAM IAPのインターセプタ・エントリを作成します。

    1. IBM WebSphereコンソールで、「Security」「Global Security」と移動し、「Enable Application Security」が選択されていることを確認します。

    2. 「Authentication」セクションの下で「Web and SIP Security」タブをクリックし「Trust association」リンクをクリックします。

      1. 「General Properties」の下で、「Enable Trust Association」をクリックします。

      2. 「Additional Properties」の下で「Interceptors」リンクをクリックします。

    3. 「General Properties」の下で「Under New」をクリックして、Interceptorのクラス名を次のように指定します。

      oracle.security.was.providers.tai.OAMTrustAssociationInterceptorImpl
      
  7. 「OAM TAI構成ファイルの構成」に進み、oamtai.xmlをInterceptorクラス・パスのカスタム・プロパティとして構成します。

6.9.5 OAM TAI構成ファイルの構成

oamtai.xml構成ファイルは、OAMトラスト・アソシエーション・インターセプタにより使用されます。このファイルを構成して、使用環境に合うように変更する必要があります。詳細は、次を参照してください。

6.9.5.1 OAM TAI構成ファイルの構成について

oamtai.xml構成ファイルは次のパスにあります。

MW_HOME/oracle_common/modules/oracle.oamprovider_11.1.1/domain_config_was
/oamtai.xml

このファイルに格納されている詳細は、実行時にTAIが10g (10.1.4.3) OAMアクセス・サーバー(または11g OAMサーバー)との接続を確立するために使用します。

oamtai.xmlファイルの構成方法は、次のように2つあります。

  • oamtai.xmlをwas_profile_dir/config/cells/cell_name/fmwconfig/oamtai.xmlにコピーします。

  • または、次の手順のステップ1を実行して、oamtai.xmlを、前に追加したInterceptorエントリのカスタム・プロパティとして構成します。

表6-4のパラメータと使用しているデプロイメントの値を使用してアクセス・サーバーとの接続を確立するために、oamtai.xmlファイルを変更する必要があります。ヘッダー・ベースのアサーションを有効にするには、oamtai.xmlのヘッダー・ベースのアサーションのセクションがコメント化されていないことを確認し、oamtai.xmlとOAMポリシーの両方で同じcustomHeadernameを使用します。

表6-4 oamtai.xml構成ファイルのパラメータ

パラメータ 必須/オプション 説明

hostPort

必須

リソースのホストであるIHS Webサーバーのホスト名およびポート。

注意: host:portは、OAMに存在するホスト名のバリエーションの1つである必要があります。

resource

必須

保護されているリソースのURL。

デフォルト = /Authen/SSOToken、または、更新した場合はOAMポリシーの値。

ip

オプション

リソースにアクセスする必要のあるクライアント・コンピュータのIPアドレス。

operation

必須

Authen/SSOTokenにアクセスするためにリクエストされた操作。

accessGateName

必須

OAMとの相互作用中に使用されるアクセス・ゲートを識別する、空白なしの一意の名前。OAMCfgToolツールでは、この名前はapp_domain値から導出され、末尾に_AGが付けられます。

AccessGatePassword

必須

OAMとの相互作用時にアクセス・ゲートを検証および識別する一意のパスワード。これによって、認可されていないアクセス・ゲートが接続してポリシー情報を取得するのを防ぎます。OAMCfgToolでは、app_agent_passwordパラメータを使用して指定されます。このパスワードは、Webゲート/アクセス・ゲート・インスタンスごとに異なっている必要があります。

accessServerHost

必須

OAMアクセス・サーバー(またはOAM 11gサーバー)のホスト名。

accessServerPort

必須

OAMアクセス・サーバー(またはOAM 11gサーバー)のポート番号。

accessServerName

オプション

プロファイル(またはOAM 11gサーバー登録)で識別されたOAMアクセス・サーバーの名前。

transportSecurity

必須

10g (10.1.4.3)アクセス・サーバーと関連するWebGate間のトランスポート・セキュリティのレベルが一致している必要があります。デフォルト値はOpenです。OAMCfgToolのoam_aaa_mode値を使用して、別の値を指定できます。

次の各パラメータ、trustStore、keyStore、keyStorePass、およびglobalPassの値は、トランスポート・セキュリティ・モードが'Simple'または'Cert'の場合は必須です。

  • trustStore: トラスト・ストアの絶対パスを指定します。

  • keyStore: キー・ストアの絶対パスを指定します。

  • keyStorePass: キーストア・パスワードを指定します。

  • globalPass: IHS WebGateのインストールおよび構成時に定義されたグローバル・パスフレーズの値を指定します。

debug

必須

OAMデバッグをオンまたはオフにします。

デフォルト: false

minConn

必須

このアクセス・ゲートがアクセス・サーバーと確立できる最小接続数。この数値は、WebGateに実際に関連付けられているアクセス・サーバー数以下である必要があります。

maxConn

必須

このアクセス・ゲートがアクセス・サーバーと確立できる最大接続数。この数値は、WebGateに実際に関連付けられているアクセス・サーバー数以上である必要があります。

timeOutForConnPool

必須

接続プールのタイムアウト期間。値はすべてミリ秒で指定します。

デフォルト: 30000(ミリ秒)

Anonymous

必須

匿名ユーザーの値を構成します。

注意: 次の2つのパラメータ、assertionTypeおよびcustomHeaderNameはヘッダー・ベースのアサーションには必須です。ヘッダー・ベースのアサーションの場合にかぎり、これを非コメント化します。

  • ユーザーがここでヘッダー名を構成する場合は、同じ名前を使用してOAMポリシーの戻り属性として構成されます。アサーション・タイプのパラメータの値は変更せず、パラメータのエントリのみを非コメント化します。

  • ユーザーがここでヘッダー名を構成しない場合、デフォルトのヘッダー名は「OAM_REMOTE_USER」となり、OAMポリシーに同じ名前が構成されます。この場合も、アサーション・タイプのパラメータの値は変更せず、パラメータのエントリのみを非コメント化します。

assertionType

必須

この値は「HeaderBasedAssertion」とします。これは変更しないでください。

customHeaderName

必須

使用されるデフォルト値は「OAM_REMOTE_USER」です。または、デフォルト値が更新された場合は、OAMポリシーに準拠します。

注意: ヘッダーの構成時にOAMポリシーで同じ値が使用されるかぎり、任意の値を指定できます。そうでない場合は、ポリシーの構成時にデフォルト値「OAM_REMOTE_USER」を使用する必要があります。いずれの場合でも、oamtai.xmlファイルの「assertionType」パラメータのエントリが非コメント化されていることを確認してください。



注意:

WebGateのタイムアウトは、LTPAのタイムアウトよりも大きい値で設定する必要があります。そうしないと、IAPがトリガーされてWebGateセッションがタイムアウトする可能性があります。その場合は、以前に生成されたLTPAトークンがまだ存在しているため、別のユーザーIDを使用してログインしたユーザーはリソースにアクセスできることがあります。LTPAのタイムアウトのデフォルト値は120分であるため、WebGateプロファイルには120分よりも大きいWebGateタイムアウト値が必要になります。


6.9.5.2 OAM TAI構成ファイルの構成

使用環境に合わせてoamtai.xmlを構成する手順は、次のとおりです。

oamtaiが次のパス、was_profile_dir/config/cells/cell_name/fmwconfig/oamtai.xmlにコピーされている場合は、ステップ1をスキップしてください。

oamtai.xmlをインターセプタのカスタム・プロパティとして構成するには:

  1. カスタム・インターセプタ・プロパティ:

    1. IBM WebSphereコンソールで、「Security」「Global Security」と移動します。

    2. 「Authentication」セクションの下で「Web and SIP Security」タブをクリックし、「Trust association」リンクをクリックします。

    3. 「Trust association」リンクをクリックします。

    4. 「Additional Properties」の下で「Interceptors」リンクをクリックします。

    5. インターセプタ・クラス名「oracle.security.was.providers.tai.OAMTrustAssociationInterceptorImpl」を選択します。

    6. 「Custom Properties」の下に、oamtai.xmlファイル用にoamtai.xml詳細の絶対パスを示すプロパティを追加します。

      名前: OAMTaiProperty

      : was_profile_dir/config/cells/cell_name/fmwconfig/oamtai.xml

  2. oamtai.xmlの変更: 表6-4のデプロイメントに適した値を持つパラメータを使用して、アクセス・サーバーとの接続を確立します。

  3. ヘッダー・ベースのアサーション: oamtai.xmlファイルで、次の手順を実行します。

    1. エントリ「assertionType」を非コメント化し、値「HeaderBasedAssertion」を保持します。

    2. エントリ「customHeaderName」を非コメント化し、目的の値を設定します(表6-4)。

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

  5. OAMポリシー: OAMポリシーの構成時と同じ値「customHeaderName」を使用します。

  6. IBM WebSphereを再起動して、変更を有効にします。

6.10 OAM IAP for IBM WebSphereに対するSSOログアウトの構成

この項では、OAM IAP for IBM WebSphereでのログアウトについて説明します。

6.10.1 汎用(または非ADF)アプリケーションに対するログアウトの構成

非ADFアプリケーションでは、アプリケーションのログアウト・リンクでターゲットとして構成されたlogout.htmlがアプリケーションによって起動されると、ログアウトが開始されます。

logout.htmlファイルはWebサーバーのdocルートに置くことも、IBM WebSphereアプリケーションに含めることもできます。

独自のlogout.htmlを使用している場合は、ページ本体のロード時に、例6-3のJavaScriptを埋め込んで「delOblixCookie」を起動できます。LTPATokenはJavaScriptによって削除され、ObSSOCookieはWebGateによって削除されます。

<body onload="delOblixCookie();">

注意:

セキュリティを考慮してユーザーがCookie「httponly」プロパティを「true」に設定した場合、javascriptはLTPATokenのCookieを削除できず、SSOログアウトは機能しません。


例6-3 delOblixCookieを起動するJavaScript

function delCookie(name,path,domain) {
   var today = new Date();
   var deleteDate = new Date(today.getTime() - 48 * 60 * 60 * 1000); // minus 2 
   days
   var cookie = name + "="
            + ((path == null) ? "" : "; path=" + path)
            + ((domain == null) ? "" : "; domain=" + domain)
            + "; expires=" + deleteDate;
   document.cookie = cookie;
}
function delOblixCookie() {
         // set focus to ok button
      var isNetscape = (document.layers);
  if (isNetscape == false || navigator.appVersion.charAt(0) >= 5) {
    for (var i=0; i<document.links.length; i++) {
      if (document.links[i].href == "javascript:top.close()") {
          document.links[i].focus();
          break;
      }
    }
   }
  delCookie('ObTEMC', '/');
  delCookie('ObSSOCookie', '/');
  delCookie('LtpaToken', '/');
  delCookie('LtpaToken2', '/');
  // in case cookieDomain is configured
  // delete same cookie to all of subdomain
  var subdomain;
  var domain = new String(document.domain);
  var index = domain.indexOf(".");
  while (index > 0) {
     subdomain = domain.substring(index, domain.length);
     if (subdomain.indexOf(".", 1) > 0) {
         delCookie('ObTEMC', '/', subdomain);
         delCookie('ObSSOCookie', '/', subdomain);
         delCookie('LtpaToken', '/', subdomain);
         delCookie('LtpaToken2', '/', subdomain);
     }
     domain = subdomain;
     index = domain.indexOf(".", 1);
   }
}

汎用(または非ADF)アプリケーションに対してログアウトを構成するには:

  1. 目的のlogout.htmlファイルを検索します。

  2. 例6-3のJavaScriptをlogout.htmlに追加して、ページ本体のロード時に「delOblixCookie」を起動します。

  3. Oracle Access Managerポリシーで、『Oracle Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド』の説明に従って、匿名認証スキームを使用してlogout.htmlを保護します。

6.10.2 ADFコード・アプリケーションに対するログアウトの構成

Oracle WebCenterポータル・アプリケーションなどのADFコードのFusion Middlewareアプリケーションでは、シングル・サインオンはOPSSを通して実行されます。詳細は、次の項を参照してください。

6.10.2.1 ログアウト用のWebGateの構成

この項では、例(例6-4)と、10g WebGateを統合したOAM 10gによって保護されているアプリケーションのログアウトに使用し、カスタマイズできる手順を示します。


注意:

例6-4は1つの単語のエンドURIのみに適用されます。長いURIの場合は、解析ロジックを適宜更新する必要があります。


ログアウトに対してWebGateを構成するには:

  1. 例6-4に基づいて、WebGate用にlogout.htmlを作成および編集します。ログアウトURLに指定されたエンドURLにログアウト・リクエストをリダイレクトするために、handleLogout()関数を追加してコールします。

    表6-4 サンプルのlogout.htmlスクリプト

    <html>
    <head>
    <script language="javascript" type="text/javascript">
    
    function handleLogout() {
    
        //get protocol used at the server (http/https)
        var webServerProtocol = window.location.protocol;
        //get server host:port
        var webServerHostPort = window.location.host;
        //get query string present in this URL
        var origQueryString = window.location.search.substring(1);
    
        //vars to parse the querystring
        var params = new Array();
        var par = new Array();
        var val;
    
        if (origQueryString != null && origQueryString != "") {
    
            params = origQueryString.split("&");
    
            //search for end_url and redirect the user to this
            for (var i=0; i<params.length; i++) {
    
            par = params[i].split("=");
            if ("end_url" == par[0]) {
              endUrlVal = par[1];
    
            //check if val (value of end_url) begins with "/" or "%2F" (is it an URI?)
            if (endUrlVal.substring(0,1) == "/" || endUrlVal.substring(0,1) == "%") {
              if (endUrlVal.substring(0,1) == "%")
                endUrlVal = "/" + endUrlVal.substring(3);
    
             //modify the end_url value now
               endUrlVal = webServerProtocol + "//" + webServerHostPort + endUrlVal;
             }
        //redirect the user to this URL
        window.location.href = endUrlVal;
             }
           }
       }
    }
    </script>
    </head>
    <body onLoad="handleLogout();">
    <h3>You have been logged out<h3>
    
    </body>
    </html>
    
  2. logout.htmlスクリプトをWebGate_install_dir/oamsso/logout.htmlに格納します。

  3. httpd.confファイル内で、次のエントリがWebGateブロックの下にあることを確認します。

    Alias /oamsso "<webage-install-dir>/access/oamsso
    <LocationMatch "/oamsso/*">
    Satisfy All
    </LocationMatch>
    
  4. 「Oracle Access ManagerでのSSOログアウト用のOPSSの構成」に進みます。

6.10.2.2 Oracle Access ManagerでのSSOログアウト用のOPSSの構成

ログアウト用のアプリケーション構成は、ADFコード・アプリケーションがOPSSと統合されているか統合されていないかに応じて異なります。この項では、OPSSに統合されているADFコード・アプリケーションについて説明します。

次の手順は10g WebGatesのログアウト構成と類似していますが、ログアウト処理後にユーザーのリダイレクト先を特定するためにend_url値を送信する必要があるという、ADFコード・アプリケーションに固有の手順が1つ含まれています。ただしADFコード・アプリケーションでは、アプリケーションが以下のURIを呼び出した時にログアウトが行なわれます。

/<app context root>/adfAuthentication?logout=true&end_url=<any uri>

OAMでのSSOログアウト用にOPSSを構成するには:

  1. 次のパスで、jps-config .xmlファイルを検索して開きます。

     was_profile_dir/config/cells/cell_name/fmwconfig/jps-config.xml
    
  2. jps-config .xml内で、次の<propertySet name="props.auth.uri.0">要素と値を追加します。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <jpsConfig xmlns="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_
    1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.oracle.com/oracleas/schema/11/jps-config-11_
    1.xsd">
    <property value="off" name="oracle.security.jps.jaas.mode"/>
    <propertySets>
    .
    <propertySet name="props.auth.uri.0">
    <property value="/oamsso/logout.html" name="logout.url"/>
    <property value="${app.context}/adfAuthentication" name="login.url.BASIC"/> 
    <property value="${app.context}/adfAuthentication" name="login.url.ANONYMOUS"/>             
    <property value="${app.context}/adfAuthentication" name="login.url.FORM"/> 
    </propertySet>
    <propertySet name="props.auth.level.0">
    <property value="0" name="type-level:ANONYMOUS"/>
    <property value="1" name="type-level:BASIC"/>
    <property value="2" name="type-level:FORM"/>
    .
    </propertySets>
    
  3. jps-config .xml内で、次の<serviceProviders>要素と値を追加します。

    ...
    </propertySets>
    <serviceProviders>
    <serviceProvider class="oracle.security.jps.internal.sso.SsoService 
    Provider" name="sso.provider.0" type="SSO"/>
        </serviceProviders>
    
  4. jps-config .xml内で、次の<serviceInstances>要素と値を追加します。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    ...
    </serviceProviders>
    <serviceInstances>
    .
    .
    <serviceInstance provider="sso.provider.0" name="sso.inst.0">
    <property value="oracle.security.jps.wls.internal.sso.WlsToken 
    Provider" name="token.provider.class"/>
    <property value="2" name="default.auth.level"/>
    <property value="oracle.security.wls.oam.providers.sso.OAMSSO 
    ServiceProviderImpl" name="sso.provider.class"/>
    <property value="OAMSSOToken" name="token.type"/>
    <propertySetRef ref="props.auth.uri.0"/>
    <propertySetRef ref="props.auth.level.0"/>
    </serviceInstance>
    .
    .
    </serviceInstances>
    
  5. jpsContexts内で、強調表示された<serviceInstanceRef ref="sso.inst.0"/>要素と値を追加します。

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    ...
    </serviceInstances>
    <jpsContexts default="default">
    <jpsContext name="default">
    <serviceInstanceRef ref="credstore"/>
    <serviceInstanceRef ref="keystore"/>
    <serviceInstanceRef ref="policystore.xml"/>
    <serviceInstanceRef ref="audit"/>
    <serviceInstanceRef ref="idstore.ldap"/>      
    <serviceInstanceRef ref="sso.inst.0"/>
    </jpsContext>
    </jpsContexts>
    </jpsConfig>
    
  6. Oracle Access Managerポリシーで、『Oracle Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド』の説明に従って、匿名認証スキームを使用して/oamsso/logout.htmlを保護します。

  7. 「IBM WebSphereクラスパスでのoamAuthenProvider.jarの構成」に進みます。

6.10.2.3 IBM WebSphereクラスパスでのoamAuthenProvider.jarの構成

OPSSを介してログアウトを実行するには、oamAuthnProvider.jarをIBM WebSphereクラスパスに構成する必要があります。これは、「IBM WebSphereコンソールでのインターセプタ・エントリの作成」に説明するIBM WebSphereクラスパスでのinterceptor jarの追加に類似しています。

oamAuthnProvider.jarファイルは次のパスから使用できます。

MW_HOME/oracle_common/modules/oracle.oamprovider_11.1.1/
    oamAuthnProvider.jar

oamAuthnProvider.jarをIBM WebSphereクラスパスに追加するには:

  1. IBM WebSphereコンソールで、「Servers」→「Server Types」→「WebSphere Application」→「Servers」の順に移動して、適切なサーバーを選択します。

  2. 「Server Infrastructure」セクションの下の「Java And Process Management」をクリックし、「Process Definition」をクリックします。

  3. 「Additional properties」で、「Java Virtual Machine」→「Custom Properties」を選択します。

  4. ws.ext.dirsプロパティで、OAMTrustAssociationInterceptor.jarのエントリの後にoamAuthnProvider.jarの値を追加して、2つの値がコロンで区切られていることを確認します。例:

    ws.ext.dir   MW_HOME/oracle_common/modules/oracle.oamprovider_11.1.1/
       OAMTrustAssociationInterceptor.jar:MW_HOME/oracle_common/modules/
       oracle.oamprovider_11.1.1/oamAuthnProvider.jar 
    
  5. IBM WebSphereを再起動します。

  6. 「SSOログアウトの検証」に進みます。

6.10.2.4 SSOログアウトの検証

SSOログアウトを検証するには:

  1. ブラウザから、保護されたリソースのURLを入力します。例:

    http://host:port/<app context root>/adfAuthentication
    
  2. ログイン・ページが表示されることを確認し、適切な資格証明でサインインします。

  3. 保護されたリソースが使用できることを確認します。

  4. 新しいブラウザ・タブまたはウィンドウを開いて同じリソースにアクセスし、2回目のアクセス時に新たなログインが要求されないことを確認します。

  5. 次のサンプルに示すようなURLを使用して、1つのタブからログアウトします。

    http://host:port/<app context root>/adfAuthentication?logout=true&end_url=<any
    uri>
    
  6. もう一度そのリソースにアクセスして、ログイン・ページが表示されることを確認します。

6.11 既知の問題

問題:

IBM WebSphere対応のOracle Access Manager IDアサーション・プロバイダは、簡易セキュリティ・モードをサポートしていません。

問題: 一貫性がない

IBM WebSphere対応のOracle Access Manager IDアサーション・プロバイダでは、認証が成功し、有効なObSSOCookieが生成された後でLTPAトークンが生成されません。

Error 
403: AuthenticationFailed

さらに、トレース・ログで次のエラーが生じます。

com.ibm.websphere.security.WebTrustAssociationFailedException: Can not assert 
user identity as LoggedIn user value is null

解決方法

ブラウザを2、3回リフレッシュします。有効なLTPAトークンが生成されます。

サーバーがクライアントとの通信を簡易トランスポート・セキュリティ・モードで行うには、マスター秘密鍵が必要です。Sun JDKには、マスター秘密鍵を生成するAPIがあります。ただし、IBM WebSphereのIBM JDKにはマスター秘密鍵を生成するためのAPIがありません。