您好我正在尝试使用SSO直接向我的网站验证我的客户用户身份。我的客户的IDP是Microsoft ADFS,我使用Passport-SAML(https://github.com/bergie/passport-saml)来配置SSO进程。
当我尝试登录时,我在客户端的ADFS服务器日志中收到以下错误:
"联合身份验证服务在处理SAML身份验证请求时遇到错误"
并在Exception详细信息中:
" MSIS0038:SAML邮件签名错误。发行人:' myCompany_com'"
这是我遵循的流程:
1 /使用护照脚本获取我的medatafile myCompany.xml并将其提供给我的客户端
2 /我的客户在其ADFS中添加添加信赖方信任,使用发送LDAP属性作为声明模板添加规则,并使用添加其他规则转换传入的声明选项并将其证书
发送给我错误流程: 1 /来自myClient的用户访问认证区域(实际上在使用以下URL后重定向到那里:www.myClientSpace.myCompany.com 2 /输入他的凭证并尝试登录,然后错误出现在ADFS SERVER LOG中 也许我在XML文件中遗漏了一些东西......
感谢您的时间和帮助!
PS:这是我的XML文件
<EntityDescriptor entityID="myCompany_com" xmlns="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<KeyDescriptor use="signing">
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>MIICQ...</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
<SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://www.myCompany.com/adfs/postResponse/logout"/>
<AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://www.myCompany.com/adfs/postResponse/postResponse" index="0"/>
</SPSSODescriptor>
</EntityDescriptor>
答案 0 :(得分:0)
证书有问题,例如这不是您用来签名的那个,或者导入ADFS时出错。
另一个可能的原因是你没有签署AuthnRequest,ADFS期待你,