AuthnRequest OAMおよびSPの設定
この記事では、フェデレーションSSOフローでのOAMでのAuthnRequestメッセージの作成方法に影響する様々なOAM/SP設定を示します。AuthnRequestメッセージは、フェデレーションSSO操作を開始するためにSPによって使用され、操作の実行方法をIdPに示します。
- IdPでのユーザーのチャレンジ方法
 - このユーザーのIdPにセッションがすでに存在する場合でも、IdPでユーザーにチャレンジするかどうか
 - SAMLアサーションでリクエストする
NameID形式 - アサーションを送信するためにIdPからリクエストするバインディング(アーティファクトまたはHTTP- POST)
 - AuthnRequestメッセージを送信するためにOAM/SPが使用するプロファイル
 
プロトコル
SAML 2.0、SAML 1.1およびOpenID 2.0プロトコルは、SPがSSO操作をトリガーしたときに、管理者が様々なマナーでフェデレーションSSOフローに影響を与えることができる様々なメッセージ要素およびルールを定義します。
- SAML 2.0では、AuthnRequestメッセージによる広範なカスタマイズが可能です。
 - SAML 1.1では、仕様で認証リクエスト・メッセージが定義されていないため、カスタマイズは許可されません
 - OpenID 2.0では、主にPAPEやUIなどのOpenID 2.0拡張を介して、一部のカスタマイズが可能です。
 
SAML 2.0
OAM/SPでは、次の要素についてSAML 2.0 AuthnRequestメッセージをカスタマイズできます。
ForceAuthn:
- IdPがユーザーに再認証を強制するかどうかを示すブール(まだ有効なセッションがある場合でも)
 - デフォルトでfalseに設定
 
IsPassive
- フェデレーションSSO操作の一部としてIdPがユーザーと対話できるかどうかを示すブール。
 - falseの場合、IdPはユーザーを識別できないため、フェデレーションSSO操作によってNoPassiveエラー・コードで障害が発生する可能性があります
 - デフォルトでfalseに設定
 
RequestedAuthnContext
- IdPでのユーザーのチャレンジ方法を示す要素
 - SPがIdPに認識されないフェデレーション認証メソッドまたはIdPが構成されていないフェデレーション認証メソッドをリクエストした場合、フェデレーションSSOフローは
NoAuthnContextエラー・コードで失敗します - デフォルトでは欠落しています
 
NameIDPolicy
- IdPがSAMLアサーションに含める
NameIDフォーマットを示す要素 - If the SP requests a 
NameIDformat unknown to the IdP or for which the IdP is not configured, then the Federation SSO flow results in a failure with theInvalidNameIDPolicyerror code - 欠落している場合、IdPは、通常、IdPでこのSPパートナ用に構成されたデフォルトのNameID形式を使用します
 - デフォルトでは欠落しています
 
ProtocolBinding
- SAMLアサーションを使用してユーザーをSPにリダイレクトするためにIdPで使用されるSAMLバインディングを示す要素
 - アーティファクトまたはHTTP- POSTに設定
 - デフォルトではHTTP- POSTに設定されます
 
OAM/SPでは、管理者は次の目的でサーバーを構成することもできます。
- SAML 2.0 AuthnRequestメッセージでユーザーをIdPにリダイレクトするために、OAM/SPが使用するバインディングを設定します。
 - リダイレクトまたはHTTP- POST
 - デフォルトで「リダイレクト」に設定
 - SAML 2.0ログアウト・メッセージによるログアウト中にユーザーをIdPにリダイレクトするために、OAM/SPが使用するバインディングを設定します。
 - リダイレクトまたはHTTP- POST
 - デフォルトで「リダイレクト」に設定
 
SAML 1.1
SAML 1.1仕様では、フェデレーションSSO操作の開始時にSPがIdPに送信するメッセージは定義されていません。そのため、フェデレーションSSOフローの開始に影響を与える方法についてOAM/SPを構成する機能はありません。
OpenID 2.0
OpenID 2.0では、フェデレーションSSO操作の実行方法に影響を与えるためにSP/RPで使用できるいくつかの拡張機能が定義されています。
OpenIDリクエスト:
mode: IdP/OPがユーザーと視覚的に対話できるかどうかを示す文字列checkid_immediateでは、IdP/OPはユーザーと対話できませんcheckid_setupはユーザー・インタラクションを許可します- デフォルトで
checkid_setupに設定 
PAPE拡張機能:
max_auth_age: ユーザーがIdPで認証されてからの最大時間(秒)を示す整数。MaxAuthnAgeが、ユーザーが最後にIdPで認証されてからの時間が大きい場合は、ユーザーを再調整する必要があります。- 管理者が
ForceAuthnをtrueに構成した場合、OAM/SPはこの属性を0に設定します。それ以外の場合、この属性は設定されません - デフォルトなし
 
