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

前
次

25.13 SSOのポリシー・レスポンスの概要

各ポリシーは、1つ以上の認証または認可レスポンスあるいはその両方をオプションで含むことができます。レスポンスは、Webエージェントで実行される後処理のアクション(必須処理)です。

ノート:

トークン発行ポリシーにはレスポンスがありません。

この項では、次の情報について説明します。

25.13.1 SSOの認証および認可ポリシーのレスポンス

管理者は、認証または認可が成功した後に実行する必要があるアクションを宣言するレスポンスを定義できます。認証および認可データがクライアント(通常はWebエージェント)に戻されます。

ポリシー・レスポンスにより、情報をセッションまたはアプリケーションに挿入し、SSOを有効化するために後で情報を抽出できます。たとえば、アイデンティティ・マッピングを顧客アプリケーションに挿入するか、エージェントまたはアプリケーションでアクションを実行できます。

認証または認可の成功および失敗に応じて指定されるレスポンスによっては、ユーザーが特定のURLにリダイレクトされたり、ヘッダー変数またはCookie値を通じてユーザー情報が他のアプリケーションに渡されたりする場合があります。

ノート:

Oracle Access Manager 10gでは、特定の順序のURLのリダイレクトでのみ、アプリケーションのデータの経路を提供しました。

デフォルトのレスポンスは提供されません。図25-30に、Oracle Access Managementコンソールの管理者に定義された認可ポリシー・レスポンスを示します。認可レスポンスは、認可条件と組み合せて操作できます。

図25-30 コンソールの認可ポリシー・レスポンス

図25-30の説明が続きます
「図25-30 コンソールの認可ポリシー・レスポンス」の説明

各レスポンスは、2つの入力(タイプおよび式)と1つの出力(評価された式の値)で構成されます。式は、式を処理する場合の値の構築方法を宣言します。レスポンス・タイプは、値文字列を使用して実行するアクションの形式を定義します。

  • 認証ポリシーは、ユーザーのアイデンティティを決定します。各認証ポリシーには、認証スキームおよびレスポンス(式)が必要です。

  • 認可ポリシーは、リソースへのユーザーのアクセス権を付与するかどうかを決定します。各認可ポリシーには、認可条件およびレスポンス(式)が必要です。

レスポンスのガイドライン

  1. Cookie、ヘッダーおよびセッション・レスポンスがサポートされます。

  2. URLリダイレクトを設定できます。

  3. レスポンス定義は、各ポリシーの一部です。レスポンス値は、リテラル文字列の場合も、リクエスト、ユーザーおよびセッション属性から値を取得する追加的な埋込み式を含む場合もあります。

管理者は、表25-25で説明されているとおり、Oracle Access Managementコンソールのレスポンスを設定します。

表25-25 レスポンス要素

要素 説明

名前

このレスポンスと同じメカニズム(タイプ)を使用する他のレスポンスを区別する一意の名前。

タイプ

レスポンスを伝達するために使用されるメカニズム。値文字列を使用して実行するアクションの形式。

  • HEADER(ヘッダー変数): 定義された値を使用して実行するアクション(事前定義されたHTTPヘッダー名を使用したユーザーIDのアサーションなど)を指示するダウンストリーム・アプリケーションのHTTPリクエスト・ヘッダーを設定します。

  • SESSION: 定義されたセッション変数名および値に基づいて、シングル・サインオンを有効化するためにクライアントがユーザー・セッション内の属性を設定します。

  • COOKIE: 通常はWebエージェントによって設定される認証セッションCookie内の変数名および値を設定して、シングル・サインオンを有効化します。

    Cookieなしモードの場合、WebgateからCookieを格納するWebキャッシュが現在使用されています。ただし、Cookieなしモードの場合、エンド・アプリケーションでCookieにアクセスしてCookieを使用できません。

  • アサートされた属性: このタイプの場合、このポリシーの実行時に「アサーション属性」タイプ・レスポンスを収集するには、このポリシーでIDアサーションを有効にする必要があります。「名前」リストでは、選択対象の有効な識別子が提供されます。

変数として設定されるレスポンスの式。

詳細は、「ポリシー・レスポンスの言語について」を参照してください。

 

リライイング・パーティ(ID伝播ユースケース)へのプロキシ・アクセスを得るためにトークンをリクエストするAccess Managerによって保護されるWebアプリケーションであるセキュリティ・トークン・サービス・クライアントでは、エンド・ユーザーを表すAccess Manager IDアサーションを渡す必要があります。

IDアサーション・トークンは、正常に認証された後に生成され、ポリシー・レスポンス(名前が「OAM_IDENTITY_ASSERTION」で値がSAMLトークンというHTTPヘッダー)として返されます。

