什么原因导致SAML响应中的响应者状态

时间:2017-09-28 18:44:08

标签: php saml saml-2.0 onelogin

我有很长时间使用我们的平台与客户端建立SAML集成。我们在最后使用OneLogin's php sdk作为服务提供商。不确定他们作为身份提供者使用的是什么,或者是否是自定义的。

无论我们做什么,我们从他们那里收到的AuthN响应都具有以下状态:urn:oasis:names:tc:SAML:2.0:status:Responder

当我读到here时,所有这些意味着他们身边存在一个问题(我们不知道是什么)。在PHP中相当于500状态的排序。

我正在与他们合作的人肯定这是配置不匹配的问题。要么他们没有提供正确的索赔,要么没有签署我们要求他们签署的部分等。

但如果是这样的话......他们不会给我们发送成功状态的回复吗?如果他们没有正确签名,我们可能会在我们的方面收到错误。但我不希望从他们那里收到“回应者”身份。

任何人都可以证实我做出了正确的假设,或者让我直截了当地说我错了吗?

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

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

相关问题