在 OAM 和 IdP 中建立 SAML 1.1 和 OpenID 2.0 SP 合作夥伴
本文涵蓋如何透過 SAML 1.1 或 OpenID 2.0 通訊協定,在 OAM 作為 IdP 與遠端 SP 合作夥伴之間設定聯合協議:
- 設定遠端 SAML 1.1 SP 合作夥伴
- 設定遠端 OpenID 2.0 SP 合作夥伴
本文也描述如何透過 UI 或使用 OAM WLST 命令執行上述作業。
建立同盟信任
建立聯合夥伴之間的信任是先決條件,才能在聯合伺服器之間執行任何聯合 SSO 作業。
信任建立涉及交換憑證資訊,如果使用的協定依賴 PKI X.509 憑證來保護訊息交換,以及實行聯合協定之服務的位置 /URL。
SAML 1.1
OAM 管理主控台
若要建立新的 SAML 1.1 SP 合作夥伴,請執行下列步驟 (請先確定您擁有 SP 合作夥伴的所有資料,例如憑證、SP ID 及 URL):
-
移至「OAM 管理主控台」:
http(s)://oam-admin-host:oam-adminport/oamconsole -
瀏覽至 Identity Federation,身分識別提供者管理
-
按一下建立服務提供者夥伴按鈕
-
在「建立」畫面中:
- 輸入夥伴名稱
- 選取 SAML 1.1 作為協定
- 輸入 SP 合作夥伴的發照者 / ProviderID。如果「SP 合作夥伴」沒有「發行者」(如果合作夥伴僅是 SP,而非 IdP 和 SP),請輸入「宣告用戶服務 URL」
- 輸入該 SP 夥伴的「宣告用戶服務 URL」:這是使用「SAML 宣告」從 IdP 重新導向使用者的 URL。
- 如果 SP 合作夥伴簽署 SAML 訊息,請上傳簽署憑證檔案:
- PEM 格式 (檔案包含第一行 --BEGIN CERTIFICATE--,然後是 Base64 編碼格式的憑證,最後一行是 --END CERTIFICATE--)
- 或 DER 格式,其中憑證是以二進位編碼儲存
- 輸入
NameID值的設定方式:- 如果選取「使用者 ID 存放區屬性」,這表示
NameID值將設為下拉式清單旁邊欄位中指定的 LDAP 屬性 - 如果選取「表示式」,這表示將根據下拉式清單旁的欄位中指定的表示式來設定
NameID值。
- 如果選取「使用者 ID 存放區屬性」,這表示
- 選取用以在 SAML 宣告填入屬性的「屬性設定檔」。
-
按一下儲存 (Save)

建立合作夥伴後,會顯示編輯合作夥伴畫面,其中包含:
- 在上一個螢幕中設定的設定值可以修改
- 「進階設定」段落隨即顯示:
- SSO 回應連結:如果 SP 未要求任何特定連結,應如何將宣告傳送至 SP
注意:當「SAML 屬性查詢」交換已執行時,屬性查詢使用者對應子區段只與「SAML 屬性授權機構 / 要求」長條有關。此弓不是聯合 SSO 弓的一部分。

