ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド
11g リリース1 (11.1.1)
B62265-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

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

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


注意:

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

前提条件

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

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

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

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


注意:

アプリケーションでADF認証サーブレットを使用することをお薦めします。これにより、このサーブレットはOPSSとインタフェース接続し、OPSSでドメイン全体の構成パラメータを使用してログアウトURLを指定できます。この方法であれば、ログアウトの構成を変更するためにアプリケーションの変更や再デプロイが必要になることがありません。

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

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



明示的

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

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

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

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

暗黙的

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

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


ログアウトURLが見つかり、Cookieが削除された場合(10g WebgateのObSSOcookie、11g WebgateのOAMAuthnCookie):Webgateがユーザーをログアウトさせて再認証を要求します。


注意:

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

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

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

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

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

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

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

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

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

一般的に、OAM 10g Webgate使用時の集中ログアウトの際には、SSOエンジンがユーザー・セッションの有無を問う要求を受け取ります。セッション管理エンジンはユーザー・セッションを参照し、ユーザー・セッションが存在するという応答をします。SSOエンジンはユーザー・セッション削除要求を送信します。セッション管理エンジンはトークンとセッション・コンテキストを削除します。SSOエンジンはユーザー・セッション削除完了レスポンスを送信します。

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

IAMSuiteAgent使用時の集中ログアウトについて

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

詳細は、「IAMSuiteAgentの集中ログアウト構成」を参照してください。

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

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


注意:

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

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

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

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

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

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

  5. ログアウト時にカスタムmod_ossoエージェントCookieを削除します。

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ファイルに表15-2の情報が格納されます。

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

要素 説明

ログアウトURL

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

  • 一致する場合、Webgateログアウト・ハンドラが起動します。

  • ログアウトURLが構成されていない場合、「ログアウト」のリクエスト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がサーバーのログアウト・ページにリダイレクトすると、"end" URLが問合せパラメータ(end_url=http://host:port/...")として記録され、ログアウト後に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」から空の状態にし、(空状態やログアウトされた状態のCookieのままにせずに)ログアウト時にOAMAuthnCookie_<host:port>_<random number> Cookieを期限切れにしてこれを明示的に削除します。

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

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

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

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

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

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

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

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

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

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

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

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

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


    注意:

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

    • ログアウトURL

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

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

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

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

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

IAMSuiteAgentの集中ログアウト構成

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

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

IAMSuiteAgentのログアウトの構成手順

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

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

  3. IAMSuiteAgentが有効でログアウトが実行されるすべてのサーバーを選択します。たとえば、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は、「Webgate登録の作成と編集について」に示すように、拡張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 Webgateではlogout.htmlスクリプトを使用しないかわりに、「OAM 11gサーバー使用時の11g Webgateの集中ログアウト構成」に示すようにエージェント登録をさらに詳細に構成する必要があります。

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

例15-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内のログアウト・リンク指定方法を表15-3に示します。

表15-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ドメインのログアウトのみに必要なタスクは識別されているので、必要な場合以外はスキップできます。

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

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

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

    1. 例15-1「logout.htmlスクリプト」に基づき、Webgate用のlogout.htmlを作成および編集します。

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

      Webgate_install_dir/oamsso/logout.html
      

      注意:

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

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

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


    注意:

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

    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ドメイン: SSO用に構成されたマルチ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サーバー上に物理的に存在することを確認します。

      たとえば、logout.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 SSOフレームワークに従ってコーディングされたアプリケーションに使用できます。OAM 11gでログアウトを実行するように構成されたADFコード・アプリケーションは、/oamsso/logout.htmlリソースにリダイレクトします。IAMSuiteAgentはリクエストのインターセプトと処理を行い、セッションをクリーン・アップし、集中ログアウトにリダイレクトして(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を含むページをユーザーのブラウザに送信します。


      注意:

      表15-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. 管理者にエージェントで構成された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. 管理者にエージェントで構成されたlogout.htmlスクリプトの場所を確認します。

      ステップdでは、管理者の提供する値を使用する必要があります。ここで、logouturiの値はログアウト・スクリプト/logout.htmlのURIです。この値は「logout」で始めるか(logout.gifとlogout.jpgは例外)、管理者が構成した別の値にすることもできます。

    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は例外)、管理者が構成した別の値にすることもできます。

  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 10g Webgate: 「OAM 11g使用時の10g Webgateの集中ログアウト構成」の手順を実行します。


関連項目:

Oracle Access Manager 11gのIDアサーションのプロバイダ設定の詳細は、「シナリオ: OAMトークンを使用したアイデンティティ伝播」

ログアウト時のカスタムmod_osso Cookieの削除

ユーザーのログアウト時、認証レスポンス設定によってOAMサーバーで設定されたカスタムCookieの一部が削除されない場合があります。ただし、oam-config.xmlを編集して、ユーザーがOAMからログアウトするときに、認証中に設定されたカスタムCookieを削除するようにOAMサーバーを構成できます。たとえば、Oracle E-Business Suiteと統合している場合、アプリケーションでORASSO_AUTH_HINT Cookieが設定され、CookieNamesリストに含まれている必要があります(UCM Cookieなど)。

構文(PluginClass" Type=...)の下:

<Setting Name="CookieDelMap" Type="htf:map">
                <Setting Name="CookieNames" Type="xsd:string">COOKIE_NAME</Setting>
</Setting>

次の手順に従ってCookieDelMap要素を編集し、ユーザーのログアウト時に削除するCookieNamesを単独の値として、またはカスタムCookieのカンマ区切りリストとして追加します。この手順では、oam-config.xmlファイル・バージョンを増分して、変更をすべての管理対象サーバーに再起動なしで伝播する方法も説明しています。


注意:

作業は慎重に行ってください。通常、oam-config.xmlファイルは編集しないことをお薦めしています。これは数少ない例外です。

ログアウト時にカスタムmod_osso Cookieを削除する手順

  1. DOMAIN_HOME/config/fmwconfig/oam-config.xmlをバックアップします。

  2. oam-config.xmlで、CookieDelMap要素およびCookieNamesを追加(または編集)します。次に例を示します。

    <Setting Name="ResponsePluginSetting" Type="htf:map">
      <Setting Name="PluginClass" Type=... </Settings>
      <Setting Name="CookieDelMap" Type="htf:map">
        <Setting Name="CookieNames" Type="xsd:string">ORASSO_AUTH_HINT
        </Setting>
      </Setting>
    </Setting>
    
  3. 構成バージョン: 次に示すように、Version xsd:integerをこの例の最終行の値まで増分します(既存の値(ここでは25) + 1)。

    次に例を示します。

    <Setting Name="Version" Type="xsd:integer">
      <Setting xmlns="http://www.w3.org/2001/XMLSchema"
        Name="NGAMConfiguration" Type="htf:map:> 
      <Setting Name="ProductRelease" Type="xsd:string">11.1.1.3</Setting>
        <Setting Name="Version" Type="xsd:integer">25</Setting>
    </Setting>      
    
  4. ファイルを保存します。

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

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

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

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

前提条件

  • エージェントとサーバーが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. 新しいタブまたはウィンドウで、別の保護されたアプリケーションにアクセスし、2つ目のアプリケーションで新たなログインを要求されないことを確認します。

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

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