ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Access Manager管理者ガイド
11g リリース1(11.1.1)
B62265-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

11 OAM 11gの集中ログアウトの構成

エージェントが異なれば、ログアウトの実行ステップも異なります。Oracle Access Manager 11gのログアウトは、この章に説明する方法で行なうことをお薦めします。

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


注意:

ログアウトには、カスタム・ログアウト・スクリプトではなくOracle Access Managerが提供するログアウト・メカニズムを使用することをお薦めします。

前提条件

この章に示すタスクを実行するには、以下の前提条件を満たす必要があります。

OAM 11gの集中ログアウトの概要

Oracle Access Manager 11gでは、ユーザー・セッションで集中ログアウト(グローバル・ログアウトとも呼ばれます)を行なうことができます。OAMでは、アクティブ・ユーザー・セッションを終了させるプロセスを集中ログアウトと呼びます。

集中ログアウトを行なうということは以下のことを意味します。


注意:

アプリケーションにはADF認証サーブレットを使用することを強くお薦めします。このサーブレットは、ドメイン全体の構成パラメータを使用してログアウトURLを指定できるOPSSとのインタフェースを取ります。これによって、ログアウト構成を変更するためにアプリケーションに修正を加えたりデプロイし直したりする必要がなくなります。

集中ログアウトが行なわれる状況を表11-1に示します。

表11-1 集中ログアウトの状況



明示的

クライアントの状態が無効化されてセッションが終了。リソースに再度アクセスしようとする場合、クライアントは再認証を行なわなければなりません。

  • ユーザーがログアウトした時

  • 管理者がセッションを終了させた時

  • アイデンティティ側の変化に基づいてセッションが終了された時

暗黙的

定められたセッション・タイムアウト時間内にユーザー・アクティビティがなかった場合、そのユーザーは自動的にログアウトされてパートナーにリダイレクトされ、新しいセッションIDが付与されて資格証明のために新しいプロンプトが表示されます。これは、リソースに対して低レベルの認証が構成されていない場合に実行されます。

OAM 11gの場合、logout.htmlにサーバー・ログアウトへの明示的なリダイレクトが指定されていない限り、10g WebGateが単にログアウトURLに遭遇しただけではユーザーはログアウトされません。OAM 11g WbeGateは、サーバー・ログアウトへユーザーをリダイレクトします。


ログアウトURLに遭遇してCookieが削除されると(10g WebGateではObSSOcookie、11g WebGateではOAMAuthnCookie)、WebGateがユーザーをログアウトさせて再認証を要求します。


注意:

パートナー・アプリケーションと異なり、外部アプリケーション(たとえばYahoo!Mail)はOAMに認証を委任せず、ログアウト制御をOAMシングル・サインオン・サーバーに引き渡すこともしません。これらのアプリケーションのログアウトはユーザーの責任となります。

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

OAM 11gエージェントおよびサーバー使用時の集中ログアウトについて

この項では、アプリケーションを保護するOAM 11g WebGatesで行なわれるサインアウト処理について説明します。

一般的に言って、OAM 11gサーバー使用時の集中ログアウトの際には、SSOエンジンがユーザー・セッションの有無を問う要求を受け取ります。セッション管理エンジンはユーザー・セッションをルックアップして、ユーザー・セッションが存在するという応答をします。SSOエンジンはユーザー・セッション削除(Clear User Session)要求を送信し、セッション管理エンジンはトークンとセッション・コンテキストを削除します。SSOエンジンはユーザー・セッション削除完了(User Session Cleared)レスポンスを送信します。

ユーザー・トークンとセッション・コンテキストを削除するとサーバー側の状態が削除されますが、これにはサーバー側に設定されたOAM_ID Cookieを削除することが含まれます。エージェントに通知が行なわれると、エージェントはパートナー・アプリケーションのクライアント側状態を削除します。詳細については、「OAM 11gサーバー使用時の11g WebGateの集中ログアウト構成」を参照してください。

OAM 10gエージェントとOAM 11gサーバー使用時の集中ログアウトについて

以下のプロセス概要では、標準的なSSOエンジンとセッション管理エンジンによる集中ログアウト時の処理を要約して示します。

登録されたOAM 10g WebGateに対して構成されたlogout.htmlファイルがアプリケーションによって起動されると、ログアウトが開始されます。

一般的に言って、OAM 10g WebGateでの集中ログアウトの際にはSSOエンジンがユーザー・セッションの有無を問う要求を受け取ります。セッション管理エンジンはユーザー・セッションをルックアップして、ユーザー・セッションが存在するという応答をします。SSOエンジンはユーザー・セッション削除(Clear User Session)要求を送信し、セッション管理エンジンはトークンとセッション・コンテキストを削除します。SSOエンジンはユーザー・セッション削除完了(User Session Cleared)レスポンスを送信します。

