Fed Attributesの使用: OAM認可およびHTTPヘッダー
この記事では、SAML/OpenID SSOメッセージで受信した属性をOAM認可ポリシーで使用する方法と、それらを保護されたWebアプリケーションにどのように提供できるかについて説明します。
実行時に、OAM/SPがSAML/OpenID SSOレスポンス・メッセージを正常に処理すると、サーバーは、OAM認可ポリシーで使用できる属性として、レスポンスの情報の一部をOAMセッションに保存します。
-
承認ルールの条件内
-
保護されたWebアプリケーションにSAML/OpenID属性を提供するためのレスポンス
SAML/OpenID SSOレスポンス情報は、次の識別子によって参照される属性としてOAMセッションに保存されます。
-
$session.attr.fed.partnerによって参照されるIdPパートナ名 -
$session.attr.fed.nameidvalueで参照されるSSOレスポンスのNameID値 -
$session.attr.fed.nameidformatで参照されるSAMLプロトコルの場合のSSOレスポンスからのNameID形式 -
SAMLアサーションの
AttributeStatementまたはOpenID SSOレスポンスに含まれる属性($session.attr.fed.attr.ATTR_NAMEによって参照され、ATTR_NAMEは -
ローカル・セッション属性名(IdP属性プロファイル・マッピングが適用されている場合)
-
または、SSOレスポンスの属性名(この属性にIdP属性プロファイル・マッピングが適用されていない場合)
概要
一般的なOAM環境は、次のもので構成されます。
-
LDAPディレクトリ
-
OAM管理サーバー、OAM管理コンソールのOAMランタイム・サーバー
-
Webアプリケーション
-
WebGate HTTPサーバー上のWebアプリケーションを保護するエージェント(OHS、IIS...)
認証されたユーザーが保護されたリソースへのアクセスをリクエストした場合:
-
WebGateはコールをインターセプトし、ユーザーが認証されていることを確認します。
-
ユーザーには、このリソースの認可ポリシーを評価してリソースにアクセスする権限があります
-
WebGateは、保護されたリソースに転送されるHTTPリクエストに、CookieまたはHTTPヘッダーとしてデータを注入します
ユーザーがリソースにアクセスできるかどうかを評価するために使用されるOAM認可ポリシーは、様々な条件に基づきます。
-
アイデンティティ: ユーザーが属するユーザー・アイデンティティまたはグループに基づく条件
-
IPアドレス: ユーザーのIPアドレスに基づく条件
-
一時的: 時間に基づく条件
-
属性: 属性(LDAP、HTTPリクエストまたはセッション属性)に基づく条件。
管理者は、フェデレーション属性を評価する属性条件を使用して、認可ルールのSAML/OpenID SSOメッセージで受信したフェデレーション・データを使用できます。
保護されたWebアプリケーションで使用できるようにするためにHTTPリクエストにデータを注入するために使用されるOAM認可レスポンスは、次のものに基づきます。
-
ユーザーLDAP属性
-
HTTPリクエスト・データ
-
静的文字列
-
OAMセッション属性
OAM認可ポリシーと同様に、管理者はフェデレーション・エントリ($session.attr.fed.partner、$session.attr.fed.attr.ATTR_NAME...)を参照するOAMセッション属性を使用して、フェデレーション・データをHTTPリクエストに注入できます。
フェデレーションSSO設定
以前に構成したのと同じSAML 2.0フェデレーション設定を使用します。ここでは:
-
OAMはサービス・プロバイダとして機能します。
-
IdP (
AcmeIdP)は、次のものを使用してSAMLアサーションを送信します-
NameIDを
userIDに設定 -
属性送信済
-
emailがユーザーの電子メール・アドレスに設定されています -
fnameがユーザーの名に設定されています -
surnameをユーザーの姓に設定 -
titleはユーザーの最後のジョブ・タイトルに設定されます
-
-
IdP属性プロファイルで構成されたOAM/SP
-
fnameを名にマップ -
surnameを姓にマップ -
メールをそのままにする
-
次の2人のユーザーが使用されます。
Alice:
-
userID: alice
-
電子メール:
<alice@oracle.com> -
名: Alice
-
姓: Appleton
-
title: manager
Bob:
-
userID: bob
-
電子メール:
<bob@oracle.com> -
名: Bobby
-
姓: Smith
-
title: エンジニア
IdPによって返されたアサーションを含むXML SAMLレスポンスは、次のとおりです。
<samlp:Response ..>
<saml:Issuer ...>http://acme.com
/idp</saml:Issuer>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ...>
<saml:Issuer ...>http://acme.com /idp</saml:Issuer>
<dsig:Signature ...>
...
</dsig:Signature>
<saml:Subject>
<saml:NameID ...>alice</saml:NameID>
...
</saml:Subject> <saml:Conditions ...>
...
</saml:Conditions> <saml:AuthnStatement ...>
...
</saml:AuthnStatement>
<saml:AttributeStatement ...>
<saml:Attribute Name="email" ...>
<saml:AttributeValue
...>alice@oracle.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="title" ...>
<saml:AttributeValue
...>manager</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="surname" ...>
<saml:AttributeValue
...>Appleton</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="fname" ...>
<saml:AttributeValue
...>Alice</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
OAM/SPでは次のルールに従って属性が処理されるため、「SPのテスト」ページには様々な結果が表示されます。
-
Eメールは変更されませんでした
-
タイトルは変更されませんでした
-
fnameが名にマップされました
-
姓が姓にマップされました

保護されたWebアプリケーション
この例では、次のコンポーネントを使用します。
-
OHSがインストールされていること
-
このOHSインスタンスにWebGateエージェントが構成されています
-
OHSサーバー上のすべてのリソースを保護する、このWebGateに対してOAMアプリケーション・ドメインが作成されています
-
認証ポリシー:
-
名前: 保護リソース・ポリシー
-
認証スキーム: FederationScheme
-
-
認可ポリシー:
-
名前: 保護リソース・ポリシー
-
リソース
-
/**および/.../*
-
保護されたリソース・ポリシーにリンクされています
-
-
認証ポリシーおよび"保護されたリソース・ポリシー"認可ポリシー
-
OHSの
/cgi-bin/printenvリソースは、ブラウザによって送信されたHTTPリクエストの処理時にデータを出力します -
HTTPヘッダー
-
リクエスト・データ(パス、問合せ文字列...)
-
サーバー・データ(IPアドレス、ポート...)
OAM/WebGateで保護されていないリソースにアクセスするブラウザの例では、次の表示になります(テストでは、Webアプリケーションは前述のように保護されます)。

図Protected_web_Application.jpgの説明
認可条件
次の例は、次の制約があるリソースのOAMセッションに格納されているフェデレーション属性を使用して認可ポリシーを構築する方法を示しています。
-
ユーザーはフェデレーションSSOを介して認証されます(そのため、リソースはFederationScheme認証ポリシーで保護されます)
-
IdPsはユーザーのジョブ・タイトルを提供し、ローカルでタイトルと呼ばれます(IdPがタイトルとは異なる名前でジョブ・タイトルを送信する場合、IdP属性プロファイルを使用してローカル・タイトル名にマップする必要があります)
-
マネージャ・タイトルを持つユーザーのみがリソースへのアクセス権を持つ必要があります
このような認可ポリシーを作成するには、次のステップを実行します。
-
OAM管理コンソールに移動します:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
「アクセス・マネージャ」、「アプリケーション・ドメイン」にナビゲートします
-
「リソースのアプリケーション・ドメイン」を検索してクリックします
-
「認可ポリシー」をクリックします
-
リソースを保護する認可ポリシーを開きます(この例では保護リソース・ポリシー)。
-
「条件」タブをクリックします
-
「追加」をクリックして新規条件を定義します:
-
名前:
TitleCondition -
タイプ:
Attribute
-
-
「選択項目の追加」をクリックします
-
新規に作成された条件を選択します
-
「条件詳細」ウィンドウで、「追加」をクリックします。
-
ネームスペース:
Session -
属性名:
Other -
属性名を入力します:
fed.title -
演算子:
Equals -
属性値:
manager
-
-
「OK」をクリックします
-
「ルール」タブをクリックします。
-
「ルールを許可」の「選択した条件」にある場合は、TRUE条件を削除します。
-
TitleConditionを「ルール許可」、選択した条件に追加します
-
「適用」をクリックします



テストするには、新しいブラウザで保護されたリソースにアクセスします。IdPにリダイレクトされます。
aliceを使用してIdPで認証する場合、ブラウザでは現在終了時に次のものが表示され、aliceに設定されたリモート・ユーザーHTTPヘッダーが表示されます(IdPではtitle属性がmanagerに設定されており、OAMではOAMセッション属性fed.titleがmanagerに設定されているユーザーのみにアクセスできます)。

bobを使用してIdPで認証する場合、ブラウザでは現在終了時に次の内容が表示され、エラーが表示されます(IdPではtitle属性がエンジニアに設定されていて、OAMではOAMセッション属性fed.titleがmanagerに設定されているユーザーのみにアクセスできます)。

Fed属性の注入
次の例は、SSOレスポンスから収集されたSAML/OpenID属性を、保護されたWebのHTTPヘッダーとして、次の制約を使用してインジェクトする方法を示しています。
-
ユーザーはフェデレーションSSOを介して認証されます(そのため、リソースはFederationScheme認証ポリシーで保護されます)
-
IdPsはユーザーのジョブ・タイトルを提供し、ローカルでタイトルと呼ばれます(IdPがタイトルとは異なる名前でジョブ・タイトルを送信する場合、IdP属性プロファイルを使用してローカル・タイトル名にマップする必要があります)
-
OAM/WebGateは、次のものを注入するように構成されています。
-
Eメール・アドレス
-
名前(名)
-
姓
-
構成は、認可ポリシー定義で認可レスポンス・オブジェクトを使用して行われます
このような認可ポリシーを構成するには、次のステップを実行します。
-
OAM管理コンソールに移動します:
http(s)://OAM-admin-host:OAM-adminport/oamconsole -
「アクセス・マネージャ」、「アプリケーション・ドメイン」にナビゲートします
-
リソースのアプリケーション・ドメインを検索してクリックします
-
「認可ポリシー」をクリックします
-
リソースを保護する認可ポリシーを開きます(この例では保護リソース・ポリシー)。
-
「レスポンス」タブをクリックします
-
「追加」をクリックして、電子メール・アドレスのエントリを作成します。
-
タイプ:
Header -
名前:
emailaddress -
値:
$session.attr.fed.attr.email
-
-
「追加」をクリックします

-
「追加」をクリックして、名のエントリを作成します。
-
タイプ:
Header -
名前:
firstname -
値:
$session.attr.fed.attr.firstname
-
-
「追加」をクリックします
-
「追加」をクリックして、姓のエントリを作成します。
-
タイプ:
Header -
名前:
lastname -
値:
$session.attr.fed.attr.lastname
-
-
「追加」をクリックします
-
「適用」をクリックします

図ACS_Authorization_Policy.jpgの説明
テストするには、新しいブラウザで保護されたリソースにアクセスします。認証が発生したIdPにリダイレクトされます。
OAM/WebGateは、OAMセッション属性(IdPから受信)に基づいて認可レスポンス・アイテムを注入し、保護されたWebアプリケーションでそれらを表示します(テスト・ページにはHTTPヘッダーがHTTP_NAMEとして表示され、NAMEがHTTPヘッダーの名前です)。

図Authorization_Response.jpgの説明
その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Using Fed Attributes- OAM Authorization and HTTP Headers
F61887-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.