我正在开发一个 idp 服务器。我正在开发一个项目,该项目解释来自 sp 的 samlrequest,创建 samlresponse 并将其发送到 sp。 响应本身已经完成,但我不断遇到验证错误。 “响应没有任何可以通过主题验证的有效断言” sp 服务器不提供有关为什么我发送的响应未经验证的详细日志... 当我使用 onelogin 响应验证工具检查发送的响应时, 我检查了“SAML 响应有效。”
使用我的响应表单检查 SSO 是否成功的唯一方法是尝试发送与 ssocircle 的响应相同的响应(因为 ssocircle 已链接到您尝试连接的 SP)。 我的断言数据和 sso 的断言数据之间的唯一区别是 SignatureValue 和 X509Certificate 标记与数据之间的空格和换行符。我想知道这是否会影响响应断言验证。
这是我发送的回复表格。(断言)
**<ds:SignatureValue>
blablablablablablabla</ds:SignatureValue>**
<ds:KeyInfo>
<ds:X509Data>
**<ds:X509Certificate>blablabla
blablablablablablablabla
blablablablablablablabla
blablablablablablablabla</ds:X509Certificate>**
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
这是ssocircle的回应
**<ds:SignatureValue>
blablablablablablablabla
blablablablablablablabla
blablablablablablablabla
</ds:SignatureValue>**
<ds:KeyInfo>
<ds:X509Data>
**<ds:X509Certificate>
blablablablablablablabla
blablablablablablablabla
blablablablablablablabla
blablablablablablablabla
blablablablablablablabla
</ds:X509Certificate>**
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
这很大程度上取决于换行符和空格的位置。在您的情况下,换行符和空格位于断言签名的 SignInfo 部分,这不会影响断言的签名验证。但是,“响应没有任何可以通过主题验证的有效断言”对我来说似乎不是签名问题。这个问题提出了关于在哪里查看的更好想法:响应没有任何可以通过主题验证的有效断言