33.2 OAM認可および保護されているWebアプリケーションに対するフェデレーション属性の使用
この章では、SAML/OpenID SSOメッセージで受信した属性をOracle Access Manager (OAM)認証プロセスで使用する方法、および保護されているWebアプリケーションに渡す方法について説明します。
実行時に、Oracle Identity Federation (OIF)/サービス・プロバイダ(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アサーションの属性文またはOpenID SSOレスポンスに含まれる属性は、
$session.attr.fed.attr.ATTR_NAME
を使用して参照され、ATTR_NAME
はローカル・セッション属性名(IdP属性プロファイル・マッピングが適用されている場合)、またはSSOレスポンスの属性名(IdP属性プロファイル・マッピングがこの属性に適用されていない場合)のいずれかになります。
33.2.1 保護リソースへのユーザー・アクセス認証の概要
Oracle Access Management環境は、次のコンポーネントで構成されています:
- LDAPディレクトリ
- OAM管理サーバー(OAM管理コンソールを使用)
- OAMランタイム・サーバー
- Webアプリケーション
- HTTPサーバー(OHS、IISなど)上のWebアプリケーションを保護するWebGateエージェント
認証されたユーザーが保護リソースへのアクセスをリクエストすると、WebGateでは、次のタスクが実行されます。コールが解釈され、次のことが確認されます:
- コールが解釈され、次のことが確認されます:
- ユーザーが認証されていること
- ユーザーにリソースへのアクセス権があること(そのリソースの認可ポリシーを評価)
- データがCookieまたはHTTPヘッダーとしてHTTPリクエストに注入され、HTTPリクエストが保護リソースに転送されます
次に、ユーザーがリソースにアクセスできるかどうかを判断する際に、OAM認可ポリシーで考慮される様々な条件を示します:
- アイデンティティ: ユーザーが属するユーザーのアイデンティティまたはグループに基づく条件
- IPアドレス: ユーザーのIPアドレスに基づく条件
- 一時的: 時間に基づく条件
- 属性: 属性に基づく条件(LDAP、HTTPリクエストまたはセッション属性)
OAM認可レスポンスでは、次のコンポーネントに基づいて、データがHTTPリクエストに注入され、保護されているWebアプリケーションで使用できるようになります:
- ユーザーLDAP属性
- HTTPリクエスト・データ
- 静的文字列
- OAMセッション属性
OAM認可ポリシーと同様に、管理者もOAMセッション属性($session.attr.fed.partner
、$session.attr.fed.attr.ATTR_NAME
...)を使用して、フェデレーション・データをHTTPリクエストに注入できます
33.2.2 フェデレーションSSOの設定の前提条件
フェデレーションSSOを設定するための要件は次のとおりです:
- サービス・プロバイダとして機能するOIF
- NameIDがuserIDに設定されているSAMLアサーションを送信するIdP (AcmeIdP)
- 次の属性を設定します。
- email (ユーザーの電子メール・アドレス)
- fname (ユーザーの名)
- surname (ユーザーの姓)
- title (ユーザーの最新の役職名)
- IdP属性プロファイルを使用して、次のマッピングを行うようOIF/SPを構成します:
- fnameをfirstnameへ
- surnameをlastnameへ
- emailはそのまま
次の値を使用して、2人のユーザーを構成します:
- ユーザー1: Alice
- userID: alice
- 電子メール: alice@oracle.com
- 名: Alice
- 姓: Appleton
- 役職: manager
- ユーザー2: Bob
- userID: bob
- 電子メール: bob@oracle.com
- 名: Bobby
- 姓: Smith
- 役職: engineer
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>
OIF/SPが次のルールに従って属性を処理するため、テストSPページには様々な結果が表示されます:
- emailが変更されていない
- titleが変更されていない
- fnameがfirstnameにマップされている
- surnameがlastnameにマップされている
33.2.3 保護されているWebアプリケーションの前提条件
次のコンポーネントが構成されていることを確認します。
- OHSがインストールされている
- OHSインスタンスにWebGateエージェントが構成されている
- WebGateにOAMアプリケーション・ドメインが作成されている(これにより、OHSサーバー上のすべてのリソースが保護されます)
- 認証ポリシー:
- 名前: 保護対象リソース・ポリシー
- 認証スキーム: FederationScheme
- 認可ポリシー:
- 名前: 保護対象リソース・ポリシー
- リソースが認証ポリシーの「保護対象リソース・ポリシー」および認可ポリシーの「保護対象リソース・ポリシー」にリンクされている
OHS上の
/cgi-bin/printenv
リソースにより、ブラウザから送信されたHTTPリクエストを処理するときに次のデータが出力されます:
- HTTPヘッダー
- リクエスト・データ(パス、問合せ文字列)
- サーバー・データ(IPアドレス、ポート)
OAM/WebGateに保護されずにリソースにアクセスしたブラウザには、次の例のような内容が表示されます(テストでは、Webアプリケーションは、後に示すように保護されます):
33.2.4 フェデレーション属性を使用した認可ポリシーの作成
次の例では、下に示す制約があるリソースのOAMセッションに格納されているフェデレーション属性を使用して、認可ポリシーを作成する方法を示しています:
- フェデレーションSSOで認証されたユーザー(リソースはFederationScheme認証ポリシーで保護されています)。
- IdPからユーザーの役職が渡され、ローカルではtitleと認識されます(IdPからtitle以外の名前で役職が送信される場合は、IdP属性プロファイルを使用してローカルの役職名にマップする必要があります)。
- 役職がマネージャのユーザーに、リソースへのアクセスを限定する必要があります。
認可ポリシーの作成ステップは、次のとおりです:
33.2.5 フェデレーション属性の注入
次の例は、下に示す制約がある保護されているWebのSSOレスポンスから収集されたSAML/OpenID属性を、HTTPヘッダーとして注入する方法を示しています:
- フェデレーションSSOで認証されたユーザー(リソースはFederationScheme認証ポリシーで保護されています)。
- IdPからユーザーの役職が渡され、ローカルではtitleと認識されます(IdPからtitle以外の名前で役職が送信される場合は、IdP属性プロファイルを使用してローカルの役職名にマップする必要があります)。
- OAM/WebGateが、次のものをインジェクトするように構成されている:
- 電子メール・アドレスはemailaddressとして
- 名はfirstnameとして
- 姓はlastnameとして
- 構成は、認可ポリシー定義で認可レスポンス・オブジェクトを使用して行います。
フェデレーション属性をインジェクトするステップは、次のとおりです: