我設定了 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 = "[email protected]", Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/attributename"] = "urn:oasis:names:tc:SAML:2.0:attrname-format:uri");
我相信這應該是一個單一的陳述(如果我錯了,請糾正我),所以我的條目如下:
我正在使用給定的名稱進行測試,因此我添加了以下內容:
在 Shibboleth SP 電腦上,我attribute-map.xml
透過新增以下內容進行編輯,然後重新啟動 Shibboleth 服務:
<Attribute name="urn:mace:dir:attribute-def:GivenName" id="GivenName"/>
當我瀏覽網站並使用 AD FS 重新進行身份驗證時,我沒有看到給出的名稱顯示。我有一個索引文件,它輸出所有標頭及其值。
編輯:我的問題的解決方案
我將 UPN 作為 epPN 發送。上述規則(文章中的規則)有效,但我必須attribute-policy.xml
在 Shibboleth SP 上編輯以停用範圍規則,因為我沒有正確設定該部分。
我註解掉了以下幾行attribute-policy.xml
afp:AttributeRule attributeID="eppn">
<afp:PermitValueRuleReference ref="ScopingRules"/>
</afp:AttributeRule>
答案1
是的,聲明規則(以兩行顯示)是一個「聲明」。它以“;”結尾。即,您將這兩行新增至同一自訂規則。
對於每個帶有物件標識符 uri 的發出(發送)聲明(屬性),您需要新增自訂規則(位於 AD 搜尋規則下方)。也就是說,如果您想要「urn:oasis:names:tc:SAML:2.0:attrname-format:uri」。如果您只想要 oid uri,那麼在「Claim Descriptions」中定義 clam 就足夠了。
通常我會在程式上稍加修改。我使用 UI 編寫搜尋規則,然後將規則(從「查看規則語言」)複製到自訂規則。在複製的自訂規則中,我將“問題”更改為“新增”。然後我刪除原來的搜尋規則。這可以避免將 URL 和 URN 聲明同時發送給 Shib。