ユーザー・トークンとセッション・コンテキストを削除するとサーバー側の状態が削除されますが、これにはサーバー側に設定されたOAM_ID Cookieを削除することが含まれます。エージェントに通知が行なわれると、エージェントはパートナー・アプリケーションのクライアント側状態を削除します。詳細については、「OAM 11gサーバー使用時の10g WebGateの集中ログアウト構成」を参照してください。

IDMドメイン・エージェント使用時の集中ログアウトについて

IDMドメイン・エージェントはドメイン全体を対象とするエージェントで、IDM管理コンソールに単一のサインオン機能を提供します。IDMドメイン・エージェントは、Oracle Access Manager 11g Serverのインストールと構成の一部としてインストールされ、事前構成されています。

詳細については、「IDMドメイン・エージェントの集中ログアウト構成」を参照してください。

OSSOエージェント(mod_OSSO)とOAM 11g使用時の集中ログアウトについて

OSSOエージェント(mod_osso 10g)では、パートナー・アプリケーションはログアウト制御もOAMシングル・サインオン・サーバーに引き渡します。ユーザーが1つのパートナー・アプリケーションをログアウトすると、そのユーザーは自動的に他のすべてのパートナー・アプリケーションをログアウトします。


注意:

OSSOエージェントを使用する既存アプリケーションのログアウトURL構成に変更を加える必要はありません。

プロセス概要: mod_ossoによる集中ログアウト

  1. パートナー・アプリケーションで「ログアウト」をクリックすると、ログアウト用のページが表示されます。

  2. ユーザーが正常にサインオフすると、集中ログアウト・ページにリストされた各アプリケーションのアプリケーション名の横にチェック・マークが表示されます。

  3. アプリケーション名の横に壊れたイメージが表示された場合は、ログアウトが正常に行なわれなかったことを示します。

  4. セッション内でアクティブにされたすべてのアプリケーションにチェック・マークが表示されると、「戻る」をクリックすればログアウトを開始したアプリケーションに戻ることができます。

Oracle ADFセキュリティを使用するアプリケーションでの集中ログアウトについて

Oracle Application Development Framework(Oracle ADF)セキュリティとOracle Platform Security Services(OPSS)は、Oracle WebLogic Serverのセキュリティ・フレームワークで構成されています。Oracle WebLogic Server上では、Oracle ADFセキュリティを使用するWebアプリケーション、Oracle Access Manager 11g SSOと統合化されたWebアプリケーション、およびユーザー認証にOPSS SSOを使用するWebアプリケーションを実行することができます。

この状況でユーザーは、作業中の任意のアプリケーションをログアウトすることにより、シングル・サインオン・セッションを終了させてすべてのアクティブ・パートナー・アプリケーションを同時にログアウトすることができます。

詳細については、「OAM 11g使用時のADFコード・アプリケーションの集中ログアウト構成」を参照してください。

OAM 11gサーバー使用時の11g WebGateの集中ログアウト構成

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

11g WebGateの集中ログアウト構成について

OAM 11g WebGate登録ページのいくつかの要素は、OAM 11g WebGateの集中ログアウトを可能にします。登録後はObAccessClient.xmlファイルに表11-2の情報が格納されます。

表11-2 OAM 11g WebGate登録のログアウト要素

要素 説明

ログアウトURL

ログアウトURLはログアウト・ハンドラをトリガします。ログアウト・ハンドラはCookieを削除し(10g WebGatesではObSSOCookie、11g WebGatesではOAMAuthnCookie)、Oracle Access Managerに保護されたリソースにユーザーが再アクセスした時に改めて認証を要求します。

  • URLが一致するとWebGateログアウト・ハンドラがトリガされます。

  • ログアウトURLが構成されていない場合の要求URLの確認は「logout.」に対して行なわれ、このURLが見つかった場合も(「logout.gif」と「logout.jpg」を除く)ログアウト・ハンドラがトリガされます。

Default = [](未設定)

注意:これは、最初のログアウトをトリガするために使われる標準OAM 10g WebGate構成パラメータです。

11g WebGateだけのその他のログアウト

OAM 11g WebGateのシングル・サインオフ動作では、以下の要素と値が、集中ログアウトURL、コールバックURL、およびエンドURLへのリダイレクトを自動化します。これは、カスタマイズされたローカル・ログアウト・ページを使用した場合だけ10g WebGateシングル・サインオフの代わりに使われます。

ログアウト・コールバックURL

コールバック時にCookieを削除するoam_logout_successへのURLです。これはhost:portを持たないURIフォーマットとすることができ(推奨)、この場合、OAMサーバーは最初のリソース・リクエストのhost:portへコールバックします。例:

デフォルト = /oam_logout_success

これはhost:portのある完全なURLフォーマットとすることもでき、この場合OAM 11gサーバーは、コールバックURLを作り直すことなく直接コールバックします。

