| 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"