在 OAM 和 IdP 中建立 SAML 1.1 和 OpenID 2.0 SP 合作夥伴

本文涵蓋如何透過 SAML 1.1 或 OpenID 2.0 通訊協定,在 OAM 作為 IdP 與遠端 SP 合作夥伴之間設定聯合協議:

本文也描述如何透過 UI 或使用 OAM WLST 命令執行上述作業。

建立同盟信任

建立聯合夥伴之間的信任是先決條件,才能在聯合伺服器之間執行任何聯合 SSO 作業。

信任建立涉及交換憑證資訊,如果使用的協定依賴 PKI X.509 憑證來保護訊息交換,以及實行聯合協定之服務的位置 /URL。

SAML 1.1

OAM 管理主控台

若要建立新的 SAML 1.1 SP 合作夥伴,請執行下列步驟 (請先確定您擁有 SP 合作夥伴的所有資料,例如憑證、SP ID 及 URL):

  1. 移至「OAM 管理主控台」:http(s)://oam-admin-host:oam-adminport/oamconsole

  2. 瀏覽至 Identity Federation,身分識別提供者管理

  3. 按一下建立服務提供者夥伴按鈕

  4. 在「建立」畫面中:

    1. 輸入夥伴名稱
    2. 選取 SAML 1.1 作為協定
    3. 輸入 SP 合作夥伴的發照者 / ProviderID。如果「SP 合作夥伴」沒有「發行者」(如果合作夥伴僅是 SP,而非 IdP 和 SP),請輸入「宣告用戶服務 URL」
    4. 輸入該 SP 夥伴的「宣告用戶服務 URL」:這是使用「SAML 宣告」從 IdP 重新導向使用者的 URL。
    5. 如果 SP 合作夥伴簽署 SAML 訊息,請上傳簽署憑證檔案:
      1. PEM 格式 (檔案包含第一行 --BEGIN CERTIFICATE--,然後是 Base64 編碼格式的憑證,最後一行是 --END CERTIFICATE--)
      2. 或 DER 格式,其中憑證是以二進位編碼儲存
    6. 輸入 NameID 值的設定方式:
      1. 如果選取「使用者 ID 存放區屬性」,這表示 NameID 值將設為下拉式清單旁邊欄位中指定的 LDAP 屬性
      2. 如果選取「表示式」,這表示將根據下拉式清單旁的欄位中指定的表示式來設定 NameID 值。
    7. 選取用以在 SAML 宣告填入屬性的「屬性設定檔」。
  5. 按一下儲存 (Save)

OAM_Admin_Console.jpg 圖解說明

建立合作夥伴後,會顯示編輯合作夥伴畫面,其中包含:

注意:當「SAML 屬性查詢」交換已執行時,屬性查詢使用者對應子區段只與「SAML 屬性授權機構 / 要求」長條有關。此弓不是聯合 SSO 弓的一部分。

Edit_Partner_screen.jpg 圖解說明

WLST