リクエストURLがログアウト・コールバックURLと一致した場合、WebGateはそのCookieを削除してレスポンスにイメージgifをストリーミングします。これはOSSOエージェントの動作に似ています。

WebGateがサーバー・ログアウト・ページへリダイレクトする時は問合せパラメータとしてエンドURLを記録し(end_url=http://host:port/...")、このURLがOAM 11gのリダイレクトするランディング・ページとなります。

他のOAM 11gサービスは、サーバー上の集中ログアウト・ページをサポートします。end_urlは、OPSS組み込みアプリケーションから渡されるターゲットURL問合せパラメータに依存しています。

ログアウト・リダイレクトURL

このパラメータはエージェントの登録完了後に自動的に格納されます。デフォルトでは、これはデフォルト・ポートが14200のOAMサーバー・ホスト名に基づいて決定されます。たとえば:

デフォルト = http://OAMServer_host:14200/oam/server/logout

ログアウトURLはログアウト・ハンドラをトリガします。ログアウト・ハンドラはOAMAuthnCookie_<host:port>_<random number>を削除し、Oracle Access Managerに保護されたリソースにユーザーが再アクセスした時に改めて認証を要求します。

  • WebGateログアウト・ハンドラがトリガされると、このハンドラはログアウト・リダイレクトURLパラメータに指定された集中ログアウト・ページにリダイレクトします(ログアウト・リダイレクトURLパラメータが指定されている場合)。

  • ログアウト・リダイレクトURLはエージェント登録後にファイルに格納されるので、このURLが構成されていないというのはまず考えられません。10gの動作がトリガされた場合は、別のページにリダイレクトせずにローカル・ログアウト・ページを表示します。ローカル・ログアウト・ページではカスタマイズされたスクリプトを使用して集中ログアウト・ページにリダイレクトすることができ、必要な場合は追加的なサード・パーティのCookieを削除できます。

ログアウト・ターゲットURL

この値は、ログアウト時にOPSSアプリケーションがWebGateに渡す問合せパラメータの名前です。この問合せパラメータは、ログアウト後のランディング・ページのターゲットURLを指定します。

デフォルト: end_url

注意: end_urlの値はparam.logout.targeturl in jps-config.xmlを使用して設定します。

  • ログアウト・ターゲットURLが設定されている場合、WebGateはログアウト・リクエストの問合せパラメータで渡された値を探し、それをOAMサーバーへのリダイレクトURL内のend_url問合せパラメータとして渡します。

  • ログアウト・ターゲットURLが設定されていない場合、WebGateはデフォルト名「end_url」を探し、そのend_url問合せパラメータを一緒に渡します。


OAM 11gに対する11g WebGateのログアウトを構成するには、logoutCallbackUrlが必要です。11gエージェントの集中ログアウトはCookieを「loggedout」から空の状態にし、(loggedout状態や空状態のままにせずに)ログアウト時にOAMAuthnCookie_<host:port>_<random number> Cookieを期限切れにしてこれを明示的に削除します。

OAM 11g WebGatesと10g WebGatesはごく一部が異なるだけで、11gは「logoutCallbackUrl」のURI部分だけを照合します。

SSOエンジンはOAMサーバー上の集中ログアウト・ページをサポートし、以下の処理を行います。

  • ログアウト時に11g WebGateの「logoutCallbackUrl」をコールバックします。

  • ログアウト後に「end_url」(問合せパラメータとして渡される)へランディングします。

WebGateパラメータ「logoutCallbackUrl」は構成可能です(たとえば/oam_logout_successとして)。構成時はhost:portを使わないURIフォーマットを使用することをお薦めします。この場合OAMサーバーは、オリジナル・リクエストのhost:portに基づいて完全なURLを動的に作成し、そこへコールバックします。

これはhost:portのある完全なURLフォーマットとすることもでき、この場合OAM 11gサーバーは、コールバックURLを作り直すことなく直接コールバックします。

OAMサーバはCookieを「loggedout」から空の状態に設定し、このCookieをloggedout状態や空状態のままにせずに、ログアウト時に期限切れにして明示的に削除します。

詳細については「11g WebGateの集中ログアウト構成」を参照してください。

11g WebGateの集中ログアウト構成

OAM 11g WebGateの登録時には、以下の手順を使用してOAM 11g使用時のログアウトを構成してください。

11g WebGateの集中ログアウト構成方法

  1. 登録の方法を選択します。

  2. エージェント登録の作成や編集を行なう時は、使用環境に適したログアウト値を含めてください(表11-2)。

    • ログアウトURL

    • ログアウト・コールバックURL

    • ログアウト・リダイレクトURL

    • ログアウト・ターゲットURL

  3. 通常どおりエージェント登録を終了させます。

  4. 「グローバル・サインオンと集中ログアウトの検証」に示すステップを実行します。

IDMドメイン・エージェントの集中ログアウト構成

IDMドメイン・エージェントは、OAM 11gサーバーに対して集中ログアウトを行なうために必要なログアウト・パラメータによって事前構成されています。IDMドメイン・エージェントは10g WebGateに似ていますが、構成すべきlogout.htmlページがありません。代わりにIDMドメイン・エージェントにはデプロイ済みのアプリケーション(oamsso_logout)が同梱されており、IDMドメイン・エージェントはこれを使ってログアウトを行います。

IDMDomainAgentのログアウト機能を使用するには、IDMDomainAgentを使用するサーバー上にoamsso_logoutアプリケーションがデプロイされている必要があります。最初のインストール時には、このアプリケーションはAdminServerとOAMサーバーに追加されます。ただし、このアプリケーションのターゲット・サーバーを更新して、IDMDomainAgentを使用しているすべてのサーバーを含めなければなりません。

IDMドメイン・エージェントの集中ログアウト構成方法

  1. WebLogicサーバーの管理コンソールにログインします。

  2. 「ドメイン」→「デプロイメント」→「oamsso_logout」→「ターゲット」へナビゲートします。

  3. IDMDomainAgentが有効でログアウトが実行されるすべてのサーバーを選択します。たとえば、oim_server、oaam_admin、oaam_serverなどです。

  4. 「保存」をクリックします。

OAM 11gサーバー使用時の10g WebGateの集中ログアウト構成

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

OAM 11gサーバー使用時の10g WebGateの集中ログアウト処理について

以下のプロセス概要では、OAM 11gの集中ログアウト・プロセスを要約して示します。このプロセスは、保護機能を果たすOAM 10g WebGateが構成されたWebサーバー上にアプリケーションがデプロイされた時に行なわれます。

ログアウトは、登録されたOAMエージェント(この場合は10g WebGate)に対して構成されたlogout.htmlファイルがアプリケーションによって起動されると開始されます。

プロセス概要: OAM 11gサーバー使用時のWebGate 10gの集中ログアウト

  1. アプリケーションが、OAM 10g WebGateに対して構成されたlogout.htmlファイルを起動します。

    アプリケーションはend_urlも問合せ文字列としてlogout.htmlに渡します。end_urlパラメータはURIまたはURLとすることができます。例:

    /oamsso/logout.html?end_url=/welcome.html
    or
    /oamsso/logout.html?end_url=http://my.site.com/welcome.html
    
  2. WebGateはそのドメインのObSSOCookieを削除して、logout.htmlスクリプトをロードします。

  3. end_urlパラメータにhost:portが含まれていない場合、logout.htmlスクリプトはローカル・サーバーのhost:portを取得してend_urlパラメータをURLとして構成します。例:

    http://serverhost:port/oam/server/logout?end_url=http://my.site.com/ 
    welcome.html
    
  4. logout.html内のロジックがOAMサーバーにリダイレクトします。例:

    http://myoamserverhost:port/oam/server/logout?end_url=http://my.site.com/
    welcome.html
    
  5. OAMサーバーが以下のようにログアウトを実行します。

    1. サーバー側のユーザーに関連付けられたセッション情報をクリーン・アップします。

    2. end_urlを確認して、コールバックURLを含むページをユーザーのブラウザに送信します。


      注意:

      ログアウト・コールバックURLは、「OAMエージェント作成ページについて」に示すように拡張OAMエージェント登録ページで指定します。

    3. コールバック・ページから、各WebGateの特定URIに対して新しいリクエストが開始されます。このリクエストが特定ドメインの特定WebGateに届くと、そのドメインのObSSOCookieは消去されます。

    4. ユーザーは、ログアウト・スクリプト内のend_urlにリダイレクトされます。ただし、end_urlパラメータがない場合はOAMサーバーによって適切なメッセージが送信されます。

詳細については、「OAM 11gサーバー使用時のOAM 10gエージェントの集中ログアウトスクリプトについて」を参照してください。

OAM 11gサーバー使用時のOAM 10gエージェントの集中ログアウト・スクリプトについて

OAM 10g WebGateでは、シングルおよびマルチ両方のDNSドメイン集中ログアウト処理にlogout.htmlスクリプトが必要です。logout.htmlは、実際にログアウトを行うJavaScriptsをアクティブにします。


注意:

OAM 11g WebGatesはlogout.htmlスクリプトを使用しません。代わりに、「OAM 11gサーバー使用時の11g WebGateの集中ログアウト構成」に示すようにエージェント登録をさらに詳細に構成する必要があります。

例11-1は、ユーザー固有の環境に合わせて一定の行を編集することによりテンプレートとして使用できる、logout.htmlスクリプトです。編集の必要性についてはスクリプトの最上部に記述されています。たとえば、SERVER_LOGOUTURLを変更する必要があります。この例の後に追加的情報を示します。

例11-1 logout.htmlスクリプト

<html>
<head>
<script language="javascript" type="text/javascript">
///////////////////////////////////////////////////////////////////////////////
//Before using, you need to change the values of:
//a. "oamserverhost" to point to the host where the OAM 11g Server is running.
//b. "port" to point to the port where the OAM 11g Server is running.
///////////////////////////////////////////////////////////////////////////////
var SERVER_LOGOUTURL = "http://oamserverhost:port/oam/server/logout";
///////////////////////////////////////////////////////////////////////////////

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);
    var newQueryString = "";

    //vars to parse the querystring
    var params = new Array();
    var par = new Array();
    var val;

    if (origQueryString != null && origQueryString != "") {
        params = origQueryString.split("&");
        for (var i=0; i<params.length; i++) {
          if (i == 0)
            newQueryString = "?";

        if (i > 0)
            newQueryString = newQueryString + "&";

        par = params[i].split("=");

        //prepare a new query string, if the end_url value needs to be changed
        newQueryString = newQueryString + (par[0]);
        newQueryString = newQueryString + "=";
        val = par[1];

        if ("end_url" == par[0]) {
        //check if val (value of end_url) begins with "/" or "%2F" (is it an URI?)
        if (val.substring(0,1) == "/" || val.substring(0,1) == "%") {
                //modify the query string now
                val = webServerProtocol + "//" + webServerHostPort + val;
            }
        }  
        newQueryString = newQueryString + val;
    }

    //redirect the user to this URL
    window.location.href = SERVER_LOGOUTURL + newQueryString;
}

