OAM 和 SP 中的 AuthnRequest 設定值

本文列出各種 OAM/SP 設定值,這些設定會影響「聯合 SSO」流程中如何在 OAM 中建立 AuthnRequest 訊息。SP 會使用 AuthnRequest 訊息來啟動「聯合 SSO」作業,並指示 IdP 如何執行作業:

協定

當 SP 觸發 SSO 作業時,SAML 2.0、SAML 1.1 和 OpenID 2.0 協定會定義不同的訊息元素和規則,讓管理員能夠影響不同方式的聯合 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 定義數個可供 SP/RP 使用的擴充功能,以影響聯合 SSO 作業的執行方式:

OpenID 要求:

PAPE 副檔名:

preferred_auth_policies

UI 擴充

語言偏好設定

圖示:

ForceAuthn 和 IsPassive

WLST 命令

OAM/SP 提供要設定的 WLST configureIdPAuthnRequest() 命令:

ForceAuthn 作為布林值:

IsPassive 作為布林值:

測試

在此測試中,OAM/SP 與遠端 SAML 2.0 IdP 合作夥伴整合 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>

讓我們為該 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. 執行下列動作以輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh
  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()

要求的聯邦認證方法

在「OAM / SP 中的 Fed Authentication Method Requests」文章中,我們討論在啟動「聯合 SSO」作業時,如何將 OAM/SP 設定為從 IdP 要求特定的「聯合認證方法」,方法是在 SSO 要求訊息中設定元素。

WLST 命令

可使用的 OAM WLST 命令包括:

這適用於 SAML 2.0 和 OpenID 2.0 通訊協定。如需詳細資訊,請參閱 "Fed Authentication Method Requests in OAM / SP" 文章。

測試

在此測試中,OAM/SP 與遠端 SAML 2.0 IdP 合作夥伴整合 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>

讓我們為該 IdP 合作夥伴設定 OAM/SP,讓 SP 要求 IdP 使用對應至 urn:oasis:names:tc:SAML:2.0:ac:classes:X509 同盟認證方法的機制來認證使用者:

  1. 執行下列動作以輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh
  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>

NameID 格式

SAML 2.0 協定允許 SP 從 IdP 要求特定 NameID 格式,供 IdP 發出「宣告」時使用。

注意:SAML 1.1 和 OpenID 2.0 未提供此機制

設定 OAM

管理員可以透過下列方式設定 OAM/SP 以要求 SAML 2.0 AuthnRequest 中的 NameID 格式:

OAM 管理主控台

若要透過「OAM 管理主控台」設定要求的 NameID 格式,請執行下列步驟:

  1. 移至「OAM 管理主控台」:http(s)://oam-admin-host:oam-adminport/oamconsole
  2. 瀏覽至 Identity FederationService Provider Administration
  3. 開啟您要修改的 IdP 合作夥伴
  4. 在「認證要求 NameID 格式」下拉式方塊中,使用下列其中一個值:
    • NoneNameID 格式設為預設值
    • Email AddressNameID 格式將設為 urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress
    • X.509 SubjectNameID 格式將設為 urn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName
    • Windows Name QualifierNameID 格式將設為 urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedName
    • KerberosNameID 格式將設為 urn:oasis:names:tc:SAML:2.0:nameidformat:kerberos
    • TransientNameID 格式將設為 urn:oasis:names:tc:SAML:2.0:nameidformat:transient
    • UnspecifiedNameID 格式將設為 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. 按一下儲存 (Save)

OAM_Administration_Console.jpg 圖解說明

OAM 管理 Console.jpg 圖解描述

WLST 命令

若要透過 OAM WLST setIdPPartnerNameIDFormat() 命令設定要求的 NameID 格式,請執行下列步驟:

  1. 執行下列動作以輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. 執行 setIdPPartnerNameIDFormat() 命令:setIdPPartnerNameIDFormat("PARTNER", "FORMAT", customFormat="CUSTOM")
    • 以 IdP 夥伴名稱取代 PARTNER
    • 以下列之一取代 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 與遠端 SAML 2.0 IdP 合作夥伴整合 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>

透過「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 規格定義 SP 要求 IdP 使用哪些連結將使用者重新導向至具有 SAML 2.0 宣告之 SP 的方法:ProtocolBinding 屬性指示 IdP 應使用的連結。它設為:

SAML 2.0 規格也定義不同的方法,將使用者從 SP 重新導向至含 SAML 2.0 AuthnRequest 訊息的 IdP,因為 SP 可以傳送訊息:

設定 OAM

OAM 可以設定:

注意:傳送 SAML 2.0 AuthnRequest 訊息的連結也會用來傳送 SAML 2.0 LogoutRequestLogoutResponse 訊息。

OAM 管理主控台

若要透過「OAM 管理主控台」設定 SSO 回應 / 宣告連結,請執行下列步驟:

  1. 前往「OAM 管理主控台」:http(s)://oam-admin-host:oam-adminport/oamconsole
  2. 瀏覽至 Identity Federation,服務提供者管理
  3. 開啟您要修改的 IdP 合作夥伴。
  4. 勾選「HTTP POST SSO 回應連結」方塊可要求 IdP 透過 HTTP POST 傳回 SSO 回應,否則請取消勾選以要求使用者自建物件。
  5. 按一下儲存

SSO_Response_Assertion_Configuration.jpg 圖解說明

WLST 命令

若要透過 OAM WLST configureSAMLBinding() 命令設定 SSO 回應 / 宣告連結以及 AuthnRequest 連結,請執行下列步驟:

  1. 執行下列動作以輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh
  2. 連線「WLS 管理」伺服器:connect()
  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()
  4. 執行 configureSAMLBinding() 指令:configureSAMLBinding("PARTNER", "PARTNER_TYPE", binding, ssoResponseBinding="httppost")
  5. 以「夥伴」名稱取代 PARTNER
  6. 以合作夥伴類型 (idp 或 sp) 取代 PARTNER_TYPE
  7. 以用來傳送 AuthnRequest 和 LogoutRequest/LogoutResponse 訊息的連結取代連結 (大部分情況下應為 httpredirect;預設值)
  8. 指定選擇性 ssoResponseBinding 以指示應如何傳回「SSO 宣告」
  9. 結束 WLST 環境:exit()

測試

在此測試中,OAM/SP 與遠端 SAML 2.0 IdP 合作夥伴整合,而 OOTB 組態則要求從 IdP 傳送「SSO 宣告」的 HTTP-POST。根據此設定,當 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