是什么导致 SAML 响应中的 Responder 状态
What causes a Responder status in a SAML response
我花了很多时间来设置与使用我们平台的客户端的 SAML 集成。我们使用 OneLogin's php sdk 作为服务提供者。不确定他们使用什么作为身份提供者,或者它是否是自定义的。
似乎无论我们做什么,我们从他们那里收到的 AuthN 响应的状态都是:urn:oasis:names:tc:SAML:2.0:status:Responder
当我读到它时 here,这意味着他们那边有问题(我们不知道是什么)。相当于 php.
中的 500 状态
与我一起工作的人确定这是配置不匹配的问题。他们要么没有提供正确的声明,要么没有签署我们要求他们签署的部分,等等。
但如果是这样的话...他们不会仍然向我们发送状态为成功的回复吗?如果他们没有正确签名,我们 我们 方可能会出错。但我不希望收到他们的 'Responder' 状态。
任何人都可以确认我的假设是正确的或者让我直截了当我错了吗?
是的,你是对的。在消息到达您身边之前,您不会注意到这两个错误。这是另外一回事,在他们身边查看日志应该不是不可能的。
一般来说,在大多数情况下,问题是由于签名算法不匹配造成的。在我们的例子中,我们使用 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)
我花了很多时间来设置与使用我们平台的客户端的 SAML 集成。我们使用 OneLogin's php sdk 作为服务提供者。不确定他们使用什么作为身份提供者,或者它是否是自定义的。
似乎无论我们做什么,我们从他们那里收到的 AuthN 响应的状态都是:urn:oasis:names:tc:SAML:2.0:status:Responder
当我读到它时 here,这意味着他们那边有问题(我们不知道是什么)。相当于 php.
中的 500 状态与我一起工作的人确定这是配置不匹配的问题。他们要么没有提供正确的声明,要么没有签署我们要求他们签署的部分,等等。
但如果是这样的话...他们不会仍然向我们发送状态为成功的回复吗?如果他们没有正确签名,我们 我们 方可能会出错。但我不希望收到他们的 'Responder' 状态。
任何人都可以确认我的假设是正确的或者让我直截了当我错了吗?
是的,你是对的。在消息到达您身边之前,您不会注意到这两个错误。这是另外一回事,在他们身边查看日志应该不是不可能的。
一般来说,在大多数情况下,问题是由于签名算法不匹配造成的。在我们的例子中,我们使用 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)