在 Liberty 中配置 SAML Web 入埠傳播
您可以將 Liberty 伺服器配置成接受 HTTP 標頭中的 SAML 記號,來作為鑑別記號。此特性通常用於代表已鑑別使用者來使用 SAML 的 Proxy 或 RESTful 用戶端。
關於這項作業
您可以在 Liberty 中啟用 samlWeb-2.0 特性,並設定 inboundPropagation=required,外加其他的配置資訊,將 Liberty 伺服器配置成接受 HTTP 標頭中的 SAML 記號,來作為鑑別記號。入埠傳播的配置類似於 在 Liberty 中配置 SAML Web 瀏覽器 SSO。
程序
- 在 server.xml 檔中新增 samlWeb-2.0 Liberty 特性,作法是在 featureManager 元素內新增下列元素宣告。
<feature>samlWeb-2.0</feature>
- 啟用 SAML 入埠傳播。Liberty 伺服器會提供預設
samlWebSso20 元素。
<samlWebSso20 id="defaultSP"> </samlWebSso20>
您可以使用這個預設 samlWebSso20 元素,或建立新的 samlWebSso20 元素,透過新增 inboundPropagation=required,來啟用 SAML 入埠傳播。<samlWebSso20 id="defaultSP" inboundPropagation="required" > </samlWebSso20>
註: 一旦配置和啟用了 SAML,所有未經鑑別的要求都會採用 SAML 鑑別。如果要配置能夠和無法使用 SAML 鑑別的要求類型,您必須根據這個主題的說明,來配置鑑別過濾器。 - 您必須配置 PKIX 信任引擎,以透過 PKIX 驗證,來驗證簽章中之憑證的可信度。通過這項驗證的憑證會假設是授信的。
- 配置 <PKIXTrustEngine>,並將所有授信 SAML 簽章者憑證匯入至 Liberty 伺服器的預設信任儲存庫,或匯入至 PKIXTrustEngine 的 trustAnchor。
- 選用:如果憑證可信度不足,您可以配置 trustedIssuers,以便在 SAML 記號出現在 SAML 主張中時,列出該 SAML 記號的簽發者名稱。
以下是配置範例:<samlWebSso20 id="defaultSP" inboundPropagation="required" headerName="saml_token" signatureMethodAlgorithm="SHA1"> <pkixTrustEngine trustAnchor="serverStore" /> </samlWebSso20>
- 選用:您可以新增 headerName,來定義含有 SAML 記號的 http 要求標頭名稱。如果未定義這個配置屬性,Liberty 伺服器會搜尋標頭名稱 saml、Saml 和 SAML,以找出 SAML 記號。HTTP 要求中的 SAML 記號標頭可以是下列其中一種格式:
Authorization=[<headerName>=<SAML_HERE>] Authorization=[<headerName>="<SAML_HERE>"] Authorization=[<headerName> <SAML_HERE>] <headerName>=[<SAML_HERE>]
SAML 記號必須以 Base-64 或 UTF-8 編碼,並且可以用 GZIP 格式來壓縮。
註: SAML 記號標頭名稱必須是一個安全的 URL 字串,且頭尾不得含有空格。 - 選用:您可以配置如何從 SAML 建立受鑑別的主體。依預設,Liberty 服務提供者會直接從 SAML 主張建立主體,而不需使用本端使用者登錄,這等同於 mapToUserRegistry=No 配置。其他的配置選項是 mapToUserRegistry=User 或 mapToUserRegistry=Group。
- mapToUserRegistry=No:SAML 簽發者名稱是 realm,並使用 NameID,在主體中建立主體名稱和唯一安全名稱,且不包含群組成員。您可以配置 userIdentifier, realmIdentifier、groupIdentifier 和 userUniqueIdentifier 等屬性,以便使用自訂的使用者名稱、網域範圍名稱、群組成員資格和唯一的安全 ID,來建立受鑑別的主體。
- mapToUserRegistry=User:如果您想根據您的本端使用者登錄,來驗證 SAML 使用者,並根據本端使用者登錄來建立使用者主體,請選擇這個選項。
- mapToUserRegistry=Group:如果您想根據您的本端使用者登錄,來驗證 SAML 群組,並建立主體來包含那些已驗證的群組,請選擇這個選項。這個選項類似於 mapToUserRegistry=No,只不過會根據本端使用者登錄來驗證群組成員資格。
- 選用:您可以採使用者特性形式來實作 Liberty SAML SPI com.ibm.wsspi.security.saml2.UserCredentialResolver,以便將 SAML 主張動態對映至 Liberty 主體。
- 選用:您可以配置多個 samlWebSso20 元素,且每一個 samlWebSso20 元素各參照一個唯一的 authFilter 元素。所有 authFilter 元素必須彼此排除。在配置多個 samlWebSso20 元素之後,每一個元素就各有自己的鑑別原則和耗用規則。
- 選用:配置簽章需求,注意事項如下:
預設簽章演算法是 SHA256。如果您必須變更演算法,請使用 signatureMethodAlgorithm 屬性來修改它。
- 選用:您可以配置 SP 鑑別階段作業和 Cookie。在驗證和處理 SAML 主張之後,Liberty SAML SP 會維護用戶端和 SP 之間的受鑑別階段作業,而不使用 LTPA Cookie。受鑑別的階段作業逾時值會設為 <saml:AuthnStatement> 中的
SessionNotOnOrAfter(若有的話),或設為 server.xml 檔中所配置的 sessionNotOnOrAfter
(其預設值為 120 分鐘)。會自動產生階段作業 Cookie 名稱,您可以使用 spCookieName 屬性來指定想要的名稱,以自訂 Cookie 名稱。
如果您希望 Liberty SP 從 SAML 主張建立 LTPA Cookie,並在後續的鑑別要求中使用 LTPA Cookie,可新增 disableLtpaCookie=false 配置。如果您想提供 LTPA Cookie 給其他伺服器共用,必須新增配置屬性 allowCustomCacheKey="false"。
註: 如果您配置 disableLtpaCookie="false" 和 allowCustomCacheKey="false",請確定 SAML 使用者名稱不會直接接受本端使用者登錄的鑑別,因為本端使用者登錄不讓使用者有兩個帳戶。 - 配置鑑別過濾器。您可以使用 authnFilter,來定義由哪個 samlWebSso20 元素處理入埠傳播鑑別要求。
如需配置鑑別過濾器的相關資訊,請參閱鑑別過濾器。
結果
上層主題: 在 Liberty 中鑑別使用者


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_saml_web_inbound_prop
檔名:twlp_saml_web_inbound_prop.html