1

您好我正在尝试使用 SSO 将我的客户的用户直接验证到我的网站。我的客户的 IDP 是 Microsoft ADFS,我正在使用 Passport-SAML ( https://github.com/bergie/passport-saml ) 来配置 SSO 流程。

当我尝试登录时,客户端的 ADFS 服务器日志中出现以下错误:

“联合服务在处理 SAML 身份验证请求时遇到错误”

并在异常详细信息中:

“MSIS0038:SAML 消息的签名错误。颁发者:'myCompany_com'。”

这是我遵循的过程:

1/ 使用护照脚本获取我的数据文件 myCompany.xml 并将其提供给我的客户

2/我的客户将其添加到他的 ADFS中的Add Relying Party Trust中,使用Send LDAP Attributes as Claims模板添加规则,并使用Transform an incoming Claim 选项添加另一个规则并将他的证书发送给我

错误流程: 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>
4

1 回答 1

0

证书有问题,例如不是您用来签名的证书,或者导入 ADFS 时出错。

另一个可能的原因是您没有签署 AuthnRequest 并且 ADFS 希望您这样做,

于 2018-02-01T19:01:01.667 回答