若要使用 OAM WLST 命令建立新的 SAML 1.1 SP 合作夥伴,請執行下列步驟 (請先確定您擁有 SP 合作夥伴的所有資料,例如憑證、SP ID 和 URL):

  1. 執行以下項目來輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh

  2. 連線「WLS 管理」伺服器:connect()

  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()

  4. 建立可在 OAM 呼叫 acmeSP 的 SAML 1.1 SP 合作夥伴:addSAML11SPFederationPartner("acmeSP", "https://sp.com", "https://sp.com/saml11/sso"

  5. 新的 SP 夥伴預設將設定為:

    1. 使用電子郵件地址作為 NameID 格式

    2. 以郵件 LDAP 使用者屬性作為 NameID

    3. 使用 HTTP-POST 作為預設 SSO 回應連結

    4. 使用預設服務提供者屬性設定檔 尚未上傳此 SP 合作夥伴的憑證

  6. 結束 WLST 環境:exit()

透過 WLST 修改同盟設定值

本節列出如何透過 OAM WLST 命令變更通用 SP 合作夥伴設定值:

我們假設您已經在 WLST 環境中並使用下列方式連線:

  1. 執行以下項目來輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh

  2. 連線「WLS 管理」伺服器:connect()

  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()

SAML 簽署憑證

有多種 WLST 命令可用來管理簽署和加密憑證:

  1. getFederationPartnerSigningCert(),以 Base64 編碼格式列印合作夥伴的簽署憑證:getFederationPartnerSigningCert("acmeSP","sp")

  2. 使用 acmeSP 作為先前建立的合作夥伴名稱

  3. sp 表示夥伴類型 setFederationPartnerSigningCert(),可上傳作為參數傳遞至 SP 夥伴組態的簽署憑證檔案:setFederationPartnerSigningCert("acmeSP","sp", "/tmp/cert.file")

  4. 使用 acmeSP 作為先前建立的合作夥伴名稱

  5. sp 表示合作夥伴類型,第三個參數表示包含憑證之檔案的檔案系統位置:

    1. PEM 格式 (檔案包含第一行 --BEGIN CERTIFICATE--,然後是 Base64 編碼格式的憑證,最後一行是 --END CERTIFICATE--)
    2. 或 DER 格式,其中憑證是以二進位編碼儲存
  6. 從 SP 夥伴項目移除簽署憑證的 deleteFederationPartnerSigningCert()deleteFederationPartnerSigningCert("acmeSP","sp")

  7. acmeSP 是先前建立的合作夥伴名稱

  8. sp 表示合作夥伴類型

SP 夥伴屬性設定檔

若要針對特定 SP 合作夥伴設定「SP 合作夥伴屬性設定檔」,請使用下列命令:

  1. 若要設定「SP 夥伴」使用特定「SP 夥伴屬性設定檔」,請執行:setSPPartnerAttributeProfile(partnerName, aZrProfileID)

  2. partnerName 是用來建立服務點合作夥伴的名稱

  3. attrProfileID 是服務點合作夥伴屬性設定檔 ID

  4. 若要列出現有的「SP 夥伴屬性設定檔」,請執行:listSPPartnerAttributeProfileIDs()

SAML SSO 要求和回應連結

若要設定特定 SP 夥伴的 SAML 連結,請使用下列命令:

  1. 若要設定 SP 夥伴,請執行:configureSAMLBinding(partnerName, partnerType, binding, ssoResponseBinding="httppost")

  2. partnerName 是用來建立服務點合作夥伴的名稱

  3. partnerType 應設為 sp,因為合作夥伴為 SP

  4. 連結:這只適用於 SAML 2.0。使用 httppost

  5. ssoResponseBinding:用來將「SAML 宣告」送回 SP 的連結;用於 HTTP-POST 連結的 httppost,或用於「使用者自建物件」連結的使用者自建物件

SAML NameID 設定值

設定 SAML SP 夥伴的 NameID 設定值:

使用以下命令:

OpenID 2.0

OAM 管理主控台

若要建立新的 OpenID 2.0 SP/RP 夥伴,請執行下列步驟 (請先確定您擁有 SP 夥伴的所有資料,例如 SP/RP 範圍和 URL):

  1. 前往 OAM 管理主控台:http(s)://oam-admin-host:oam-adminport/oamconsole

  2. 瀏覽至 Identity Federation,身分識別提供者管理

  3. 按一下建立服務提供者夥伴按鈕

  4. 在「建立」畫面中:

    1. 輸入夥伴的名稱 選取 OpenID 2.0 作為「協定」輸入 RP/SP 夥伴的範圍。
    2. 輸入該 RP 合作夥伴的 OpenID 端點 URL:這是用 OpenID 回應從 IdP 重新導向使用者的 URL。
    3. 選取用來將屬性植入 OpenID 回應的屬性設定檔。
  5. 按一下儲存

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):

  1. 執行以下項目來輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh

  2. 連線「WLS 管理」伺服器:connect()

  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()

  4. 建立將在 OAM 中稱為 acmeRP 的 OpenID 2.0 RP 合作夥伴:addOpenID20SPFederationPartner("acmeRP", "https://sp.com", "https://sp.com/sso/openid20"

  5. 依預設,新 SP 合作夥伴已設定為使用預設服務提供者屬性設定檔

  6. 結束 WLST 環境:exit()

透過 WLST 修改同盟設定值

本節列出如何透過 OAM WLST 命令變更通用 SP 合作夥伴設定值:

我們會假設您已經在 WLST 環境中並使用下列方式連線:

  1. 執行以下項目來輸入 WLST 環境:$IAM_ORACLE_HOME/common/bin/wlst.sh

  2. 連線「WLS 管理」伺服器:connect()

  3. 瀏覽至「網域程式實際執行」分支:domainRuntime()

SP 夥伴屬性設定檔

若要針對特定 SP 合作夥伴設定「SP 合作夥伴屬性設定檔」,請使用下列命令:

若要將「SP 夥伴」設定為使用特定「SP 夥伴屬性設定檔」,請執行:

  1. setSPPartnerAttributeProfile(partnerName, attrProfileID)
  2. partnerName 是用來建立 SP 夥伴的名稱 attrProfileID 是 SP 夥伴屬性設定檔 ID
  3. 若要列出現有的「SP 夥伴屬性設定檔」,請執行:listSPPartnerAttributeProfileIDs()

其他學習資源

探索 docs.oracle.com/learn 上的其他實驗室,或存取 Oracle Learning YouTube 頻道上的更多免費學習內容。此外,瀏覽 education.oracle.com/learning-explorer 成為 Oracle Learning Explorer。

如需產品文件,請造訪 Oracle Help Center