</script>
</head>

<body onLoad="handleLogout();">

</body>
</html>

プロセス概要: logout.htmlのロジック

  1. 着信リクエストからホストとポートを取得します。

  2. 問合せ文字列からend_urlパラメータを取得します。

    end_urlパラメータがURLでない場合は、logout.htmlスクリプトがタスク1のホストとポートを使用してURLを作成します。「logout.html内のend_urlパラメータのガイドライン」を参照してください。

  3. OAMサーバーのログアウトURL(SERVER_LOGOUTURL)へのリダイレクト。例: http://myoamserver/host:port/oam/server/logout

    • プロセス2で作成したend_urlを問合せ文字列として使用。

    • 問合せ文字列内の他のすべての問合せ文字列パラメータを保存。

logout.html内のend_urlパラメータのガイドライン

end_urlパラメータはURIまたはURLとすることができます。

  • end_url問合せ文字列がホストとポートを持たないURIの場合、logout.htmlは、logout.htmlがホストされるWebサーバーのホストとポートを決定することによってURLを作成しなければなりません。例:

    http://myoamserverhost:port/oam/server/logout?end_url=http://my 
    .site.com/welcome.html
    
  • end_urlパラメータがホストとポートを持つURLである場合、logout.htmlスクリプトは、URLを作り直すことなくそのURLをそのまま渡します。


