AuthnRequest OAMおよびSPの設定

この記事では、フェデレーションSSOフローでのOAMでのAuthnRequestメッセージの作成方法に影響する様々なOAM/SP設定を示します。AuthnRequestメッセージは、フェデレーションSSO操作を開始するためにSPによって使用され、操作の実行方法をIdPに示します。

プロトコル

SAML 2.0、SAML 1.1およびOpenID 2.0プロトコルは、SPがSSO操作をトリガーしたときに、管理者が様々なマナーでフェデレーションSSOフローに影響を与えることができる様々なメッセージ要素およびルールを定義します。

SAML 2.0

OAM/SPでは、次の要素についてSAML 2.0 AuthnRequestメッセージをカスタマイズできます。

ForceAuthn:

IsPassive

RequestedAuthnContext

NameIDPolicy

ProtocolBinding

OAM/SPでは、管理者は次の目的でサーバーを構成することもできます。

SAML 1.1

SAML 1.1仕様では、フェデレーションSSO操作の開始時にSPがIdPに送信するメッセージは定義されていません。そのため、フェデレーションSSOフローの開始に影響を与える方法についてOAM/SPを構成する機能はありません。

OpenID 2.0

OpenID 2.0では、フェデレーションSSO操作の実行方法に影響を与えるためにSP/RPで使用できるいくつかの拡張機能が定義されています。

OpenIDリクエスト:

PAPE拡張機能:

preferred_auth_policies

UI拡張

言語プリファレンス

アイコン:

ForceAuthnおよびIsPassive

WLSTコマンド

OAM/SPには、次を設定するためのWLST configureIdPAuthnRequest()コマンドが用意されています。

ブールとしてのForceAuthn:

ブールとしてのIsPassive:

テスト

このテストでは、OAM/SPはOOTB構成とともにリモートSAML 2.0 IdPパートナと統合されています。この設定に基づいて、OAM/SPがフェデレーションSSOフローを開始すると、次のSAML 2.0 AuthnRequestが生成されます。

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

そのIdPパートナのOAM/SPを構成し、ユーザーがすでに認証されている場合でも、SPがユーザーを再チャレンジするためにIdPが必要になるようにします。

  1. 次のコマンドを実行して、WLST環境を入力します。$IAM_ORACLE_HOME/common/bin/WLST.sh
  2. WLS管理サーバー(connect())に接続します。
  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します
  4. configureIdPAuthnRequest()コマンドconfigureIdPAuthnRequest(partner="AcmeIdP", forceAuthn="true")を実行します
  5. WLST環境を終了します: exit()

変更後、次のSAML 2.0 AuthnRequestが生成されます。

<samlp:AuthnRequest ForceAuthn="true" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP- POST" ID="id- E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4" Version="2.0" IssueInstant="2014-04-01T21:39:14Z" Destination="https://acme.com/saml20/sso">
   <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

ForceAuthn/IsPassive設定を表示または削除するには、次の操作を実行します:

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。
  2. WLS管理サーバー(connect())に接続します。
  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します
  4. configureIdPAuthnRequest()コマンドを実行して、パートナconfigureIdPAuthnRequest(partner="AcmeIdP", displayOnly="true")のForceAuthn/IsPassive設定を表示します
  5. パートナconfigureIdPAuthnRequest(partner="AcmeIdP", delete="true")からForceAuthn/IsPassive設定を削除するには
  6. WLST環境を終了します: exit()

要求されたFed認証方法

「OAM/SPのフェデレーション認証メソッド・リクエスト」の記事では、SSOリクエスト・メッセージに要素を設定して、フェデレーションSSO操作の開始時にIdPから特定のフェデレーション認証メソッドをリクエストするようにOAM/SPを構成する方法について説明しました。

WLSTコマンド

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

これは、SAML 2.0およびOpenID 2.0プロトコルに適用されます。詳細は、「OAM/SPのFed Authentication Method Requests」の記事を参照してください。

テスト

このテストでは、OAM/SPはOOTB構成とともにリモートSAML 2.0 IdPパートナと統合されています。この設定に基づいて、OAM/SPがフェデレーションSSOフローを開始すると、次のSAML 2.0 AuthnRequestが生成されます。

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