(「アサートされた属性」以外のタイプの)レスポンスを追加するたびに、「アイデンティティ・アサーションはこのポリシーに対して有効になっていません...」というメッセージが表示される場合があります。ポリシーの実行時に「アサートされた属性」タイプ・レスポンスを収集するには、IDアサーションを有効にします。

関連項目:

25.13.2 ポリシー・レスポンスの言語について

2つの主な構造とともに非常に小規模なドメイン固有言語(DSL)を使用して、Access Manager認証および認可レスポンスを定義します。

  • リテラル文字列: This is a valid expressionなどです。

  • 変数の参照:

    • ドル記号の接頭辞($)を使用して宣言します。

    • ネームスペース$namespace.var_nameでスコープされます。

      ノート:

      変数に$ns.name.attribute 属性が含まれる場合があります。

25.13.3 ポリシー・レスポンスのネームスペースおよび変数名

ネームスペース・メカニズムを使用すると、次の変数タイプでシングル・サインオンが有効化します。

  • リクエスト: リクエストしたリソース、リクエストを実行したクライアントおよび評価中に一致したポリシーの情報

  • セッション: ユーザー・セッションの詳細

  • ユーザー: ユーザーの詳細(ユーザーID、グループおよび属性情報)

詳細は、次の表を参照してください。

表25-26 シングル・サインオンのネームスペース・リクエスト変数

ネームスペース 説明

agent_id

リクエストしているエージェントの名前

client_ip

ユーザー・ブラウザのIPアドレス

policy_appdomain

リクエストに一致するポリシーを保持するアプリケーション・ドメインの名前

policy_eval_success_conditions

trueに評価されるポリシー条件のリスト。コロンまたは構成済レスポンス区切り文字で区切られています。

policy_eval_failure_conditions

falseに評価されるポリシー条件のリスト。コロンまたは構成済レスポンス区切り文字で区切られています。

policy_res

リクエストに一致するリソース・ホストIDおよびURLパターン

policy_name

リクエストに一致する特定のポリシーの名前

res_host

リクエストしたリソースのホスト名

res_port

リクエストしたリソースのポート番号

res_type

リクエストしたリソースのタイプ

res_url

リクエストされたリソースURLパス

res_complete_url

問合せ文字列を含む、リクエストされたリソースURLパス

表25-27 シングル・サインオンのネームスペース・セッション変数

ネームスペース 説明

attr

名前が変数属性として渡される任意のセッション属性の参照。前のリクエストでセッション・レスポンスを実行することで、値がセッションにバインドされています。

authn_level

セッションの現在の認証レベル

authn_scheme

現在の認証レベルを実現するために実行される認証スキームの名前

count

セッションにバインドされたユーザーのセッション数

creation

セッションの作成時間

expiration

セッションの有効期間

表25-28 ネームスペース・ユーザー変数

ネームスペース 説明

attr.<attrName>

ユーザー変数attrNameの値attrNameが複数値の場合、コロンまたは構成済レスポンス区切り文字で区切られた値のリスト。

groups

コロンまたは構成済レスポンス区切り文字で区切られた、ユーザーのグループ・メンバーシップのリスト。

userid

ユーザーID

user.id_domain

ユーザーのアイデンティティ・ドメイン(基本的にアイデンティティ・ストアと同じ)

guid

アイデンティティ・ストアでユーザー・エントリを特定する一意の識別子

25.13.4 SSOのポリシー・レスポンスの構築について

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

25.13.4.1 単純なレスポンス

レスポンス・タイプとネームスペースおよび変数を決定した後、Oracle Access Managementコンソールでレスポンス属性を入力します。

図25-31に示すように、単純なレスポンスはいくつかの認可レスポンスのいずれかのようになります。

図25-31 単純なレスポンスのサンプル

図25-31の説明が続きます
「図25-31 単純なレスポンスのサンプル」の説明

単純なレスポンスはスタンドアロンです。それぞれの先頭にドル記号($)が付けられ、変数値とドット(.)で区切られるネームスペースがその後に付けられます。次に例を示します。

$namespace1.var1

表25-29は、いくつかの単純なレスポンスおよびそれぞれに戻される内容の説明を示しています。

表25-29 単純なレスポンスおよび説明

名前 タイプ 値(単純な$ネームスペース.変数) 戻される環境変数および値

oam_sessioncount

ヘッダー

$session.count

HTTP_OAM_SESSIONCOUNT 整数

oam_userid

ヘッダー

$user.userid

HTTP_OAM_USERID 名前

oam_ipaddress

ヘッダー

$request.client_ip

HTTP_OAM_IPADDRESS nnn.nn.nn.nnn

oam_literal

ヘッダー

これはレスポンス文字列です。

HTTP_OAM_LITERAL これはレスポンス文字列です。

25.13.4.2 複合的および複雑なレスポンス

