將 AD 屬性作為 AD FS 聲明發送到 Shibboleth SP 屬性
我設置了一個 AD FS 聲明提供程序,並且一個 Shibboleth SP 成功地對其進行了身份驗證。
我正在嘗試將 Active Directory 屬性發送到 SP。
我按照這篇文章嘗試發送聲明: https ://technet.microsoft.com/en-us/library/gg317734(v=ws.10).aspx
相關部分是
Step 2: Configure AD FS 2.0 as the Identity Provider and Shibboleth as the Relying Party
–>Configure AD FS 2.0
–>Edit Claim Rules for Relying Party Trust
–>To configure eduPerson claims for sending to a relying party trust
:在第 16 步中,它聲明我應該粘貼或鍵入以下內容(並將其包含在 2 個程式碼塊中):
c:[Type == "http://schemas.xmlsoap.org/claims/Group", Value == "Domain Users"]
和
=> issue(Type = "urn:oid:1.3.6.1.4.1.5923.1.1.1.9", Value = "member@contoso.com", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
我相信這是一個單一的陳述(如果我錯了,請糾正我)所以我的條目如下:
我正在使用 givenName 進行測試,所以我添加了以下內容:
在 Shibboleth SP 機器上,我
attribute-map.xml
通過添加以下內容進行了編輯,然後重新啟動了 Shibboleth 服務:<Attribute name="urn:mace:dir:attribute-def:GivenName" id="GivenName"/>
當我瀏覽該網站並使用 AD FS 重新進行身份驗證時,我沒有看到 givenName 顯示。我有一個輸出所有標題及其值的索引文件。
編輯:我的問題的解決方案
我讓 UPN 作為 epPN 發送。上述規則(文章中的規則)有效,但我必須
attribute-policy.xml
在 Shibboleth SP 上編輯以禁用範圍規則,因為我沒有正確設置該部分。我在
attribute-policy.xml
afp:AttributeRule attributeID="eppn"> <afp:PermitValueRuleReference ref="ScopingRules"/> </afp:AttributeRule>
是的,索賠規則(顯示為兩行)是一個“聲明”。它以’;‘結尾。即,您將兩行都添加到相同的自定義規則中。
對於每個帶有對象標識符 uri 的已發布(發送)聲明(屬性),您需要添加自定義規則(在 AD 搜尋規則下方)。也就是說,如果您想要“urn:oasis:names:tc:SAML:2.0:attrname-format:uri”。如果你只想要 oid uri,那麼在“Claim Descriptions”中定義 Clam 就足夠了。
通常我會在程序上使用一些細微的變化。我使用 UI 編寫搜尋規則,然後將規則(從“查看規則語言”)複製到自定義規則。在複製的自定義規則中,我將“問題”更改為“添加”。然後我刪除了原來的搜尋規則。這避免了向 Shib 發送 URL 和 URN 聲明。