注意:

ADFアプリケーションは、「Oracle ADFコード・アプリケーションの集中ログアウト構成」に示すように、ログアウト後にユーザーをどこへリダイレクトするかを示すend_urlパラメータを渡さなければなりません。
/<app context root>/adfAuthentication?logout=true&end_url=<any uri>

logout.html内のログアウト・リンク指定方法を表11-3に示します。

表11-3 end_urlパラメータ指定の例

内容 end_urlの値の例

URI

/oamsso/logout.html?end_url=<someUri>

例:

/oamsso/logout.html?end_url=/welcome.html

URL

/oamsso/logout.html?end_url=<someUrl>

例:

/oamsso/logout.html?end_url=http://my.site.com/welcome.html

OAM 11g使用時の10g WebGateの集中ログアウト構成

以下の手順は、OAM 11g使用時の10g WebGateの集中ログアウト構成方法を示したものです。


注意:

オプションのタスクや、マルチDNSドメインのログアウトだけに必要なタスクは識別されているので、必要な場合以外はスキップすることができます。

第17章、「OAM 11g使用時のOAM 10g WebGateの管理」には、WebLogic Serverドメイン内にアプリケーションをデプロイするためのステップを含む、簡単な手順が示されています。

タスクの概要: 10g WebGateの集中ログアウトの構成

  1. デフォルトのログアウト・ページ(logout.html)を作成し、WebGateインストール・ディレクトリ上でそのページを使用できるようにします。

    1. 例11-1、「logout.htmlスクリプト」に基づき、WebGate用のlogout.htmlの作成と編集を行ないます。

    2. 作成または編集したogout.htmlスクリプトを以下のディレクトリ・パスに保存します。

      WebGate_install_dir/oamsso/logout.html
      

      注意:

      logout.htmlを他の場所に置く場合は、エージェント登録時にログアウト・リンクを正しく指定してlogout.htmlファイルの正しい場所を参照するようにしてください。

    3. 必要に応じて以下のステップを実行します。

  2. 以下のように、それぞれのリソースWebGateに対してlogOutUrlsパラメータが構成されていることを確認します。


    注意:

    LogOutUrlパラメータがすでに「/oamsso/logout.html」以外の値によって10g WebGate用に構成されている場合は、「/oamsso/logout.html」もLogOutUrlsパラメータの一部として存在することを確認します。

    1. <callBackUri>が「logOutUrls」の一部として2つ目の値になっていることを確認します。

    2. 2つの値がカンマで区切られていることを確認します: "/oamsso/logout.html, <CallbackUri>".

  3. logout.html(ステップ1)が、この集中ログアウトURI(OAM 11gサーバーの/oam/server/logout)へユーザーをリダイレクトすることを確認します。

  4. オプション: 「logout.html内のend_urlパラメータのガイドライン」に示すように、アプリケーションが、ログアウト後にユーザーがリダイレクトされる場所を示すend_urlパラメータを渡せるようにします。

  5. マルチDNSドメイン: SSD用に構成されたマルチDNSドメインがある場合は、以下のステップを実行します。


    注意:

    ログアウト・コールバックURLは各WebGateに固有のものとすることができますが、各WebGateに対してコールバックURLを作成するには、OAMサーバに対して各ドメインの各WebGateのホストとポートを指定するだけで十分です。ログアウト・コールバックURLが参照するファイルは、WebGateのインストール・ディレクトリにあるlogout.htmlスクリプトとは異なるものでなければなりません。

    1. <CallbackUri>を、各リソースWebGate上のlogOutUrlsパラメータの2つ目の値として構成します。

      <CallbackUri>は、ドメイン内のobssocookieを消去するためのリクエストを送らなければならないWebGate上の場所です。<CallbackUri>をlogout.htmlとすることはできません。

    2. ファイルが、<CallBackUri>で示される場所(通常はlogout.htmlと同じ場所)にある各Webサーバー上に物理的に存在することを確認します。

      たとえば、lotout.htmlと同じ場所にlogout.pngという名前のファイルを構成する場合、logout.pngの<CallBackUri>の値は次のようにする必要があります。

      /oamsso/logout.png 
      
  6. 10g WebGateの構成に使われるOHS Webサーバーの構成ファイルhttpd.confを確認して、以下の行が存在する場合はこれを削除します。

    <LocationMatch "/oamsso/*">
    Satisfy any
    </LocationMatch>
    

