2016-06-27 56 views
0

我无法让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证书生成签名/验证)?

回答