preferred_auth_policies
- フェデレーション認証方式を含む
 - IdPでのユーザーのチャレンジ方法を示す要素
 - デフォルトでは欠落しています
 - OpenID検出が使用されている場合、IdP/OPがXRDSでPAPEをサポートしている場合にのみ、OpenIDリクエストで指定されます。
 
UI拡張
- ポップアップモード
 - フェデレーションSSOでポップアップ・モードが有効であることを示すブール値
 - デフォルトでは欠落しています
 
言語プリファレンス
- ブラウザの言語プリファレンスに基づいて設定された優先言語を含む文字列。
 - デフォルトでは欠落しています
 
アイコン:
- アイコン機能が有効になっているかどうかを示すブール。その場合、IdP/OPはSP/RP XRDSを参照してアイコンの取得方法を決定します。
 - デフォルトでは欠落しています
 - OpenID検出が使用されている場合、IdP/OPがXRDSのUI拡張をサポートしている場合にのみ、OpenIDリクエストで指定されます。
 
ForceAuthnおよびIsPassive
WLSTコマンド
OAM/SPには、次を設定するためのWLST configureIdPAuthnRequest()コマンドが用意されています。
ブールとしてのForceAuthn:
- SAML 2.0 AuthnRequestでは、
ForceAuthnフィールドがtrueまたはfalseに設定されています - OpenID 2.0リクエストで、構成の
ForceAuthnがtrueに設定されている場合、PAPEリクエストのmax_auth_ageフィールドは0に設定されます。それ以外の場合、max_auth_ageは設定されません 
ブールとしてのIsPassive:
- SAML 2.0 AuthnRequestでは、
IsPassiveフィールドがtrueまたはfalseに設定されています - OpenID 2.0リクエストで、構成の
IsPassiveがtrueに設定されている場合、OpenIDリクエストのmodeフィールドはcheckid_immediateに設定され、それ以外の場合はcheckid_setupに設定されます 
テスト
このテストでは、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が必要になるようにします。
- 次のコマンドを実行して、WLST環境を入力します。
$IAM_ORACLE_HOME/common/bin/WLST.sh - WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します - configureIdPAuthnRequest()コマンド
configureIdPAuthnRequest(partner="AcmeIdP", forceAuthn="true")を実行します - 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設定を表示または削除するには、次の操作を実行します: 
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します configureIdPAuthnRequest()コマンドを実行して、パートナconfigureIdPAuthnRequest(partner="AcmeIdP", displayOnly="true")のForceAuthn/IsPassive設定を表示します- パートナ
configureIdPAuthnRequest(partner="AcmeIdP", delete="true")からForceAuthn/IsPassive設定を削除するには - WLST環境を終了します: 
exit() 
要求されたFed認証方法
「OAM/SPのフェデレーション認証メソッド・リクエスト」の記事では、SSOリクエスト・メッセージに要素を設定して、フェデレーションSSO操作の開始時にIdPから特定のフェデレーション認証メソッドをリクエストするようにOAM/SPを構成する方法について説明しました。
WLSTコマンド
使用できるOAM WLSTコマンドは次のとおりです。
- 
    
setIdPPartnerProfileRequestAuthnMethod(): 特定のIdPパートナ・プロファイルでリクエストされたフェデレーション認証メソッドを構成し、次のパラメータを受け入れます。partnerProfile: IdPパートナ・プロファイルの名前authnMethod: リクエストするフェデレーション認証メソッドdisplayOnly: メソッドを設定するかわりに、現在リクエストされているフェデレーション認証メソッドを表示するかどうかを示すオプション・パラメータdelete: メソッドが現在リクエストされているフェデレーション認証メソッドを設定するかわりに削除する必要があるかどうかを示すオプション・パラメータ
 - 
    
setIdPPartnerRequestAuthnMethod()。指定されたIdPパートナ・エントリを、リクエストされたフェデレーション認証メソッドで構成し、次のパラメータを受け入れます。 - 
    
partner: IdPパートナの名前 - 
    
authnMethod: リクエストするフェデレーション認証メソッド - 
    
displayOnly: メソッドを設定するかわりに、現在リクエストされているフェデレーション認証メソッドを表示するかどうかを示すオプション・パラメータ - 
    
