Azure B2C SAML 2.0 注销中 SamlResponse 的格式是什么 url

What is the format of the SamlResponse in the Azure B2C SAML 2.0 logout url

我正在尝试将我的 SAML 2.0 服务集成到 Azure B2C 中。我们已经成功地单点登录,但是我们无法让单点注销完全正常工作。

我们已将问题缩小到我们的服务未正确处理注销响应,特别是 B2C 调用的 URL 未按我们预期的方式格式化。对于我们集成的其他身份提供者(OKTA、ADFS 2.0),他们在注销成功时调用的 URL 类似于:

https://my-service.com/logout?SAMLResponse=<samlResponse>&RelayState=<relayState>

其中 samlResponse 是 base64 编码的 XML SAML 注销响应,我们随后会对其进行处理、验证等。

Azure B2C 进行如下调用:

https://my-service.com/logout?SAMLResponse=<samlResponse>&SigAlg=http://www.w3.org/2000/09/xmldsig#rsa-sha1&Signature=<signature>

其中 samlResponse 不是立即可以解码为 XML SAML 注销响应的 base64 编码字符串,从而导致我们服务的验证过程出现问题。我的问题是 samlResponse 是什么类型的字符串,我需要对它做什么才能检查 XML SAML 注销响应。

我绝不是 SAML 2.0 的专家,所以如果这个问题非常明显,我很抱歉 :)

好的,事实证明这是我对 SAML 不够了解,与 Azure B2C 行为无关。 B2C 使用 "Redirect" 绑定来注销,而不是 POST。对于重定向绑定,响应的发送方式略有不同。它经过 gzip 压缩以及 base64 编码 + url 编码。

正是这个 post 帮助我解决了这个问题