SPがurn:oasis:names:tc:SAML:2.0:ac:classes:X509フェデレーション認証方法にマップされたメカニズムを使用してユーザーを認証するようにIdPをリクエストするように、そのIdPパートナのOAM/SPを構成します。

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。
  2. WLS管理サーバー(connect())に接続します。
  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します
  4. setIdPPartnerRequestAuthnMethod()コマンドsetIdPPartnerRequestAuthnMethod("AcmeIdP", "urn:oasis:names:tc:SAML:2.0:ac:classes:X509")を実行します
  5. WLST環境を終了します: exit()

変更後、次のSAML 2.0 AuthnRequestが生成されます。

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com /oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/>
   <samlp:RequestedAuthnContext
Comparison="minimum">
      <saml:AuthnContextClassRef xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
         urn:oasis:names:tc:SAML:2.0:ac:classes:X509
      </saml:AuthnContextClassRef>
   </samlp:RequestedAuthnContext> </samlp:AuthnRequest>

名前IDフォーマット

SAML 2.0プロトコルを使用すると、SPは、IdPによってアサーションが発行されたときに使用される特定のNameID形式をIdPからリクエストできます。

ノート: SAML 1.1およびOpenID 2.0では、このようなメカニズムは提供されません

OAMの構成

管理者は、次の方法で、SAML 2.0 AuthnRequestでNameID形式をリクエストするようにOAM/SPを構成できます。

OAM管理コンソール

