Oracle® Fusion Middleware Oracle Access Management管理者ガイド 11g リリース2 (11.1.2.3) for All Platforms E61950-08 |
|
![]() 前 |
![]() 次 |
11g OAMサーバーを使用して10g Webゲート用の集中ログアウトを構成するには、次のタスクを実行する必要があります。
保護機能を果たす10g Webゲートが構成されたWebサーバー上にアプリケーションがデプロイされると、Access Managerの集中ログアウト・プロセスが発生します。
ログアウトは、登録されたOAMエージェント(この場合は10g WebGate)に対して構成されたlogout.htmlファイルがアプリケーションによって起動されると開始されます。
ここでは、11g OAMサーバー使用時の10g Webゲートの集中ログアウトに関するプロセスの概要を示します。
アプリケーションが、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
WebGateはそのドメインのObSSOCookieをクリアして、logout.htmlスクリプトをロードします。
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
logout.html内のロジックがOAMサーバーにリダイレクトします。次に例を示します。
http://myoamserverhost:port/oam/server/logout?end_url=http://my.site.com/
welcome.html
OAMサーバーが次のようにログアウトを実行します。
サーバー側のユーザーに関連付けられたセッション情報をクリーン・アップします。
end_url
を確認して、コールバックURLを含むページをユーザーのブラウザに送信します。
ノート:
ログアウト・コールバックURL
は、拡張されたOAMエージェント登録ページで指定します。
「OAM Webゲートの作成ページとパラメータ」を参照してください。
次のようにしてリモート登録テンプレートを見つけることができます。
表15-3を参照してください。
コールバック・ページから、各WebGateの特定URIに対して新しいリクエストが開始されます。このリクエストが特定ドメインの特定WebGateに届くと、そのドメインのObSSOCookieはクリアされます。
ユーザーは、ログアウト・スクリプト内のend_url
にリダイレクトされます。ただし、end_url
パラメータがない場合はOAMサーバーによって適切なメッセージが送信されます。
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>
ここでは、logout.htmlスクリプトに関するプロセスの概要を示します。
プロセス・フローは次のとおりです。
着信リクエストからホストとポートを取得します。
問合せ文字列からend_url
パラメータを取得します。
end_url
パラメータがURLでない場合は、logout.htmlスクリプトがタスク1のホストとポートを使用してURLを作成します。
「logout.html内のend_urlパラメータのガイドライン」を参照してください。
OAMサーバーのログアウトURL (SERVER_LOGOUTURL)へのリダイレクト。例: http://myoamserver/host:port/oam/server/logout
プロセス2で作成した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
|
Access Manager使用時の10g Webゲートの集中ログアウトを構成できます。
ノート:
オプションのタスクや、マルチDNSドメインのログアウトだけに必要なタスクは識別されているので、必要な場合以外はスキップすることができます。
『Oracle Platform Security Servicesによるアプリケーションの保護』に記載された手順例には、WebLogic Serverドメインにアプリケーションをデプロイするステップが含まれています。
タスクの概要 - 10g Webゲート用の集中ログアウトの構成:
デフォルトのログアウト・ページ(logout.html)を作成し、WebGateインストール・ディレクトリ上でそのページを使用できるようにします。
「11g OAMサーバー使用時の10g Webゲートの集中ログアウト・スクリプト」で示すlogout.htmlスクリプトに基づき、Webゲート用のlogout.htmlを作成および編集します。
作成または編集したlogout.htmlスクリプトを次のディレクトリ・パスに保存します。
WebGate_install_dir/oamsso/logout.html
ノート:
logout.htmlを他の場所に置く場合は、エージェント登録時にログアウト・リンクを正しく指定してlogout.htmlファイルの正しい場所を参照するようにしてください。
必要に応じて次のステップを実行します。
ステップ1にあるlogout.htmlで、ユーザーを11g OAMサーバー上のこの中央管理ログアウトのURI(/oam/server/logout)にリダイレクトする設定になっていることを確認します。
オプション: ログアウトしたユーザーのリダイレクト先を示すend_urlパラメータをアプリケーションで渡すことができます。
「logout.html内のend_urlパラメータのガイドライン」を参照してください。
10g Webゲートが構成されているWebサーバー・ファイルを確認し、次の説明に従って適切なステップを実行します。
OHS Webサーバーのhttpd.confファイル: 次の行が存在する場合、それらを削除します。
<LocationMatch "/oamsso/*"> Satisfy any </LocationMatch>
その他のWebサーバーの構成ファイル: 次の行を追加します。
Alias /oamsso "WebGateInstallationDirectory/oamsso"