delete: メソッドが現在リクエストされているフェデレーション認証メソッドを設定するかわりに削除する必要があるかどうかを示すオプション・パラメータ 
これは、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を構成します。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します setIdPPartnerRequestAuthnMethod()コマンドsetIdPPartnerRequestAuthnMethod("AcmeIdP", "urn:oasis:names:tc:SAML:2.0:ac:classes:X509")を実行します- 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管理コンソール(IdPパートナ・エントリ)
 - IdPパートナ構成を変更するOAM WLSTの
setIdPPartnerNameIDFormat()コマンド 
OAM管理コンソール
OAM管理コンソールを介してリクエストされたNameID形式を構成するには、次のステップを実行します。
- OAM管理コンソールに移動します: 
http(s)://OAM-admin-host:OAM-adminport/oamconsole - 「アイデンティティ・フェデレーション」→「サービス・プロバイダ管理」に移動します
 - 変更するIdPパートナを開きます
 - 「認証リクエスト」の
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
: TheNameIDformat will be seturn:oasis:names:tc:SAML: 2.0: nameidformat:persistentwe selectedEmail Address` 
 - 「保存」をクリックします
 

図OAM_Administration_Console.jpgの説明
WLSTコマンド
OAM WLSTのsetIdPPartnerNameIDFormat()コマンドを使用して、リクエストされたNameID形式を構成するには、次のステップを実行します。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します - 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") 
 - 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が使用する必要があるバインディングを示します。次のように設定されます。
- HTTP- POSTの場合は
urn:oasis:names:tc:SAML:2.0:bindings:HTTPPOST - またはアーティファクトの場合は
urn:oasis:names:tc:SAML:2.0:bindings:Artifact 
また、SAML 2.0仕様では、SPがメッセージを送信できるため、SPからSAML 2.0 AuthnRequestメッセージを含むIdPにユーザーをリダイレクトする様々な方法も定義されています。
- HTTPリダイレクトを介して
 - またはHTTP POST
 - (アーティファクトなど他のバインディングは理論的に使用できますが、実際には使用されません)
 
OAMの構成
OAMは次のように構成できます。
- OAM管理コンソールまたはOAM WLSTの
configureSAMLBinding()コマンドを使用して、使用するアサーション・レスポンス・バインディングを設定します。 - OAM WLSTの
configureSAMLBinding()コマンドを使用して、SAMLのAuthnRequestメッセージの送信方法を指定します。 
ノート: SAML 2.0 AuthnRequestメッセージを送信するためのバインディングは、SAML 2.0
LogoutRequestおよびLogoutResponseメッセージの送信にも使用されます。
OAM管理コンソール
OAM管理コンソールを介してSSOレスポンス/アサーション・バインディングを構成するには、次のステップを実行します。
- OAM管理コンソール(
http(s)://OAM-admin-host:OAM-adminport/oamconsole)に移動します。 - 「アイデンティティ・フェデレーション」、「サービス・プロバイダ管理」に移動します。
 - 変更するIdPパートナを開きます。
 - 「HTTP POST SSOレスポンス・バインディング」ボックスを選択して、IdPにHTTP POST経由でSSOレスポンスを返すようにリクエストします。それ以外の場合は、アーティファクトをリクエストするには選択を解除します。
 - 「保存」をクリックします。
 

図SSO_Response_Assertion_Configuration.jpgの説明
WLSTコマンド
OAM WLSTのconfigureSAMLBinding()コマンドでSSOレスポンス/アサーション・バインディングおよびAuthnRequestバインディングを構成するには、次のステップを実行します。
$IAM_ORACLE_HOME/common/bin/WLST.shを実行して、WLST環境を入力します。- WLS管理サーバー(
connect())に接続します。 - ドメイン・ランタイム・ブランチ
domainRuntime()に移動します configureSAMLBinding()コマンドconfigureSAMLBinding("PARTNER", "PARTNER_TYPE", binding, ssoResponseBinding="httppost")を実行します- PARTNERをパートナ名に置き換えます
 - PARTNER_TYPEをパートナ・タイプ(idpまたはsp)に置き換えます
 - バインディングを、AuthnRequestおよび
LogoutRequest/LogoutResponseメッセージの送信に使用されるバインディングに置き換えます(ほとんどの場合はhttpredirectにする必要があります。デフォルト)。 httppost(HTTP- POSTバインディングの場合)httpredirect(HTTPリダイレクト・バインディングの場合)- SSOアサーションの送信方法を示すには、オプションで
ssoResponseBindingを指定します httppost(HTTP- POSTバインディングの場合)- アーティファクト・バインディングの
artifactfor例:configureSAMLBinding("AcmeIdP", "idp", "httpredirect", ssoResponseBinding="httppost") - 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を参照してください。
AuthnRequest Settings in OAM and SP
F59885-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.