在 OAM 和 SP 中建立 SAML 1.1 和 OpenID 2.0 IdP 合作夥伴
本文涵蓋如何透過 SAML 1.1 或 OpenID 2.0 通訊協定,在 OAM 作為 SP 與遠端 IdP 合作夥伴之間設定聯合協議:
- 設定遠端 SAML 1.1 IdP 合作夥伴
- 設定遠端 OpenID 2.0 IdP 合作夥伴
本文描述如何透過 UI 或使用 OAM WLST 命令執行上述工作。
SAML 1.1
OAM 管理主控台
若要建立新的 SAML 1.1 IdP 夥伴,請執行下列步驟 (請先確定您擁有 IdP 夥伴的所有資料,例如憑證、IdP ID 和 URL):
- 前往「OAM 管理主控台」:
http(s)://oam-admin-host:oam-adminport/oamconsole。 - 瀏覽至 Identity Federation,服務提供者管理。
- 按一下建立身分識別提供者夥伴按鈕。
- 在「建立」畫面中:
- 輸入夥伴的名稱。
- 輸入 IdP 合作夥伴的發照者 /
ProviderID。 - 如果將
SuccinctID留白,OAM/SP 會使用 SHA-1 演算法摘要提供者 ID 來計算它 (應留白)。 - 輸入該 IdP 合作夥伴的 SSO 服務 URL:這是將使用者從具有 SAML AuthnRequest 的 OAM/SP 重新導向至 IdP 的 URL。
- 如果合作夥伴支援 SAML 2.0 使用者自建物件協定,請輸入 OAM/SP 連線的 SOAP 服務 URL,以在「SSO 使用者自建物件」作業期間擷取 SAML 宣告。
- 上傳 IdP 簽章憑證檔案:
- PEM 格式 (檔案包含第一行 --BEGIN CERTIFICATE--,然後是 Base64 編碼格式的憑證,最後一行是 --END CERTIFICATE--)
- 或 DER 格式,其中憑證是以二進位編碼儲存
- 「宣告對應」段落:
- 選擇性地設定應使用的「OAM 識別存放區」。注意:在範例中,我們將欄位留白,以使用預設的「OAM 識別存放區」。
- 選擇性地設定使用者搜尋基準 DN。注意:在範例中,我們將欄位留白,以使用「識別存放區」中設定的使用者搜尋基準 DN
- 選取對應發生的方式。注意:在範例中,我們正透過
NameID將宣告對應至 LDAP 郵件屬性。 - 選取用來將內送 SAML 宣告中屬性的名稱對應至本機名稱的「屬性設定檔」。
- 按一下儲存。
- 建立合作夥伴後,會顯示編輯合作夥伴畫面,其中包含:
- 在上一個畫面中設定的設定值可修改。
- 此時會顯示「進階設定值」段落。
- HTTP 基本認證:如果使用使用者自建物件連結,OAM/SP 必須直接透過 SOAP 連線至 IdP,才能擷取「SAML 宣告」。有時 IdP 會在 SOAP 通道上啟用「HTTP 基本認證」,而 OAM/SP 需要提供 IdP 的使用者名稱 / 密碼 (會由 IdP 與 SP 的管理員同意這些證明資料)。