OAM管理コンソールを介してリクエストされたNameID形式を構成するには、次のステップを実行します。

  1. OAM管理コンソールに移動します: http(s)://OAM-admin-host:OAM-adminport/oamconsole
  2. 「アイデンティティ・フェデレーション」「サービス・プロバイダ管理」に移動します
  3. 変更するIdPパートナを開きます
  4. 「認証リクエスト」のNameID「フォーマット」ドロップダウン・ボックスに、次のいずれかの値が表示されます。
    • None: NameID形式がデフォルトに設定されています
    • Email Address: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:emailAddressに設定されます
    • X.509 Subject: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectNameに設定されます
    • Windows Name Qualifier: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedNameに設定されます
    • Kerberos: NameID形式はurn:oasis:names:tc:SAML:2.0:nameidformat:kerberosに設定されます
    • Transient: NameID形式はurn:oasis:names:tc:SAML:2.0:nameidformat:transientに設定されます
    • Unspecified: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:unspecifiedに設定されます
    • Custom: この場合、管理者がカスタムNameID形式を使用できるフィールドが表示されます。NameID形式は、指定された形式に設定されます
    • この例のPersistent: The NameID format will be set urn:oasis:names:tc:SAML: 2.0: nameidformat:persistent we selected Email Address`
  5. 「保存」をクリックします

図OAM_Administration_Console.jpgの説明

図OAM管理の説明 Console.jpg

WLSTコマンド

OAM WLSTのsetIdPPartnerNameIDFormat()コマンドを使用して、リクエストされたNameID形式を構成するには、次のステップを実行します。

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。
  2. WLS管理サーバー(connect())に接続します。
  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します
  4. setIdPPartnerNameIDFormat()コマンドsetIdPPartnerNameIDFormat("PARTNER", "FORMAT", customFormat="CUSTOM")を実行します
    • PARTNERをIdPパートナ名に置き換えます
    • FORMATを次のいずれかに置き換えます。
    • orafed-none: NameID形式がデフォルトに設定されます
    • orafed-emailaddress: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:emailAddressに設定されます
    • orafed-x509: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectNameに設定されます
    • orafed-windowsnamequalifier: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedNameに設定されます
    • orafed-kerberos: NameID形式はurn:oasis:names:tc:SAML:2.0:nameidformat:Kerberosに設定されます
    • orafed-transient: NameID形式はurn:oasis:names:tc:SAML:2.0:nameidformat:transientに設定されます
    • orafed-unspecified: NameID形式はurn:oasis:names:tc:SAML:1.1:nameidformat:unspecifiedに設定されます
    • orafed-custom: この場合、管理者が使用するカスタムNameID形式を指定できるフィールドが表示されます。NameIDフォーマットは、指定されたフォーマットに設定されます
      • orafed-persistent: NameID形式はurn:oasis:names:tc:SAML:2.0:nameidformat:persistentに設定されます
      • FORMATがorafed-customに設定されている場合、customFormatを設定する必要があります。例: setIdPPartnerNameIDFormat("AcmeIdP", "orafed-emailaddress")
  5. WLST環境を終了します: exit()

テスト

このテストでは、OAM/SPはOOTB構成とともにリモートSAML 2.0 IdPパートナと統合されています。この設定に基づいて、OAM/SPがフェデレーションSSOフローを開始すると、次のSAML 2.0 AuthnRequestが生成されます。

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
<samlp:NameIDPolicy AllowCreate="true"/>
</samlp:AuthnRequest>

OAM管理コンソールまたはOAM WLSTのsetIdPPartnerNameIDFormat()コマンド(電子メール・アドレスがNameIDフォーマットとしてリクエストされる)を使用して変更を実行すると、次のSAML 2.0 AuthnRequestが生成されます。

<samlp:AuthnRequest ForceAuthn="false"
IsPassive="false"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
<samlp:NameIDPolicy
Format="urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress" AllowCreate="true"/> </samlp:AuthnRequest>

プロトコル・バインディング

SAML 2.0仕様では、IdPがSAML 2.0アサーションを使用してユーザーをSPにリダイレクトするために使用する必要があるバインディングをSPが要求する方法を定義します。ProtocolBinding属性は、IdPが使用する必要があるバインディングを示します。次のように設定されます。

また、SAML 2.0仕様では、SPがメッセージを送信できるため、SPからSAML 2.0 AuthnRequestメッセージを含むIdPにユーザーをリダイレクトする様々な方法も定義されています。

OAMの構成

OAMは次のように構成できます。

ノート: SAML 2.0 AuthnRequestメッセージを送信するためのバインディングは、SAML 2.0 LogoutRequestおよびLogoutResponseメッセージの送信にも使用されます。

OAM管理コンソール

OAM管理コンソールを介してSSOレスポンス/アサーション・バインディングを構成するには、次のステップを実行します。

  1. OAM管理コンソール(http(s)://OAM-admin-host:OAM-adminport/oamconsole)に移動します。
  2. 「アイデンティティ・フェデレーション」、「サービス・プロバイダ管理」に移動します。
  3. 変更するIdPパートナを開きます。
  4. 「HTTP POST SSOレスポンス・バインディング」ボックスを選択して、IdPにHTTP POST経由でSSOレスポンスを返すようにリクエストします。それ以外の場合は、アーティファクトをリクエストするには選択を解除します。
  5. 「保存」をクリックします。

図SSO_Response_Assertion_Configuration.jpgの説明

WLSTコマンド

OAM WLSTのconfigureSAMLBinding()コマンドでSSOレスポンス/アサーション・バインディングおよびAuthnRequestバインディングを構成するには、次のステップを実行します。

  1. $IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。
  2. WLS管理サーバー(connect())に接続します。
  3. ドメイン・ランタイム・ブランチdomainRuntime()に移動します
  4. configureSAMLBinding()コマンドconfigureSAMLBinding("PARTNER", "PARTNER_TYPE", binding, ssoResponseBinding="httppost")を実行します
  5. PARTNERをパートナ名に置き換えます
  6. PARTNER_TYPEをパートナ・タイプ(idpまたはsp)に置き換えます
  7. バインディングを、AuthnRequestおよびLogoutRequest/LogoutResponseメッセージの送信に使用されるバインディングに置き換えます(ほとんどの場合はhttpredirectにする必要があります。デフォルト)。
  8. SSOアサーションの送信方法を示すには、オプションでssoResponseBindingを指定します
  9. WLST環境を終了します: exit()

テスト

このテストでは、OAM/SPはリモートSAML 2.0 IdPパートナと統合され、SSOアサーションを送信するためにIdPからHTTP- POSTをリクエストするOOTB構成を備えています。この設定に基づいて、OAM/SPがフェデレーションSSOフローを開始すると、次のSAML 2.0 AuthnRequestが生成されます。

<samlp:AuthnRequest
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-
POST" ID="id-
E4BOT7lwbYK56lO57dBaqGUFq01WJSjAHiSR60Q4"
Version="2.0" IssueInstant="2014-04-01T21:39:14Z"
Destination="https://acme.com/saml20/sso">
   <saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">https://sp.com
/oam/fed</saml:Issuer>
   <samlp:NameIDPolicy AllowCreate="true"/> </samlp:AuthnRequest>

その他の学習リソース

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

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