Oracle ADFコード・アプリケーションの集中ログアウト構成

Oracle Access Manager SSOソリューションは、Oracle ADF標準およびOPSS SSOFフレームワークに従ってコーディングされたアプリケーションに使用することができます。OAM 11gでログアウトを実行するように構成されたADFコード・アプリケーションは、/oamsso/logout.htmlリソースにリダイレクトします。IDMドメイン・エージェントはリクエストのインターセプトと処理を行い、セッションをクリーン・アップし、集中ログアウトにリダイレクトして(OAMサーバーにより実行)再びend_urlにリダイレクトします。


関連項目:

Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド


注意:

ADFアプリケーションの場合は、追加的な構成ステップが1つだけ必要です(OPSS用にOAMSSOProviderを構成)。

タスクの概要: OAM 11gによるADFアプリケーションの保護

  1. 以下のどちらかを使ってADFコード・アプリケーションを保護します。

    • 11g WebGate

    • 10g WebGate

  2. ADFコード・アプリケーション用に追加的な構成ステップを1つ実行します: 「OAM 11g使用時のADFコード・アプリケーションの集中ログアウト構成」の説明に従ってOAMSSOProviderを構成してください。

  3. 選択したWebGateのバージョンに合わせてログアウト構成ステップを実行します。

この項には以下の項目が含まれていますが、Oracle ADF標準およびOPSS SSOフレームワークに従ってコーディングされたアプリケーションを使わない場合はスキップできます。

Oracle ADF標準に従ってコーディングされたアプリケーションの集中ログアウト処理について

ADFコード・アプリケーションとは、ADFと完全に統合化されたアプリケーション、またはADF認証サーブレットだけを使用してOPSSとの統合化を図るアプリケーションを言います。

この場合、ログアウトは、ADFアプリケーションがログアウトURIを呼び出した時に開始されます。以下のプロセスは、Oracle ADF標準に従ってコーディングされたアプリケーションのOAM 11g集中ログアウト・プロセスの概要です。