[Description of the illustration Edit_Partner_Screen.jpg](files/Edit_Partner_Screen.txt)
WLST
若要使用 OAM WLST 命令建立新的 SAML 1.1 IdP 合作夥伴,請執行下列步驟 (確定您擁有 IdP 合作夥伴的所有資料,例如憑證、IdP ID 和 URL):
-
執行以下步驟來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh。 -
連線「WLS 管理」伺服器:
connect()。 -
瀏覽至「網域程式實際執行」分支:
domainRuntime()。 -
建立呼叫 OAM 中 acmeIdP 的 SAML 1.1 IdP 合作夥伴:
addSAML11IdPFederationPartner("acmeIdP", "https://acme.com/idp", "https://acme.com/saml11/sso", "https://acme.com/saml11/soap"。 -
新 SP 合作夥伴預設會設定為:
-
使用預設的 OAM 識別存放區
-
使用「識別存放區」的使用者搜尋基準 DN (未覆寫)
-
使用符合 LDAP 郵件屬性的
NameID對應 SAML 宣告。 -
使用預設的身分識別提供者屬性設定檔。
-
尚未上傳此 IdP 合作夥伴的憑證。
-
結束 WLST 環境:
exit()。
透過 WLST 修改同盟設定值
本節列出如何透過 OAM WLST 命令變更通用的 IdP 夥伴設定值:
- SAML 宣告對應設定值
- 用於 SAML 宣告對應的 OAM 識別存放區和使用者搜尋基準 DN
- SAML 簽署憑證
- IdP 夥伴的 IdP 夥伴屬性設定檔
假設您已經在 WLST 環境中並使用下列方式連線:
- 執行以下步驟來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh。 - 連線「WLS 管理」伺服器:
connect()。 - 瀏覽至「網域程式實際執行」分支:
domainRuntime()。
SAML 宣告對應設定值
設定 SAML IdP 夥伴的對應設定值:
- 使用下列命令透過 NameID 對應宣告:
setIdPPartnerMappingNameID(partnerName, userstoreAttr)partnerName是用來建立 IdP 夥伴的名稱userstoreAttr:符合 NameID 值的 LDAP 使用者屬性。
- 請使用下列命令透過「SAML 屬性」對應宣告:
setIdPPartnerMappingAVribute(partnerName, assertionAttr, userstoreAttr)partnerName是用來建立「IdP 合作夥伴assertionAttr:SAML 屬性名稱」的名稱。userstoreAttr:符合「SAML 屬性」值的 LDAP 使用者屬性。
- 請使用下列命令透過 LDAP 查詢對應宣告:
setIdPPartnerMappingAVributeQuery(partnerName, attrQuery)partnerName是用來建立 IdP 夥伴的名稱attrQuery:要使用的 LDAP 查詢 (例如(&(givenname=%firstname%) (sn=%lastname%)))。
OAM 識別存放區與使用者搜尋基準 DN
若要設定 OAM/SP 在對應內送 SAML 宣告時使用特定的「OAM 識別存放區」和 (或) 特定「使用者搜尋基準 DN」,請執行下列命令:setPartnerIDStoreAndBaseDN():
- 使用下列命令僅設定「OAM 識別存放區」:
setPartnerIDStoreAndBaseDN(partnerName, "idp", storeName="oid")partnerName是用來建立 IdP 夥伴的名稱idp表示合作夥伴類型storeName:參照要使用的「OAM 識別存放區」
- 使用下列命令僅設定「搜尋基準 DN」:
setPartnerIDStoreAndBaseDN(partnerName, "idp",searchBaseDN="ou=managers,dc=acme,dc=com")partnerName是用來建立 IdP 夥伴的名稱idp表示合作夥伴類型searchBaseDN:指示要使用的搜尋基準 DN- 使用下列命令設定「OAM 識別存放區」和「搜尋基準 DN」:
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid", searchBaseDN="ou=managers,dc=acme,dc=com")partnerName是用來建立 IdP 夥伴的名稱idp表示合作夥伴類型storeName:參照要使用的「OAM 識別存放區」searchBaseDN:指示要使用的搜尋基準 DN- 使用下列命令,從 IdP 夥伴項目移除「OAM 識別存放區」和「搜尋基準 DN」:
setPartnerIDStoreAndBaseDN(partnerName, "idp", delete="true")partnerName是用來建立 IdP 夥伴的名稱- idp 表示夥伴類型
SAML 簽署憑證
有多種 WLST 命令可用來管理簽署和加密憑證:
getFederationPartnerSigningCert(),以 Base64 編碼格式列印合作夥伴的簽署憑證:getFederationPartnerSigningCert("acmeIdP", "idp")- 使用
acmeIdP作為先前建立的合作夥伴名稱 idp表示合作夥伴類型setFederationPartnerSigningCert()會上傳作為參數傳遞至IdP夥伴組態的簽署憑證檔案:setFederationPartnerSigningCert("acmeIdP","idp", "/tmp/cert.file")- 使用
acmeIdP作為先前建立的合作夥伴名稱 idp表示合作夥伴類型- 第三個參數指示包含憑證之檔案的檔案系統位置:
- PEM 格式 (檔案包含第一行 --BEGIN CERTIFICATE--,然後是 Base64 編碼格式的憑證,最後一行是 --END CERTIFICATE--)
- 或 DER 格式,其中憑證是以二進位編碼儲存
- 從 IdP 夥伴項目移除簽署憑證的
deleteFederationPartnerSigningCert():deleteFederationPartnerSigningCert("acmeIdP","idp") - 使用 acmeIdP 作為先前建立的合作夥伴名稱
idp表示合作夥伴類型
IdP 合作夥伴屬性設定檔
若要設定特定 IdP 夥伴的 IdP 夥伴屬性設定檔,請使用下列命令:若要設定 IdP 夥伴使用特定的 IdP 夥伴屬性設定檔,請執行:
setIdPPartnerAttributeProfile(partnerName, attrProfileID)partnerName是用來建立 IdP 夥伴的名稱attrProfileID是 IdP 合作夥伴屬性設定檔 ID- 若要列出現有的 IdP 合作夥伴屬性設定檔,請執行:
listIdPPartnerAttributeProfileIDs()
範例
下列命令可用來新增 SAML 1.1 IdP 夥伴 (在此範例中,我們選擇指定「識別存放區」):
addSAML11IdPFederationPartner("acmeIdP", "https://acme.com/idp", "https://acme.com/saml1 /sso", "https://acme.com/saml11/soap" setFederationPartnerSigningCert("acmeIdP", "idp","/tmp/acme-idp-cert.pem") setPartnerIDStoreAndBaseDN("acmeIdP", "idp", "oid") setIdPPartnerMappingNameID("acmeIdP", "mail")
OpenID 2.0
OAM 管理主控台
若要建立新的 OpenID 2.0 IdP/OP 合作夥伴,請執行下列步驟 (確定您擁有 IdP/OP 合作夥伴的所有資料,例如尋找和 SSO URL):
- 前往「OAM 管理主控台」:
http(s)://oam-admin-host:oam-adminport/oamconsole。 - 瀏覽至 Identity Federation,服務提供者管理。
- 按一下建立身分識別提供者夥伴按鈕。
- 在「建立」畫面中:
- 輸入夥伴的名稱。
- 選取 OpenID 2.0 作為協定。
- 選取與 OpenID OP 互動的方式。
- 指定發布 OP XRDS 的 OpenID 尋找 URL。
- 或指定 OpenID SSO URL,以將使用者重新導向至 OpenID SSO。
- 輸入「服務詳細資訊」選項的相對應 URL。
- 對應區段:
- 選擇性地設定應使用的「OAM 識別存放區」。注意:在範例中,我們將欄位留白,以使用預設的「OAM 識別存放區」。
- 選擇性地設定使用者搜尋基準 DN。注意:在範例中,我們將欄位留白,以使用「識別存放區」中設定的使用者搜尋基準 DN。
- 選取對應發生的方式。注意:在範例中,我們透過名為 http://axschema.org /contact/email 的屬性對應 OpenID 回應至 LDAP 郵件屬性。注意:無法透過 NameID 對應 OpenID 協定。
- 選取用來將內送 SAML 宣告中屬性的名稱對應至本機名稱的「屬性設定檔」。
- 按一下儲存。

Create_Idty_Provider_Screen.jpg 圖解說明
建立合作夥伴後,會顯示編輯合作夥伴畫面,其中包含:
- 在上一個螢幕中設定的設定值可以修改
- 「進階設定」段落隨即顯示:
- 啟用 OpenID UI 擴充功能 :指示 OAM/SP/RP 包含在 OpenID 要求 UI 擴充功能中,如果 OP 支援,則將模式設為即現式視窗。
- OpenID UI 擴充語言偏好設定 :指示 OAM/SP/RP 包含在 OpenID 要求「UI 擴充」中,並將語言欄位設為使用者瀏覽器所傳送的 Accept-Language HTTP 標頭值 (如果 OP 支援)。
- 啟用 OpenID UI 擴充功能關係人圖示 :指示 OAM/SP/RP 包含在 OpenID 要求「UI 擴充」中,如果 OP 支援,則設定圖示延遲。

Edit_Partner_Adv_Settings_Screen.jpg 圖解說明
OpenID 2.0 通訊協定主要依賴 OP 與 RP 在 OpenID 2.0 SSO 交換期間共用的使用者屬性。OAM/RP 可以將內送 SSO 回應中的屬性名稱對應至本機名稱,並透過 IdP 屬性設定檔來完成。
WLST
若要使用 OAM WLST 命令建立新的 OpenID 2.0 OP 合作夥伴,請執行下列步驟 (確定您具有 OP 合作夥伴的所有資料,例如 IdP/OP 範圍和 URL):
- 執行以下步驟來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh。 - 連線「WLS 管理」伺服器:
connect()。 - 瀏覽至「網域程式實際執行」分支:
domainRuntime()。 - 建立在 OAM 中呼叫
acmeOP的 OpenID 2.0 OP 合作夥伴:addOpenID20IdPFederationPartner("acmeOP","https://acme.com/openid/sso","https://acme.com/openid/xrds")。 - 新 SP 合作夥伴預設會設定為:
- 使用預設的「OAM 識別存放區」。
- 使用「識別存放區」的使用者搜尋基準 DN (未覆寫)。
- 將不會設定「宣告對應」。
- 使用預設服務提供者屬性設定檔。
- 結束 WLST 環境:
exit()。
透過 WLST 修改同盟設定值
本節列出如何透過 OAM WLST 命令變更通用 IdP/OP 夥伴設定值:
- OpenID SSO 回應對應設定值
- OpenID SSO 回應的 OAM 識別存放區和使用者搜尋基準 DN
- IdP 夥伴的 IdP 夥伴屬性設定檔
我們假設您已經在 WLST 環境中並使用下列方式連線:
- 執行以下步驟來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh。 - 連線「WLS 管理」伺服器:
connect()。 - 瀏覽至「網域程式實際執行」分支:
domainRuntime()。
OpenID SSO 回應對應設定值
設定 OpenID IdP 夥伴的對應設定值:
- 請使用下列命令透過「SAML 屬性」對應 SSO 回應:
setIdPPartnerMappingAVribute(partnerName, assertionAttr, userstoreAttr)partnerName是用來建立 IdP 夥伴的名稱
assertionAttr:OpenID 屬性的名稱。userstoreAttr:符合「SAML 屬性」值的 LDAP 使用者屬性。- 使用下列命令透過 LDAP 查詢對應 SSO 回應:
setIdPPartnerMappingAVributeQuery(partnerName, attrQuery)partnerName是用來建立 IdP 夥伴的名稱attrQuery:要使用的 LDAP 查詢 (例如(&(givenname=%firstname%) (sn=%lastname%)))。
OAM 識別存放區與使用者搜尋基準 DN
若要設定 OAM/SP 在對應內送 OpenID SSO 回應時使用特定「OAM 識別存放區」和 (或) 特定「使用者搜尋基準 DN」,請執行下列命令:setPartnerIDStoreAndBaseDN():
- 使用下列命令僅設定「OAM 識別存放區」:
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid")partnerName是用來建立 IdP 夥伴的名稱idp表示合作夥伴類型storeName:參照要使用的「OAM 識別存放區」- 使用下列命令僅設定「搜尋基準 DN」:
setPartnerIDStoreAndBaseDN(partnerName,"idp",searchBaseDN="ou=managers,dc=acme,dc=com")partnerName是用來建立 IdP 夥伴的名稱idp表示合作夥伴類型searchBaseDN:指示要使用的搜尋基準 DN- 使用下列命令設定「OAM 識別存放區」和「搜尋基準 DN」:
setPartnerIDStoreAndBaseDN(partnerName,"idp", storeName="oid", searchBaseDN="ou=managers,dc=acme,dc=com")partnerName是用來建立 IdP 夥伴的名稱idp表示合作夥伴類型storeName:參照要使用的「OAM 識別存放區」searchBaseDN:指示要使用的搜尋基準 DN- 使用下列命令,從 IdP 夥伴項目移除「OAM 識別存放區」和「搜尋基準 DN」:
setPartnerIDStoreAndBaseDN(partnerName,"idp", delete="true")partnerName是用來建立 IdP 夥伴的名稱idp表示合作夥伴類型
IdP 夥伴屬性資料檔
若要設定特定 IdP 夥伴的 IdP 夥伴屬性設定檔,請使用下列命令:若要設定 IdP 夥伴使用特定的 IdP 夥伴屬性設定檔,請執行:
setIdPPartnerAttributeProfile(partnerName, attrProfileID)partnerName是用來建立 IdP 夥伴的名稱attrProfileID是 IdP 合作夥伴屬性設定檔 ID- 若要列出現有的 IdP 合作夥伴屬性設定檔,請執行:
listIdPPartnerAttributeProfileIDs()
範例
下列命令可用來新增 OpenID 2.0 OP 夥伴 (在此範例中,我們選擇不指定「識別存放區」):
addOpenID20IdPFederationPartner("acmeOP", "https://acme.com/openid/sso", "https://acme.com/openid/xrds") setIdPPartnerMappingAVribute("acmeOP", "http://axschema.org/contact/email", "mail"
OpenID for Google / Yahoo
OAM 管理工具提供簡單的方法,可將 Google 或 Yahoo 新增為 OpenID 2.0 OP/IdP。OAM 會建立必要的使用者自建物件,以透過 OpenID 協定在 Google 或 Yahoo 執行聯合 SSO。
若為 Google:
- OAM 會要求國家、郵件、名字、姓氏以及語言屬性。
- SSO 回應對應是透過郵件屬性完成。
Yahoo
- OAM 會要求國家、郵件、名字、姓氏、性別以及語言屬性。
- SSO 回應對應是透過郵件屬性完成。
OAM 管理主控台
若要將 Google 或 Yahoo 建立為新的 OpenID 2.0 IdP/OP 合作夥伴,請執行下列步驟:
- 前往「OAM 管理主控台」:
http(s)://oam-admin-host:oam-adminport/oamconsole。 - 瀏覽至 Identity Federation、服務提供者管理。
- 按一下建立身分識別提供者夥伴按鈕。
- 在「建立」畫面中:
- 輸入夥伴的名稱。
- 選取 OpenID 2.0 作為協定。
- 選取
- 如果您要新增 Google,Google 提供者預設值。
- 若要新增 Yahoo, Yahoo 提供者預設值。
- 按一下儲存。

OAM_Admin_Console_Google_Yahoo.jpg 圖解說明
WLST
若要使用 OAM WLST 命令建立 Google 或 Yahoo 作為新的 OpenID 2.0 IdP/OP 合作夥伴,請執行下列步驟:
- 執行以下步驟來輸入 WLST 環境:
$IAM_ORACLE_HOME/common/bin/wlst.sh。 - 連線「WLS 管理」伺服器:
connect()。 - 瀏覽至「網域程式實際執行」分支:
domainRuntime()。 - 建立 OpenID 2.0 OP 合作夥伴:
- 若為 Google (合作夥伴名稱為 google):
addOpenID20GoogleIdPFederationPartner()。 - 若為 Yahoo (合作夥伴名稱為 yahoo):
addOpenID20YahooIdPFederationPartner()。
其他學習資源
探索 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 IdP Partners in OAM and SP
F59899-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.