OAM 和 SP 中的 AuthnRequest 設定值
本文列出各種 OAM/SP 設定值,這些設定會影響「聯合 SSO」流程中如何在 OAM 中建立 AuthnRequest 訊息。SP 會使用 AuthnRequest 訊息來啟動「聯合 SSO」作業,並指示 IdP 如何執行作業:
- 使用者應如何挑戰 IdP
- 使用者是否應在 IdP 查問,即使此使用者的 IdP 已經有階段作業存在
- 「SAML 宣告」中應要求哪些
NameID格式 - 應該從 IdP 要求哪些連結 (使用者自建物件或 HTTP-POST) 以傳送宣告
- OAM/SP 應使用哪一個設定檔來傳送 AuthnRequest 訊息
協定
當 SP 觸發 SSO 作業時,SAML 2.0、SAML 1.1 和 OpenID 2.0 協定會定義不同的訊息元素和規則,讓管理員能夠影響不同方式的聯合 SSO 流程:
- SAML 2.0 允許透過 AuthnRequest 訊息進行廣泛的自訂
- SAML 1.1 不允許任何自訂,因為規格未定義認證要求訊息
- OpenID 2.0 允許部分自訂,主要透過 OpenID 2.0 擴充功能 (例如 PAPE 或 UI)
SAML 2.0
OAM/SP 允許自訂下列元素的 SAML 2.0 AuthnRequest 訊息:
ForceAuthn:
- 指示 IdP 是否應強制使用者進行重新認證的布林值,即使使用者仍有有效的階段作業
- 預設設定為 false
IsPassive
- 指示是否允許 IdP 與使用者進行聯合 SSO 作業的布林值。
- 如果為 false,聯合 SSO 作業可能會導致 NoPassive 錯誤代碼失敗,因為 IdP 無法識別使用者
- 預設設定為 false
RequestedAuthnContext
- 指示使用者應如何接受 IdP 挑戰的元素
- 如果 SP 要求 IdP 未知或未設定 IdP 的「同盟認證方法」,則「同盟 SSO」流程會導致
NoAuthnContext錯誤代碼失敗 - 預設情況下遺漏
NameIDPolicy
- 表示 SAML 宣告中 IdP 應包含哪些
NameID格式的元素 - 如果 SP 要求 IdP 未知或未設定 IdP 的
NameID格式,則聯合 SSO 流程會導致InvalidNameIDPolicy錯誤代碼失敗 - 如果遺漏,IdP 一般會使用在 IdP 為此 SP 夥伴設定的預設 NameID 格式
- 預設情況下遺漏
ProtocolBinding
- 指示 IdP 應使用哪個 SAML 連結將使用者重導至具有 SAML 宣告的 SP 的元素
- 設為使用者自建物件或 HTTP-POST
- 預設設為 HTTP-POST
OAM/SP 也可讓管理員將伺服器設定為:
- 設定 OAM/SP 應使用哪一個連結,以使用 SAML 2.0 AuthnRequest 訊息將使用者重新導向至 IdP:
- 重導或 HTTP-POST
- 預設設為「重新導向」
- 設定使用 SAML 2.0 登出訊息登出時,OAM/SP 應使用哪一個連結將使用者重新導向至 IdP:
- 重導或 HTTP-POST
- 預設設為「重新導向」
SAML 1.1
SAML 1.1 規格未定義在聯合 SSO 作業啟動時,SP 傳送至 IdP 的訊息。因此,無法針對如何影響聯合 SSO 流程的開始,設定 OAM/SP。
OpenID 2.0
OpenID 2.0 定義數個可供 SP/RP 使用的擴充功能,以影響聯合 SSO 作業的執行方式:
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 要求的模式欄位會設為checkid_immediate,否則設為checkid_setup
測試
在此測試中,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 重新挑戰使用者,即使使用者已經通過認證:
- 執行以下步驟來輸入 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 設定值,請執行下列作業:
- 執行下列動作以輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh - 連線「WLS 管理」伺服器:
connect() - 瀏覽至「網域程式實際執行」分支:
domainRuntime() - 執行
configureIdPAuthnRequest()命令,在夥伴configureIdPAuthnRequest(partner="AcmeIdP", displayOnly="true")上顯示 ForceAuthn/IsPassive 設定值 - 刪除夥伴
configureIdPAuthnRequest(partner="AcmeIdP", delete="true")的 ForceAuthn/IsPassive 設定值 - 結束 WLST 環境:
exit()
要求的聯邦認證方法
在「OAM / SP 中的 Fed Authentication Method Requests」文章中,我們討論在啟動「聯合 SSO」作業時,如何將 OAM/SP 設定為從 IdP 要求特定的「聯合認證方法」,方法是在 SSO 要求訊息中設定元素。
WLST 命令
可使用的 OAM WLST 命令包括:
-
setIdPPartnerProfileRequestAuthnMethod()可在特定的 IdP 夥伴設定檔中設定要求的聯合認證方法,並接受下列參數:partnerProfile:IdP 夥伴設定檔的名稱authnMethod:要要求的「聯合認證方法」displayOnly:選擇性參數,指示方法是否應顯示目前要求的「聯合認證方法」,而不是進行設定delete:選擇性參數,指示方法是否應刪除目前要求的「聯合認證方法」,而不是進行設定
-
setIdPPartnerRequestAuthnMethod()可使用要求的「聯合認證方法」設定指定的 IdP 合作夥伴項目,並接受下列參數: -
partner:IdP 夥伴的名稱 -
authnMethod:要要求的「聯合認證方法」 -
displayOnly:選擇性參數,指示方法是否應顯示目前要求的「聯合認證方法」,而不是進行設定 -
delete:選擇性參數,指示方法是否應刪除目前要求的「聯合認證方法」,而不是進行設定
這適用於 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 同盟認證方法的機制來認證使用者:
- 執行下列動作以輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh - 連線「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>
NameID 格式
SAML 2.0 協定允許 SP 從 IdP 要求特定 NameID 格式,供 IdP 發出「宣告」時使用。
注意:SAML 1.1 和 OpenID 2.0 未提供此機制
設定 OAM
管理員可以透過下列方式設定 OAM/SP 以要求 SAML 2.0 AuthnRequest 中的 NameID 格式:
- 「OAM 管理主控台」,位於 IdP 夥伴項目中
- 修改 IdP 夥伴組態的 OAM WLST
setIdPPartnerNameIDFormat()命令
OAM 管理主控台
若要透過「OAM 管理主控台」設定要求的 NameID 格式,請執行下列步驟:
- 移至「OAM 管理主控台」:
http(s)://oam-admin-host:oam-adminport/oamconsole - 瀏覽至 Identity Federation 、 Service Provider Administration
- 開啟您要修改的 IdP 合作夥伴
- 在「認證要求
NameID格式」下拉式方塊中,使用下列其中一個值:None:NameID格式設為預設值Email Address:NameID格式將設為urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddressX.509 Subject:NameID格式將設為urn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectNameWindows Name Qualifier:NameID格式將設為urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedNameKerberos:NameID格式將設為urn:oasis:names:tc:SAML:2.0:nameidformat:kerberosTransient:NameID格式將設為urn:oasis:names:tc:SAML:2.0:nameidformat:transientUnspecified:NameID格式將設為urn:oasis:names:tc:SAML:1.1:nameidformat:unspecifiedCustom:在此情況下,會顯示欄位,讓管理員指出要使用的自訂NameID格式。NameID格式將設為指定的格式- Persistent
: TheNameIDformat will be seturn:oasis:names:tc:SAML:2.0:nameidformat:persistentwe selectedEmail Address` 在此範例中
- 按一下儲存 (Save)

OAM_Administration_Console.jpg 圖解說明
WLST 命令
若要透過 OAM WLST setIdPPartnerNameIDFormat() 命令設定要求的 NameID 格式,請執行下列步驟:
- 執行下列動作以輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh - 連線「WLS 管理」伺服器:
connect() - 瀏覽至「網域程式實際執行」分支:
domainRuntime() - 執行 setIdPPartnerNameIDFormat() 命令:
setIdPPartnerNameIDFormat("PARTNER", "FORMAT", customFormat="CUSTOM")- 以 IdP 夥伴名稱取代 PARTNER
- 以下列之一取代 FORMAT:
orafed-none:將設定 NameID 格式預設值orafed-emailaddress:將設定 NameID 格式urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddressorafed-x509:將設定 NameID 格式urn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectNameorafed-windowsnamequalifier:將設定 NameID 格式urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualifiedNameorafed-kerberos:將設定 NameID 格式urn:oasis:names:tc:SAML:2.0:nameidformat:Kerberosorafed-transient:將設定 NameID 格式urn:oasis:names:tc:SAML:2.0:nameidformat:transientorafed-unspecified:將設定 NameID 格式urn:oasis:names:tc:SAML:1.1:nameidformat:unspecifiedorafed-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 與遠端 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 應使用的連結。它設為:
- HTTP-POST 適用的
urn:oasis:names:tc:SAML:2.0:bindings:HTTPPOST - 或
urn:oasis:names:tc:SAML:2.0:bindings:Artifact代表使用者自建物件
SAML 2.0 規格也定義不同的方法,將使用者從 SP 重新導向至含 SAML 2.0 AuthnRequest 訊息的 IdP,因為 SP 可以傳送訊息:
- 透過 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。 - 瀏覽至 Identity Federation,服務提供者管理。
- 開啟您要修改的 IdP 合作夥伴。
- 勾選「HTTP POST SSO 回應連結」方塊可要求 IdP 透過 HTTP POST 傳回 SSO 回應,否則請取消勾選以要求使用者自建物件。
- 按一下儲存。

SSO_Response_Assertion_Configuration.jpg 圖解說明
WLST 命令
若要透過 OAM WLST configureSAMLBinding() 命令設定 SSO 回應 / 宣告連結以及 AuthnRequest 連結,請執行下列步驟:
- 執行下列動作以輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh - 連線「WLS 管理」伺服器:
connect() - 瀏覽至「網域程式實際執行」分支:
domainRuntime() - 執行
configureSAMLBinding()指令:configureSAMLBinding("PARTNER", "PARTNER_TYPE", binding, ssoResponseBinding="httppost") - 以「夥伴」名稱取代 PARTNER
- 以合作夥伴類型 (idp 或 sp) 取代 PARTNER_TYPE
- 以用來傳送 AuthnRequest 和
LogoutRequest/LogoutResponse訊息的連結取代連結 (大部分情況下應為 httpredirect;預設值) httppost用於 HTTP-POST 連結httpredirect用於 HTTP-Redirect 連結- 指定選擇性
ssoResponseBinding以指示應如何傳回「SSO 宣告」 httppost用於 HTTP-POST 連結- 使用者自建物件連結的
artifactfor範例:configureSAMLBinding("AcmeIdP", "idp", "httpredirect", ssoResponseBinding="httppost") - 結束 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 。
AuthnRequest Settings in OAM and SP
F59885-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.