プロセス概要: 10g WebGate使用時のADFアプリケーションの集中ログアウト

  1. ADFアプリケーションは以下のURIを呼び出します。

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

    end_urlパラメータは、ログアウト後にアプリケーションが制御を戻すURIを指定します。

  2. ADFは構成済みのOPSS SSOプロバイダ(この場合はOAM)を起動し、ログアウトURIにリクエストをリダイレクトすることによって、構成済みのログアウトURIにログアウト機能を委任します。end_urlの値は問合せ文字列としてログアウトURIに渡されます。例: /oamsso/logout.html?end_url=<end_uri>

  3. ログアウトURIは、アプリケーションのフロントエンド処理を行なうWebGateに呼び出されます。

  4. 10g WebGateはそのドメイン用のObSSOCookieを削除して、logout.htmlスクリプトをロードします。

  5. end_urlパラメータにhost:portが含まれていない場合、logout.htmlスクリプトはローカル・サーバーのhost:portを取得してend_urlパラメータをURLとして構成します。例:

    http://serverhost:port/oam/server/logout?end_url=http://my.site.com/ 
    welcome.html
    
  6. logout.html内のロジックがOAMサーバーにリダイレクトします。例:

    http://myoamserverhost:port/oam/server/logout?end_url=http://my.site.com/
    welcome.html
    
  7. OAMサーバーが以下のようにログアウトを実行します。

    1. サーバー側のユーザーに関連付けられたセッション情報をクリーン・アップします。

    2. end_urlを確認して、コールバックURLを含むページをユーザーのブラウザに送信します。


      注意:

      表11-2に示すように、ログアウト・コールバックURLは、展開された(短縮されていない)OAMエージェント登録で指定されます。

    3. コールバック・ページから、各WebGateの特定URIに対して新しいリクエストが開始されます。このリクエストが特定ドメインの特定WebGateに届くと、そのドメインのObSSOCookieは消去されます。

    4. ユーザーは、ログアウト・スクリプト内のend_urlにリダイレクトされます。ただし、end_urlパラメータがない場合はOAMサーバーによって適切なメッセージが送信されます。

OAM 11g使用時のADFコード・アプリケーションの集中ログアウト構成

以下の手順は10g WebGateのログアウト構成と同様ですが、ADFコード・アプリケーション用のステップが含まれています。ADFコード・アプリケーションでは、ログアウト処理後にユーザーをどこへリダイレクトするかを明らかにするためにend_urlの値を送らなければなりません。ただしADFコード・アプリケーションでは、アプリケーションが以下のURIを呼び出した時にログアウトが行なわれます。

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

注意:

Applcore f/wは上記のURLのトリガを容易にすることができ、ADFアプリケーションはこれを利用することができます。

この手順の一部のステップにはWebLogic Scripting Tool(WLST)が必要で(Linuxではwlst.sh、Windowsではwlst.cmd)、これはWLST_install_dirから呼び出す必要があります。


関連項目:


