在请求标头中检索 SAML 断言属性的问题

Posted

技术标签:

【中文标题】在请求标头中检索 SAML 断言属性的问题【英文标题】:Issue with Retrieving SAML Assertion attributes in request header 【发布时间】:2014-03-19 06:17:35 【问题描述】:

我正在尝试使用 openSSO 实现基于 SAML 的 SP 发起的单点登录。发布在 IdP 端验证的身份验证请求,它通过发布重定向将 SAMLResponse 传递到 spAssertionConsumer.jsp 到 SP。到目前为止,我收到了 SAML 响应。当我们使用 Sun Java System Web Server 时,我已经安装了相应的策略代理,并且在会话属性处理中我也映射了所需的属性。

我已经提到中继状态 URL 作为我的应用程序 URL,它是一个独立于已安装 openSSO 的域。当响应从 openSSO 重定向到我们的应用程序时,我没有在请求标头或 Cookie 中获得任何 SAML 断言属性。

我不确定这里可能出了什么问题> 如果有人对此提供一些澄清,它非常有帮助。谢谢。

【问题讨论】:

我想确保我理解 - AuthenticationRequest 或响应没有问题...问题是将断言的属性从 OpenSSO 传递到您的应用程序 - 并且应用程序位于与 OpenSSO 服务器(例如 opensso._john_.com)分开的域(例如 application._bob_.com)。这是正确的吗? 【参考方案1】:

为了调试 de SAML 流程,我建议您使用 [SAML Tracer plugin for firefox][1]

有很多事情可能会失败。检查 IdP 是否正在发送 SUCCESS 状态,响应的断言是否具有预期的属性,检查响应是否有效,检查是否存在任何 SP 无法处理的符号或加密

如果没有检测到错误的数据,我建议您在 openSSO 的域下创建一个基本应用程序并检查此应用程序是否检索属性,因为可能发生的其他问题是您最终的应用程序没有获得应有的属性无法读取 OpenSSO 存储的会话。

通常,SP 软件位于最终软件的同一台机器上以便共享会话...但您可以将会话存储在 OpenSSO 上的共享 memcached 服务器上,最终应用程序可以访问该服务器

[1]https://addons.mozilla.org/es/firefox/addon/saml-tracer/

【讨论】:

以上是关于在请求标头中检索 SAML 断言属性的问题的主要内容,如果未能解决你的问题,请参考以下文章

用于断言的 SAML 2.0 格式属性 - 联合身份

Spring SAML WSO2 刷新断言

有没有办法过滤/避免 keycloak SAML 断言中的重复属性名称?

Spring Security SAML 扩展和@PreAuthorize

请求的资源 SAML 联合上不存在“Access-Control-Allow-Origin”标头

标头传输编码:分块并请求为空