プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Access Management管理者ガイド
11g リリース2 (11.1.2.3) for All Platforms
E61950-08
目次へ移動
目次

前
次

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

11g OAMサーバーを使用して10g Webゲート用の集中ログアウトを構成するには、次のタスクを実行する必要があります。

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

保護機能を果たす10g Webゲートが構成されたWebサーバー上にアプリケーションがデプロイされると、Access Managerの集中ログアウト・プロセスが発生します。

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

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

ここでは、11g OAMサーバー使用時の10g Webゲートの集中ログアウトに関するプロセスの概要を示します。

  1. アプリケーションが、10g Webゲートに対して構成された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 Webゲートの作成ページとパラメータ」を参照してください。

      次のようにしてリモート登録テンプレートを見つけることができます。

      表15-3を参照してください。

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

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

「11g OAMサーバー使用時の10g Webゲートの集中ログアウト・スクリプト」を参照してください。

30.8.2 11g OAMサーバー使用時の10g Webゲートの集中ログアウト・スクリプト

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

ノート:

11g Webゲートでは、logout.htmlスクリプトを使用しないかわりに、エージェント登録をさらに詳細に構成する必要があります。

「11g OAMサーバー使用時の10g Webゲートの集中ログアウトの構成」を参照してください。

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

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 Server is running.
//b. "port" to point to the port where the OAM 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>

30.8.2.1 プロセス概要: logout.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を問合せ文字列として使用。

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

30.8.2.2 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アプリケーションは、ログアウト後にユーザーをどこにリダイレクトするかを示すend_urlパラメータを渡す必要があります。

「Oracle ADFコード・アプリケーションの集中ログアウト構成」を参照してください。

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

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

表30-5 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

30.8.3 Access Manager使用時の10g Webゲートの集中ログアウトの構成

Access Manager使用時の10g Webゲートの集中ログアウトを構成できます。

ノート:

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

『Oracle Platform Security Servicesによるアプリケーションの保護』に記載された手順例には、WebLogic Serverドメインにアプリケーションをデプロイするステップが含まれています。

タスクの概要 - 10g Webゲート用の集中ログアウトの構成:

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

    1. 「11g OAMサーバー使用時の10g Webゲートの集中ログアウト・スクリプト」で示すlogout.htmlスクリプトに基づき、Webゲート用のlogout.htmlを作成および編集します。

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

      WebGate_install_dir/oamsso/logout.html
      

      ノート:

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

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

  2. ステップ1にあるlogout.htmlで、ユーザーを11g OAMサーバー上のこの中央管理ログアウトのURI(/oam/server/logout)にリダイレクトする設定になっていることを確認します。

  3. オプション: ログアウトしたユーザーのリダイレクト先を示すend_urlパラメータをアプリケーションで渡すことができます。

    「logout.html内のend_urlパラメータのガイドライン」を参照してください。

  4. 10g Webゲートが構成されているWebサーバー・ファイルを確認し、次の説明に従って適切なステップを実行します。

    • OHS Webサーバーのhttpd.confファイル: 次の行が存在する場合、それらを削除します。

      <LocationMatch "/oamsso/*">
      Satisfy any
      </LocationMatch>
      
    • その他のWebサーバーの構成ファイル: 次の行を追加します。

      Alias /oamsso "WebGateInstallationDirectory/oamsso"