從 IDP 到 SP (如果使用身分識別橋接,則為 Unified Access Gateway) 的 SAML 回應包含具有 SAML 屬性的 SAML 判斷提示。SAML 屬性可在 IDP 中設定為指向不同的參數,例如使用者名稱和電子郵件等。
在使用 SAML 的標頭式驗證中,SAML 屬性的值可作為 HTTP 標頭傳送至後端代理目的地。定義於 Unified Access Gateway 中的 SAML 屬性名稱與 IDP 中的名稱相同。例如,如果身分識別提供者將此屬性定義為 Name: userName
Value: idmadmin
,則 Unified Access Gateway 中的 SAML 屬性名稱必須定義為 "userName"
。
系統會忽略與 IDP 中所定義屬性不相符的 SAML 屬性。Unified Access Gateway 支援多個 SAML 屬性和多重值的 SAML 屬性。以下將針對各個案例,提供身分識別提供者預期會傳回的 SAML 判斷提示範例節錄。例如,
1. 預期 IDP 針對多個 SAML 屬性傳回的 SAML 回應
<saml:AttributeStatement> <saml:Attribute Name="userName" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">idmadmin</saml:AttributeValue> </saml:Attribute> <saml:Attribute Name="userEmail" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">63ecfabf-a577-46c3-b4fa-caf7ae49a6a3</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement>
在上述範例中,判斷提示包含兩個屬性,即 "userName"
和 "userEmail"
。如果僅為 "userName"
設定了標頭式驗證,且標頭名稱為 "HTTP_USER_NAME"
,則傳送的標頭為 "HTTP_USER_NAME: idmadmin"
。由於未在 Unified Access Gateway 上設定用於標頭式驗證的 "userEmail"
,因此不會將其作為標頭傳送。
2. 預期 IDP 針對多重值 SAML 屬性傳回的 SAML 回應
<saml:AttributeStatement> <saml:Attribute Name="group" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">All Employees</saml:AttributeValue> <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">All Contractors</saml:AttributeValue> <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">All Executives</saml:AttributeValue> <saml:AttributeValue xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xsd:string">All</saml:AttributeValue> </saml:Attribute> </saml:AttributeStatement>
在上述範例中,屬性 "group"
包含四個值,即 "All Employees"
、"All Contractors"
、"All Executives"
和 "All"
。如果僅為 "group"
設定了標頭式驗證,且標頭名稱為 "HTTP_GROUP"
,則傳送的標頭為 "HTTP_GROUP: All Employees, All Contractors, All Executives, All"
,並以所有屬性值的逗號分隔清單作為標頭值。