我们可以通过saml OneLogin Java应用程序登录到ADFS iDP。
我们已按照以下步骤将依赖方的索赔规则(ADFS)编辑为:


启用返回电子邮件地址作为响应。
右键单击依赖方信任,然后选择“编辑声明规则”。
在“发行转换规则”选项卡上,选择“添加规则…”。
选择“将LDAP属性发送为声明”作为要使用的声明规则模板。
为声明指定名称,例如NameID。
将“属性存储”设置为“ Active Directory”,将“ LDAP属性”设置为“电子邮件地址”,将“外发声明类型”设置为“电子邮件地址”。
选择完成。
选择添加规则...。
选择“转换传入的索赔”作为要使用的索赔规则模板。
给它起一个名字,例如Email to NameID。传入的声明类型应为“电子邮件地址”,传出名称ID格式为“电子邮件”。
选中通过所有索赔值,然后单击完成。


但是它给出了以下异常:


  Microsoft.IdentityServer.Protocols.Saml.InvalidNameIdPolicyException:MSIS7070:
       SAML请求包含一个已发行令牌不满足的NameIDPolicy。
       请求的NameIDPolicy:AllowCreate:True格式:urn:oasis:names:tc:SAML:1.1:nameid-format:
       电子邮件地址
       SPNameQualifier :。实际的NameID属性:null。


请建议如何解决此错误。谢谢你的帮助。

最佳答案

我已经解决了这个例外。它要求在ADFS服务器上的Active Directory用户和计算机的属性中添加电子邮件地址。此外,NameID格式属性应设置为“ urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress”
感谢各位的支持。希望这可以对某人有所帮助。

10-06 03:07