複合的または複雑なポリシー・レスポンスを作成する場合、管理者は、中括弧{}を使用してリテラルおよび変数を任意に結合して式を構築できます。コロン(:)はセパレータとして使用されます。

次に例を示します。

${namespace1.var1}:${namespace2.var2}

リテラル文字列(LS): ${namespace1.var1}:${namespace2.var2}

LS: ${namespace1.var1}, LS:${namespace2.var2}

図25-32は、管理者によって定義されるいくつかの複雑なレスポンスを示しています。すべてがヘッダー・タイプ・レスポンスで、ダウンストリーム・アプリケーションで利用されるHTTPリクエストのヘッダー変数の値が設定されます。

図25-32 複雑なレスポンスの例

図25-32の説明が続きます
「図25-32 複雑なレスポンスの例」の説明

表25-30は、図25-32のような複雑なレスポンスを示しています。

表25-30 複雑なレスポンス

名前 戻される環境変数および値

oam_resinfo

ランタイム・リソース: ${request.res_host}:${request.res_port}${request.res_url}

HTTP_OAM_RESINFO

ランタイム・リソース: myhost.domain.com:1234/cgi-bin/myres3

oam_clientinfo

ランタイム・クライアント: エージェントID: ${request.agent_id}、ブラウザIP: $request.client_ip

HTTP_OAM_CLIENTINFO

ランタイム・クライアント: エージェントID: RREG_OAM、ブラウザIP: 123.45.67.891

oam_userinfo

${user.userid}のグループ: ${user.groups}、説明: ${user.attr.description}

HTTP_OAM_USERINFO

WebLogicのグループ: 管理者、説明: このユーザーはデフォルトの管理者です。

oam_sessioninfo

セッションの作成/有効期間/数: ${session.creation}/${session.expiration}/${session.count}

HTTP_OAM_SESSIONINFO

セッションの作成/有効期間/数: Tue Oct 23 17:47:42 PST 2011/Wed Oct 24 01:47:42 PST 2011/7

oam_app_user

$user.userid

HTTP_OAM_USERID 名前

詳細は、「ポリシー・レスポンス処理について」を参照してください。

25.13.4.3 複数値のレスポンス

Access Manager 11gは、複数値を持つレスポンスをサポートします。これらには、複数値のユーザー属性レスポンス、ユーザーのグループ・メンバーシップ・レスポンスなどがあります。複数値のレスポンスの場合、Access Managerでは、区切り文字としてコロンを、エスケープ文字として円記号を使用します。

たとえば、ユーザー属性genTypeは、値としてGold、PlatinumおよびSilverを持ちます。$user.attr.genTypeに対するポリシー・レスポンスは、次のようになります。

"Gold:Platinum:Silver"

コロンが属性値に出現すると、円記号でエスケープされます。たとえば、Administrators、Special:Usersなどのグループ・メンバーシップを持つユーザーの場合、$user.groupsに対するポリシー・レスポンスは、次のようになります。

"Administrators:Special\:Users"

configurePolicyResponses(responseSeparator, responseEscapeChar) WLSTコマンドを使用すると、デフォルトの区切り文字およびエスケープ文字を変更できます。

25.13.5 ポリシー・レスポンス処理について

ポリシー・レスポンス処理は、認証レスポンスを再実行する認可リクエストの実行中に発生します。変数の参照に適切な値が入力され、すべての変数に値が設定されて認可値で一貫して設定できることを確認します。

一連のステップを実行して、レスポンスの式を処理します。

  • スキャナ/トークナイザ

  • パーサー

  • インタプリタ

    解釈中、値の変数の参照が解決します。処理後の結果は単純な文字列値で、エージェントに伝播されるか、将来の使用に備えてセッション内に保存されます。

最初の適用される認可リクエストの認可レスポンスとともに認証の成功レスポンスが保存され、再実行されます。

認可レスポンスの式は、式の評価(成功、失敗または未確定)に応じて実行されるアクションを作成します。

ノート:

Oracle Access Manager 10gでは、認証Webゲート構成内と同じ動作を示します。これはAccess Manager 11gで10g Webgateを使用した場合にも適用されます。10g Webgateは常に、認証Webgateのような働きをするAccess Manager 11g資格証明コレクタにリダイレクトします。

変数を参照すると、値または次の内容が戻されます。

  • 変数が設定されていない場合、NOT FOUNDが戻されます。

  • 変数がnull値に設定されている場合、NULLが戻されます。

ノート:

レスポンスを検証してください。

処理のないパススルー:

処理しないでパススルーを実行する必要がある値は、\を使用して識別できます。次に例を示します。

\$1000

$1000の結果が戻される値に表示されます。

25.13.6 アサーションの要求および処理

詳細は、「アイデンティティ・コンテキストの使用」を参照してください。