ADFコード・アプリケーションの集中ログアウト構成方法

  1. OAM Adminstratorを使い、エージェントによって構成されたlogout.htmlスクリプトの場所を確認します。これには以下の手順に従う必要があります。

  2. 以下のように、OAM用のOPSSをSSOプロバイダとして構成し、WebLogic管理ドメインのjps-config.xmlを更新します。

    1. Oracle ADFセキュリティを使用してOracle WebLogic ServerとWebアプリケーションをホストしているコンピュータ上で、Oracle JRF WLSTスクリプトの場所を確認します。例:

      cd $ORACLE_HOME/oracle_common/common/bin
      
    2. Oracle WebLogic Serverをホストしているコンピュータに接続し、管理者IDとパスワード、およびWebLogic AdminServerのホストとポートを入力します。

      wls:/> /connect('admin_ID', 'admin_pw', 'hostname:port' 
      

      たとえば、Oracle WebLogic Administration Serverホストは、ポート7001を使用するlocalhostとすることができます。ただし、実際に使用している環境では異なることもあります。

    3. OAM Administratorを使い、エージェントによって構成されたlogout.htmlスクリプトの場所を確認します。

      ステップdでは、OAM Administratorの提供する値を使う必要があります。ここで、logouturivalはログアウト・スクリプト/logout.htmlのURIです。logouturlは「logout」で始めるか(logout.gifとlogout.jpgは例外)、OAM Administratorによって構成された他の値とすることができます。

    4. ADF認証用のloginuriとlogouturiを入力します(エージェントによって構成されたlogout.htmlスクリプトの場所)。ホストとポートは必要ありません。

      wls:/>addOAMSSOProvider(loginuri="/${app.context}/adfAuthentication",
      logouturi="/oamsso/logout.html", autologinuri="/obrar.cgi")
      

      ここで、loginuri=/${app.context}/adfAuthentication、logouturivalはログアウト・スクリプト/logout.htmlのURIです。logouturlは「logout」で始めるか(logout.gifとlogout.jpgは例外)、OAM Administratorによって構成された他の値とすることができます。

  3. 必須: 以下に示すように、ADFアプリケーションは、ログアウト後にユーザーをどこへリダイレクトするかを示すend_urlパラメータを渡さなければなりません。

    end_urlパラメータにhost:portが含まれていない場合、logout.htmlスクリプトはローカル・サーバーのhost:portを取得してend_urlパラメータをURLとして構成します。例:

    http://serverhost:port/oam/server/logout?end_url=http://serverhost:port/ 
    welcome.html
    
  4. OAM 11g WebGate: 「11g WebGateの集中ログアウト構成」のステップを実行します。

  5. OAM 11g WebGate: 「OAM 11g使用時の10g WebGateの集中ログアウト構成」のステップを実行します。


関連項目:

Oracle Access Manager 11gのIDアサーションのプロバイダ設定についての詳細は、『Oracle Fusion Middlewareアプリケーション・セキュリティ・ガイド』

グローバル・サインオンと集中ログアウトの検証

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

グローバル・サインオンの確認

シングル・サインオンによるグローバル・ログインの監視には以下の手順を使用します。

前提条件

  • エージェントとサーバーがOAM 11gによって登録され、実行されていなければなりません。

  • OAM 11gアプリケーション・ドメイン内で、SSOを制御するリソースとポリシーを定義しなければなりません。

グローバル・サインオンの監視方法

  1. 保護されたリソースのURLをブラウザに入力し、正しい資格証明を使ってサインインします。

  2. 他の保護リソースのURLを入力して、再認証を求められないことを確認します。

様々なエージェント・タイプを使用したグローバル・サインオンの検証

以下の手順を使用して、同じ認証レベルを持つ様々なアプリケーションとエージェントによるシングル・サインオンによるグローバル・ログインを監視します。

たとえば、以下の場所に以下のパートナーがあるものとします。

  • OSSOパートナー、http://host1.example.com:7777/private/index.html、mod_ossoを使用して保護

  • WebGateパートナー、http://host2.example.com:8888/mydomain/finance/index.html、OAMエージェントを使用して保護

同じブラウザ・セッション内で、1回のサインインにより、どちらかのエージェントによって保護されたすべてのアプリケーションにアクセスすることができます。

前提条件

  • エージェントとサーバーがOAM 11gによって登録され、実行されていなければなりません。

  • OAM 11gアプリケーション・ドメイン内でリソースとポリシーを定義しなければなりません。

  • どちらのパートナーも、同じ認証レベルで保護されていなければなりません。

  • この章の説明に従ってシングル・サインオンが構成されていなければなりません。

様々なエージェント・タイプによるグローバル・サインオンの監視方法

  1. OSSOエージェントに保護されたアプリケーション:

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

    2. ログイン・ページが表示されること、および正しい資格証明でサインインできることを確認します。

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

    4. 同じブラウザ・セッションを維持して、ステップ2に進みます。

  2. 同じブラウザ・セッション、OAMエージェントに保護されたアプリケーション:

    1. ステップ1と同じブラウザ・セッションで、OAMエージェントに保護されたリソースのURLを入力します。

    2. 保護されたリソースを使用できることと、ログイン・ページが表示されないことを確認します。

  3. ブラウザ・セッションをログアウトします。

  4. 新しいブラウザ・セッション、OAMエージェントに保護されたアプリケーション:

    1. 新しいブラウザ・セッションで、OAMに保護されたリソースのURLを入力します。

    2. ログイン・ページが表示されること、および正しい資格証明でサインインできることを確認します。

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

    4. 同じブラウザ・セッションを維持して、ステップ5に進みます。

  5. 同じブラウザ・セッション、OSSOエージェントに保護されたアプリケーション:

    1. ステップ4と同じブラウザ・セッションで、OSSOエージェントに保護されたリソースのURLを入力します。

    2. 保護されたリソースを使用できることと、ログイン・ページが表示されないことを確認します。

集中ログアウトの監視

以下の手順を使用して集中ログアウトを監視します。

  • OAMエージェントの場合はログアウトURLがサーバーへのリダイレクトを行い、その後の要求によってCookieが特定されないようにCookieが消去されて無効化されます。

  • mod_ossoの場合は、各エージェントがそのCookieを破棄します。ログアウトURLがサーバー上のグローバル・ログアウト・ページへのリダイレクトを行い、各パートナーがそのサーバーにCookieを送ります。

前提条件

  • エージェントが登録されて実行されていなければなりません。

  • リソースはOAM 11gアプリケーション・ドメインによって保護されていなければなりません。

  • シングル・サインオンは、OAM 11gアプリケーション・ドメイン内で、認証と認可のためのポリシーと応答によって構成されていなければなりません。

集中ログアウトの監視方法

  1. 1つのアプリケーション:

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

    2. ログイン・ページが表示されること、および正しい資格証明でサインインできることを確認します。

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

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

    5. 1つのタブからログアウトします。

    6. もう一度そのリソースにアクセスして、ログイン・ページが表示されることを確認します。

  2. 2つのアプリケーション:

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

    2. ログイン・ページが表示されること、および正しい資格証明でサインインできることを確認します。

    3. 新しいタブまたはウィンドウで、別の保護されたアプリケーションにアクセスします。

    4. 1つ目のアプリケーションからログアウトします。

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

    6. 2つ目のアプリケーションにアクセスして、ログイン・ページが表示されることを確認します。