我有很多使用SSO的客户端,因为我们使用SAML 2.我的许多客户使用Okta,PingIdentity和其中一些ADFS等提供商。始终在开始时与ADFS集成引发错误,然后他们通过以下设置修复此问题:
转换传入声明
收到的索赔= UPN
外发索赔=姓名ID
传出名称ID格式=电子邮件
我们在saml响应中看到的错误是他们没有发送nameID,而是我们看到:
<samlp:Status><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester"><samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy"/></samlp:StatusCode></samlp:Status>
ADFS集成正好发生这种情况,我想知道我应该了解ADFS上的声明规则,以便解决此错误并向以下使用ADFS的客户端解释。
答案 0 :(得分:0)
这是转化声明规则。
在客户端元数据中,您应该看到类似的内容:
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>
这些是允许的NameID格式。
传出的NameID格式必须是其中之一。
所以,例如电子邮件将是:
Incoming claim = Email
Outgoing Claim = NameID
Outgoing name ID format = Email
您将首先拥有正常的电子邮件LDAP规则,然后是上面的转换规则。