WLST
若要使用 OAM WLST 命令建立新的 SAML 1.1 SP 合作夥伴,請執行下列步驟 (請先確定您擁有 SP 合作夥伴的所有資料,例如憑證、SP ID 和 URL):
-
執行以下項目來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh -
連線「WLS 管理」伺服器:
connect() -
瀏覽至「網域程式實際執行」分支:
domainRuntime() -
建立可在 OAM 呼叫
acmeSP的 SAML 1.1 SP 合作夥伴:addSAML11SPFederationPartner("acmeSP", "https://sp.com", "https://sp.com/saml11/sso" -
新的 SP 夥伴預設將設定為:
-
使用電子郵件地址作為
NameID格式 -
以郵件 LDAP 使用者屬性作為
NameID值 -
使用 HTTP-POST 作為預設 SSO 回應連結
-
使用預設服務提供者屬性設定檔 尚未上傳此 SP 合作夥伴的憑證
-
-
結束 WLST 環境:
exit()
透過 WLST 修改同盟設定值
本節列出如何透過 OAM WLST 命令變更通用 SP 合作夥伴設定值:
-
SAML 簽署憑證
-
SP 夥伴的 SP 夥伴屬性設定檔
-
SAML
NameID設定值 -
SAML SSO 要求和回應連結
我們假設您已經在 WLST 環境中並使用下列方式連線:
-
執行以下項目來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh -
連線「WLS 管理」伺服器:
connect() -
瀏覽至「網域程式實際執行」分支:
domainRuntime()
SAML 簽署憑證
有多種 WLST 命令可用來管理簽署和加密憑證:
-
getFederationPartnerSigningCert(),以 Base64 編碼格式列印合作夥伴的簽署憑證:getFederationPartnerSigningCert("acmeSP","sp") -
使用
acmeSP作為先前建立的合作夥伴名稱 -
sp表示夥伴類型setFederationPartnerSigningCert(),可上傳作為參數傳遞至 SP 夥伴組態的簽署憑證檔案:setFederationPartnerSigningCert("acmeSP","sp", "/tmp/cert.file") -
使用
acmeSP作為先前建立的合作夥伴名稱 -
sp表示合作夥伴類型,第三個參數表示包含憑證之檔案的檔案系統位置:- PEM 格式 (檔案包含第一行 --BEGIN CERTIFICATE--,然後是 Base64 編碼格式的憑證,最後一行是 --END CERTIFICATE--)
- 或 DER 格式,其中憑證是以二進位編碼儲存
-
從 SP 夥伴項目移除簽署憑證的
deleteFederationPartnerSigningCert():deleteFederationPartnerSigningCert("acmeSP","sp") -
acmeSP是先前建立的合作夥伴名稱 -
sp表示合作夥伴類型
SP 夥伴屬性設定檔
若要針對特定 SP 合作夥伴設定「SP 合作夥伴屬性設定檔」,請使用下列命令:
-
若要設定「SP 夥伴」使用特定「SP 夥伴屬性設定檔」,請執行:
setSPPartnerAttributeProfile(partnerName, aZrProfileID) -
partnerName是用來建立服務點合作夥伴的名稱 -
attrProfileID是服務點合作夥伴屬性設定檔 ID -
若要列出現有的「SP 夥伴屬性設定檔」,請執行:
listSPPartnerAttributeProfileIDs()
SAML SSO 要求和回應連結
若要設定特定 SP 夥伴的 SAML 連結,請使用下列命令:
-
若要設定 SP 夥伴,請執行:
configureSAMLBinding(partnerName, partnerType, binding, ssoResponseBinding="httppost") -
partnerName是用來建立服務點合作夥伴的名稱 -
partnerType應設為sp,因為合作夥伴為 SP -
連結:這只適用於 SAML 2.0。使用
httppost -
ssoResponseBinding:用來將「SAML 宣告」送回 SP 的連結;用於 HTTP-POST 連結的httppost,或用於「使用者自建物件」連結的使用者自建物件
SAML NameID 設定值
設定 SAML SP 夥伴的 NameID 設定值:
使用以下命令:
-
setSPSAMLPartnerNameID(partnerName, nameIDFormat, nameIDValue="", customFormat="", nameIDValueComputed="false") -
partnerName是用來建立服務點合作夥伴的名稱 -
nameIDFormat:可能的值為urn:oasis:names:tc:SAML:1.1:nameidformat:emailAddress的orafed-emailaddressurn:oasis:names:tc:SAML:1.1:nameidformat:X509SubjectName的orafed-x509urn:oasis:names:tc:SAML:1.1:nameidformat:WindowsDomainQualiQedName的orafed-windowsnamequalifierurn:oasis:names:tc:SAML:1.1:nameidformat:unspecified的orafed-unspecifiedorafed-custom代表將在customFormat參數中指定的自訂NameID格式
-
customFormat包含要使用的格式,如果nameIDFormat設為orafed-custom -
nameIDValueComputed:此設定僅適用於 SAML 2.0。將它設為假。
OpenID 2.0
OAM 管理主控台
若要建立新的 OpenID 2.0 SP/RP 夥伴,請執行下列步驟 (請先確定您擁有 SP 夥伴的所有資料,例如 SP/RP 範圍和 URL):
-
前往 OAM 管理主控台:
http(s)://oam-admin-host:oam-adminport/oamconsole -
瀏覽至 Identity Federation,身分識別提供者管理
-
按一下建立服務提供者夥伴按鈕
-
在「建立」畫面中:
- 輸入夥伴的名稱 選取 OpenID 2.0 作為「協定」輸入 RP/SP 夥伴的範圍。
- 輸入該 RP 合作夥伴的 OpenID 端點 URL:這是用 OpenID 回應從 IdP 重新導向使用者的 URL。
- 選取用來將屬性植入 OpenID 回應的屬性設定檔。
-
按一下儲存。

Create_SrProvider_Screen.jpg 圖解說明
建立合作夥伴後,會顯示編輯合作夥伴畫面,並在建立合作夥伴畫面中顯示相同的資訊。
OpenID 2.0 通訊協定主要依賴 OP 與 RP 在 OpenID 2.0 SSO 交換期間共用的使用者屬性。IdP 透過「SP 屬性設定檔」達到此目的,表示哪些屬性必須新增至 SSO 回應,以及如何設定這些屬性。
WLST
若要使用 OAM WLST 命令建立新的 OpenID 2.0 RP 合作夥伴,請執行下列步驟 (請先確定您擁有 SP 合作夥伴的所有資料,例如 SP/RP 範圍和 URL):
-
執行以下項目來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh -
連線「WLS 管理」伺服器:
connect() -
瀏覽至「網域程式實際執行」分支:
domainRuntime() -
建立將在 OAM 中稱為 acmeRP 的 OpenID 2.0 RP 合作夥伴:
addOpenID20SPFederationPartner("acmeRP", "https://sp.com", "https://sp.com/sso/openid20" -
依預設,新 SP 合作夥伴已設定為使用預設服務提供者屬性設定檔
-
結束 WLST 環境:
exit()
透過 WLST 修改同盟設定值
本節列出如何透過 OAM WLST 命令變更通用 SP 合作夥伴設定值:
- SP 夥伴的 SP 夥伴屬性設定檔
我們會假設您已經在 WLST 環境中並使用下列方式連線:
-
執行以下項目來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh -
連線「WLS 管理」伺服器:
connect() -
瀏覽至「網域程式實際執行」分支:
domainRuntime()
SP 夥伴屬性設定檔
若要針對特定 SP 合作夥伴設定「SP 合作夥伴屬性設定檔」,請使用下列命令:
若要將「SP 夥伴」設定為使用特定「SP 夥伴屬性設定檔」,請執行:
setSPPartnerAttributeProfile(partnerName, attrProfileID)partnerName是用來建立 SP 夥伴的名稱attrProfileID是 SP 夥伴屬性設定檔 ID- 若要列出現有的「SP 夥伴屬性設定檔」,請執行:
listSPPartnerAttributeProfileIDs()
其他學習資源
探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,瀏覽 education.oracle.com/learning-explorer 成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Create SAML 1.1 and OpenID 2.0 SP Partners in OAM and IdP
F59900-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.