2016-11-15 73 views
0

我想配置的Windows Server 2012 R2的ADFS 3.0發送NameIDShibboleth的2.6 SAML 2.0 SP,但我不斷獲取這些錯誤:從ADFS 3.0獲得索賠,並顯示給在SAML的Shibboleth 2.6服務提供商(SP)2.0

2016-11-15 10:07:07 WARN Shibboleth.AttributeResolver.Query [1]: can't attempt attribute query, either no NameID or no metadata to use 
2016-11-15 10:07:07 INFO Shibboleth.SessionCache [1]: new session created: ID (_7e425978e43bc32c86393f518b26eb3e) IdP (https://c-adfs01.contoso.com/FederationMetadata/2007-06/FederationMetadata.xml) Protocol(urn:oasis:names:tc:SAML:2.0:protocol) Address (192.168.50.131) 

我明白,這事做關於從ADFS IDP傳遞NameID屬性和顯示nameIDShibboleth的SAML 2.0 SP

我也看到了,你需要設置一個規則,ADFS IDP傳遞Email Address,和改造Email address成爲NameID。我已經做到了,並有下列規則:

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"] 
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"); 

不過,我觀察到的配置似乎只與SAML 1.0兼容,而不是2.0(也許)。

所以,我繼續添加名稱屬性。我嘗試了transient,persistentemailAddress,並嘗試使用SAML 1.0SAML 2.0配置。

<Attribute name="urn:oasis:names:tc:SAML:2.0:nameid-format:transient" id="NameID"/> 
<Attribute name="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent" id="NameID"/> 
<Attribute name="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" id="NameID"/> 

問:

所以,要我應用程序會話時是什麼配置ADFS IDPNameID發送到的Shibboleth SP並顯示會話屬性的正確方法頁面

具體而言,我應該期待Claim Rules的正確輸出是什麼?以及Shibboleth attribute-map.xml的XML配置應該如何?

https://c-app01.contoso.com/Shibboleth.sso/Session 

回答

0

解決方案:

的解決方案是裏面創建兩個規則 「簽發變換規則」 在標籤依賴方。下面是規則進行設置:

  • 規則添加到發送LDAP屬性,索賠
  • 規則添加到變換的傳入聲明

同時,確保允許訪問所有用戶頒發授權規則標籤內。


說明:

添加規則以發送LDAP屬性作爲聲明:

  • 聲明規則名稱:電子郵件
  • 屬性存儲:Active Directory中
  • 映射的LDAP:電子郵件地址到電子郵件地址

這將映射電子郵件地址。

添加規則來轉換傳入聲明:

  • 聲明規則名稱:EmailToNameID
  • 傳入聲明類型:電子郵件地址
  • 傳出聲明類型:名稱ID
  • 傳出姓名ID格式:電子郵件
  • 確保選中「通過聲明價值」。

上面對於 「Transform一個傳入聲明」 會給你以下要求規則的設定:

c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"] 
=> issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/format"] = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"); 

之後,您可以配置attribute-map.xml像這樣:

<Attribute name="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" id="Email"/> 

我的錯誤:

我發現,在我要求每一個規則的設定是正確的,但對於EmailEmailToNameID的規則應該是發行下變換規則依賴方選項卡。