Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用SAML oneLogin代码作为iDP连接到ADFS时出现响应错误_Java_Single Sign On_Saml_Adfs_Onelogin - Fatal编程技术网

Java 使用SAML oneLogin代码作为iDP连接到ADFS时出现响应错误

Java 使用SAML oneLogin代码作为iDP连接到ADFS时出现响应错误,java,single-sign-on,saml,adfs,onelogin,Java,Single Sign On,Saml,Adfs,Onelogin,我们可以通过saml OneLogin java应用程序登录到ADFS iDP。 我们按照以下步骤编辑依赖方(ADFS)的索赔规则: 允许在响应中返回电子邮件地址 右键单击依赖方信任并选择“编辑索赔规则…” 在“发布转换规则”选项卡上,选择“添加规则…” 选择“将LDAP属性作为声明发送”作为要使用的声明规则模板 给声明一个名称,例如NameID 将属性存储设置为Active Directory,将LDAP属性设置为电子邮件地址,将传出声明类型设置为电子邮件地址 选择Finish 选择添加规则

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

  • 允许在响应中返回电子邮件地址
  • 右键单击依赖方信任并选择“编辑索赔规则…”
  • 在“发布转换规则”选项卡上,选择“添加规则…”
  • 选择“将LDAP属性作为声明发送”作为要使用的声明规则模板
  • 给声明一个名称,例如NameID
  • 将属性存储设置为Active Directory,将LDAP属性设置为电子邮件地址,将传出声明类型设置为电子邮件地址
  • 选择Finish
  • 选择添加规则
  • 选择转换传入索赔作为要使用的索赔规则模板
  • 给它一个名字,比如Email to NameID。传入索赔类型应为电子邮件地址,传出名称ID格式为电子邮件
  • 选中“传递所有索赔值”,然后单击“完成”
但它给出了以下例外情况:

Microsoft.IdentityServer.Protocols.Saml.InvalidNameIdPolicyException:MSIS7070: SAML请求包含一个NameIDPolicy,该策略未被颁发的令牌满足。 请求的NameIDPolicy:AllowCreate:True格式:urn:oasis:names:tc:SAML:1.1:nameid格式: 电子邮件地址 SPNameQualifier:。实际NameID属性:null


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

我已解决此异常。需要在ADFS服务器上的Active Directory用户和计算机的属性中添加电子邮件地址。此外,NameID format属性应设置为“urn:oasis:names:tc:SAML:1.1:NameID format:emailAddress”
谢谢大家的支持。希望这能对某些人有所帮助。

您使用的是什么版本的java saml?我建议使用2.0.0版本。我将saml 2.0设置为onelogin.saml2.sp.nameidformat作为urn:oasis:names:tc:saml:1.1:nameid格式:unspecifiedGlad解决问题。如果不想限制IdP使用特定的nameid格式,建议使用urn:oasis:names:tc:SAML:1.1:nameid格式:未指定。但是如果您知道IdP支持urn:oasis:names:tc:SAML:1.1:nameid format:emailAddress,并且这是您想要的,那么您可以像以前一样设置该值。SP和IdP之间的其他可能冲突与请求的身份验证上下文的值集有关谢谢您的建议。是的,我需要电子邮件地址来继续我们的申请。