OAMおよびSPの認証レベルへのFed Authnメソッドのマッピング

この記事では、OAM/SPと、実行時にリモートのIdPパートナが使用する特定のフェデレーション認証メソッドを要求してユーザーにチャレンジするように設定する方法について見ていきます。

認証レベル

OAMは、認証スキームでの認証レベルの概念を定義します。これは、特定のスキームの強さのレベルを数値(1、2、3...)として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は、次の方法で特定のフェデレーション認証方法を認証レベルにマップするように構成できます。

使用できるOAM WLSTコマンドは次のとおりです。

テスト

設定

この設定では、OAMはSPとして機能し、AcmeIdPで識別されるリモートSAML 2.0 IdPパートナと統合されています。

次のテストで、OAM/SPを構成してフェデレーション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セッションを作成すると、次のようになります。

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セッションを作成すると、次のようになります。

X.509 Fed認証メソッドのレベル3へのマッピング

urn:oasis:names:tc:SAML:2.0:ac:classes:X509を認証レベル3にマップするようにOAM/SPを構成するには、addIdPPartnerAuthnMethod()を使用してIdPパートナを構成します。

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。

  2. WLS管理サーバー(connect())に接続します。

  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します

  4. addIdPPartnerAuthnMethod()コマンドaddIdPPartnerAuthnMethod("AcmeIdP", "3")を実行します

  5. 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セッションを作成すると、次のようになります。

  1. Resource1にアクセスすると、OAMセッションのレベルが2で、そのリソースを保護するスキームのレベルと等しいため、アクセス権が付与されます(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のマッピングが存在するため、次のようになります。

その他の学習リソース

docs.oracle.com/learnで他のラボを探すか、Oracle Learning YouTubeチャネルで無料のラーニング・コンテンツにアクセスしてください。また、education.oracle.com/learning-explorerにアクセスしてOracle Learning Explorerになります。

製品ドキュメントについては、Oracle Help Centerを参照してください。