我無法讓ADFS向我的應用發送聲明。身份驗證現在已成功完成,但我們在規則中設置的所有聲明都沒有與響應一起發送。我按這個順序有兩條規則。聲明規則引用ADFS中的先前聲明?
在第一條規則中,我的理解是types部分是我的應用程序期望ADFS輸出的任何內容,並且不需要與LDAP值相對應。真正重要的是query
,它必須引用有效的LDAP屬性。我確信query
值是有效的LDAP屬性,因爲另一個工作的依賴方配置使用這些相同的查詢值(但它們使用types
中的不同值進行輸出)。
在第二條規則中,我引用了Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"
。這不是LDAP中的類型,而是對第一條規則中創建的聲明的引用。我做得對嗎? 第二條規則是否可以引用第一條規則的輸出類型?
c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"]
=> issue(store = "Active Directory", types =
("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"),
query = ";givenName,sn,mail,employeeI;{0}", param = c.Value);
第二條規則
c:[Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"]
=> 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:2.0:nameid-format:persistent",
Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/namequalifier"] = "http://somedomain.com/adfs/services/trust",
Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/claimproperties/spnamequalifier"] = "https://someapp.somedomain.com/sp");
此外,沒有任何理由ADFS如果依賴方不設置與加密的證書也不會派索賠(它使用的是IDP證書生成簽名/驗證)?