OAMおよびSPの認証レベルへのFed Authnメソッドのマッピング
この記事では、OAM/SPと、実行時にリモートのIdPパートナが使用する特定のフェデレーション認証メソッドを要求してユーザーにチャレンジするように設定する方法について見ていきます。
認証レベル
OAMは、認証スキームでの認証レベルの概念を定義します。これは、特定のスキームの強さのレベルを数値(1、2、3...)としてOAMで示し、すでに認証済のユーザーが保護されたリソースにアクセスしようとしたときに実行時に使用されます。
ユーザーが認証スキームを介してOAMによって認証されると、OAMによってそのユーザーのセッションが作成され、セッションに格納されます。
-
ユーザーの認証に使用される認証スキーム名
-
認証操作に使用される認証レベル
ユーザーが保護されたリソースにアクセスしようとすると、OAMは次の処理を実行します。
-
ユーザーのセッションがタイムアウトしなかったことを確認します。
-
OAMポリシー・ストア内のリソースを見つけます リソースを保護している認証ポリシーを決定します
-
この認証ポリシーに使用される認証スキームを決定します
-
この認証スキームの認証レベルを取得します
-
認証レベルと、以前の認証操作でユーザーのセッションの作成に使用されたレベルを比較します。
-
セッションの認証レベルが、現在保護されているリソースのレベル以上である場合、OAMはユーザーにアクセス権を付与します。
-
そうでない場合、OAMはリソースの認証スキームを使用してユーザーにチャレンジします。
フェデレーション認証メソッド
SAML 2.0/SAML 1.1/OpenID 2.0に対してIdP/OPによって発行されたフェデレーションSSOレスポンス・メッセージには、ユーザーがIdPでどのようにチャレンジされたかを示すフェデレーション認証方法が含まれています。
デフォルトでは、OAM/SPがSSOレスポンスを使用する場合、セッション認証レベルを認証スキームの認証レベルに設定してOAMセッションが作成されます。これはかなり静的であり、ユーザーがIdPでどのようにチャレンジされたかは無視されます。
SSOレスポンスに含まれるフェデレーション認証メソッドは、ユーザーがIdPでどのように識別されたかを示し、フェデレーション認証スキームに含まれるレベルに依存するのではなく、OAMセッションの認証レベルをその情報に基づいて設定することをお薦めします。
フェデレーションSSOレスポンスを使用する場合、OAM/SPでは、カスタム認証レベルへのレスポンスに含まれるフェデレーション認証メソッドの動的マッピングが許可されるため、IdPでユーザーがどのようにチャレンジされたかを示すレベルを使用してOAMセッションが作成されます。
WLSTコマンド
OAM/SPは、次の方法で特定のフェデレーション認証方法を認証レベルにマップするように構成できます。
-
このプロファイルにバインドされているすべてのIdPパートナに適用されるIdPパートナ・プロファイル
-
IdPパートナ。この場合、このパートナにのみ適用されます
使用できるOAM WLSTコマンドは次のとおりです。
-
addIdPPartnerProfileAuthnMethod()
: 特定のIdPパートナ・プロファイルで指定されたフェデレーション認証メソッドを、指定されたレベルにマップします。次のパラメータを指定できます。-
partnerProfile
: IdPパートナ・プロファイルの名前 -
authnMethod
: マップするフェデレーション認証メソッド -
authnLevel
: フェデレーション認証メソッドにマップされるレベル
-
-
addIdPPartnerAuthnMethod()
: 指定されたフェデレーション認証メソッドを特定のレベルにマップするように、指定されたIdPパートナ・エントリを構成します。次のパラメータを指定できます。-
partner
: IdPパートナの名前 -
authnMethod
: マップするフェデレーション認証メソッド -
authnLevel
: フェデレーション認証メソッドにマップされるレベル
-
テスト
設定
この設定では、OAMはSPとして機能し、AcmeIdP
で識別されるリモートSAML 2.0 IdPパートナと統合されています。
-
デフォルトでは、OAM/SPはフェデレーション認証メソッドをリクエストするように構成されていません。
-
OAM/SPには2つのリソースがあり、WebGateによって保護されています。
-
Resource1は、レベル2に設定されているFederationSchemeを介して保護されます。
-
Resource2は、レベル3に設定されているLDAPSchemeを介して保護されます。
-
リモートIdPは、次のフェデレーション認証メソッドをサポートしています
-
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
(帯域外IdPで示されるデフォルト・メソッド) -
urn:oasis:names:tc:SAML:2.0:ac:classes:X509
次のテストで、OAM/SPを構成してフェデレーションSSOを実行し、両方のリソースにアクセスします。
-
ユーザー名/パスワードを介してユーザーにチャレンジするIdPを使用してフェデレーションSSOを実行します
-
X.509
証明書を介してユーザーにチャレンジするIdPを使用してフェデレーションSSOを実行します -
urn:oasis:names:tc:SAML:2.0:ac:classes:X509
をレベル3にマップするようにOAM/SPを構成します。 -
ユーザー名/パスワードを介してユーザーにチャレンジするIdPを使用してフェデレーションSSOを実行します
-
X.509
証明書を介してユーザーにチャレンジするIdPを使用してフェデレーションSSOを実行します
ユーザー名/パスワードを使用したSSO
IdPは、デフォルトの認証メカニズム(この場合はurn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
にマップされたメカニズム)を使用してユーザーにチャレンジします。SAML 2.0 SSOレスポンスは次のようになります。
<samlp:Response ...>
<saml:Issuer ...>hTps://acmeidp.com</saml:Issuer>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ...>
<saml:Issuer
...>hTps://acmeidp.com</saml:Issuer>
<dsig:Signature>
...
</dsig:Signature>
<saml:Subject>
<saml:NameID
...>bob@oracle.com</saml:NameID>
<saml:SubjectCon=rmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectCon=rmationData .../>
</saml:SubjectCon=rmation>
</saml:Subject>
<saml:Conditions ...>
<saml:AudienceRestriction>
<saml:Audience>hTps://sp.com</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement
AuthnInstant="2014-03-21T20:53:55Z"
SessionIndex="id-6i-Dm0yBHekG6cejktwcKIFMzYE8Yrmqwfd0azz"
SessionNotOnOrAfter="2014-03-21T21:53:55Z">
<saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
OAM/SPがSAML 2.0アサーションを消費し、urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
のマッピングが存在しないため、認証レベルをFederationSchemeの認証レベル(2)に設定してOAMセッションを作成すると、次のようになります。
-
Resource1にアクセスすると、OAMセッションのレベルが2で、そのリソースを保護するスキームのレベルと等しいため、アクセス権が付与されます(2)。
-
Resource2にアクセスすると、OAMセッションのレベルが2で、そのリソースを保護するスキームのレベルより低いため、OAMはLDAPSchemeを介してユーザーにチャレンジします(3)。
X.509証明書を使用したSSO
IdPは、ユーザーX.509証明書(urn:oasis:names:tc:SAML:2.0:ac:classes:X509
にマップ)にチャレンジします
SAML 2.0 SSOレスポンスは次のようになります。
<samlp:Response ...>
<saml:Issuer ...>hTps://acmeidp.com</saml:Issuer>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ...>
<saml:Issuer
...>hTps://acmeidp.com</saml:Issuer>
<dsig:Signature>
...
</dsig:Signature>
<saml:Subject>
<saml:NameID
...>bob@oracle.com</saml:NameID>
<saml:SubjectCon=rmation
Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectCon=rmationData .../>
</saml:SubjectCon=rmation>
</saml:Subject>
<saml:Conditions ...>
<saml:AudienceRestriction>
<saml:Audience>hTps://sp.com</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>
<saml:AuthnStatement
AuthnInstant="2014-03-21T20:53:55Z"
SessionIndex="id-6i-Dm0yBHekG6cejktwcKIFMzYE8Yrmqwfd0azz"
SessionNotOnOrAfter="2014-03-21T21:53:55Z"> <saml:AuthnContext>
<saml:AuthnContextClassRef>
urn:oasis:names:tc:SAML:2.0:ac:classes:X509
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>
</samlp:Response>
OAM/SPがSAML 2.0アサーションを消費し、urn:oasis:names:tc:SAML:2.0:ac:classes:X509
のマッピングが存在しないため、認証レベルをFederationSchemeの認証レベル(2)に設定してOAMセッションを作成すると、次のようになります。
-
Resource1にアクセスすると、OAMセッションのレベルが2で、そのリソースを保護するスキームのレベルと等しいため、アクセス権が付与されます(2)。
-
Resource2にアクセスすると、OAMセッションのレベルが2で、そのリソースを保護するスキームのレベルより低いため、OAMはLDAPSchemeを介してユーザーにチャレンジします(3)。
X.509 Fed認証メソッドのレベル3へのマッピング
urn:oasis:names:tc:SAML:2.0:ac:classes:X509
を認証レベル3にマップするようにOAM/SPを構成するには、addIdPPartnerAuthnMethod()
を使用してIdPパートナを構成します。
-
$IAM_ORACLE_HOME/common/bin/WLST.sh
を実行して、WLST環境を入力します。 -
WLS管理サーバー(
connect()
)に接続します。 -
ドメイン・ランタイム・ブランチ
domainRuntime()
に移動します -
addIdPPartnerAuthnMethod()
コマンドaddIdPPartnerAuthnMethod("AcmeIdP", "3")
を実行します -
WLST環境を終了します:
exit()
ユーザー名/パスワードを使用したSSO
IdPは、デフォルトの認証メカニズム(この場合はurn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
にマップされたメカニズム)を使用してユーザーにチャレンジします
OAM/SPがSAML 2.0アサーションを消費し、urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport
のマッピングが存在しないため、認証レベルをFederationSchemeの認証レベル(2)に設定してOAMセッションを作成すると、次のようになります。
-
Resource1にアクセスすると、OAMセッションのレベルが2で、そのリソースを保護するスキームのレベルと等しいため、アクセス権が付与されます(2)。
-
Resource2にアクセスすると、OAMセッションのレベルが2で、そのリソースを保護するスキームのレベルより低いため、OAMはLDAPSchemeを介してユーザーにチャレンジします(3)。
X.509証明書を使用したSSO
IdPは、ユーザーX.509証明書(urn:oasis:names:tc:SAML:2.0:ac:classes:X509
にマップ)にチャレンジします
OAM/SPがSAML 2.0アサーションを使用し、認証レベルを3に設定してOAMセッションを作成すると、urn:oasis:names:tc:SAML:2.0:ac:classes:X509
のマッピングが存在するため、次のようになります。
-
Resource1にアクセスすると、OAMセッションのレベルが3であり、そのリソースを保護するスキームのレベルより大きいため、アクセス権が付与されます(2)。
-
Resource2にアクセスすると、OAMセッションのレベルが3であり、そのリソースを保護するスキームのレベルと等しいため、アクセス権が付与されます(3)。
その他の学習リソース
docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。
製品ドキュメントについては、Oracle Help Centerを参照してください。
Mapping Fed Authn Methods to Authn Levels in OAM and SP
F61371-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.