我有很长时间使用我们的平台与客户端建立SAML集成。我们在最后使用OneLogin's php sdk作为服务提供商。不确定他们作为身份提供者使用的是什么,或者是否是自定义的。
无论我们做什么,我们从他们那里收到的AuthN响应都具有以下状态:urn:oasis:names:tc:SAML:2.0:status:Responder
当我读到here时,所有这些意味着他们身边存在一个问题(我们不知道是什么)。在PHP中相当于500状态的排序。
我正在与他们合作的人肯定这是配置不匹配的问题。要么他们没有提供正确的索赔,要么没有签署我们要求他们签署的部分等。
但如果是这样的话......他们不会给我们发送成功状态的回复吗?如果他们没有正确签名,我们可能会在我们的方面收到错误。但我不希望从他们那里收到“回应者”身份。
任何人都可以证实我做出了正确的假设,或者让我直截了当地说我错了吗?
答案 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)
是的,你是对的。在消息到达您的身边之前,不会注意到这两个错误。这是别的东西,不应该找到他们身边的日志。