导致 SAML 响应中出现响应者状态的原因

问题描述 投票:0回答:2

我在使用我们的平台与客户设置 SAML 集成方面花费了相当长的时间。我们使用 OneLogin 的 php sdk 作为服务提供商。不确定他们使用什么作为身份提供商,或者它是否是自定义的。

似乎无论我们做什么,我们从他们那里收到的 AuthN 响应的状态都是:

urn:oasis:names:tc:SAML:2.0:status:Responder

当我在here读到它时,这意味着他们这边存在问题(我们不知道是什么)。相当于 php 中的 500 状态。

与我一起工作的人确信这是配置不匹配的问题。要么他们没有提供正确的声明,要么没有签署我们要求他们签署的部分,等等。

但是如果是这样的话...他们不会仍然向我们发送成功状态的响应吗?如果他们没有正确签名,我们的我们的方面可能会收到错误。但我没想到会收到他们的“响应者”状态。

任何人都可以确认我做出了正确的假设或纠正我的错误吗?

php saml saml-2.0 onelogin
2个回答
2
投票

是的,你是对的。在消息到达您这边之前,这两个错误不会被注意到。这是别的东西,通过查看他们身边的日志应该不是不可能找到的。


2
投票

一般情况下,大多数情况是由于签名算法不匹配造成的。在我们的示例中,我们使用 Spring SAML,并且 Spring SAML 默认使用 SHA-1,而 IDP 使用不同的签名算法 (SHA-256)。因此,由于算法不匹配,我们也收到了相同的响应

urn:oasis:names:tc:SAML:2.0:status:Responder, status message is null
,并且您用于与 IDP 集成的其他库也可能会发生同样的情况。

以下是 Spring SAML 安全性的异常跟踪。

Caused by: org.opensaml.common.SAMLException: Response has invalid status code urn:oasis:names:tc:SAML:2.0:status:Responder, status message is null
org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse(WebSSOProfileConsumerImpl.java:113)
at org.springframework.security.saml.SAMLAuthenticationProvider.authenticate(SAMLAuthenticationProvider.java:82)
© www.soinside.com 2019 - 2024. All rights reserved.