【发布时间】:2011-06-20 12:43:07
【问题描述】:
我已经使用 HTTP POST 协议绑定按照 Web SSO 的 SAML 配置文件实现了我的服务提供者和识别提供者。但是,如果来自服务提供者的 HTTP POST 未绑定到身份提供者上的会话,那么身份提供者将如何提供 <AuthnStatement> 我有点困惑。
有人能告诉我如何做到这一点吗?
我可以使用的另一种方法是 HTTP 重定向绑定,但这需要 User-Agent 干预(即浏览器),通常使用 User-Agent 作为传递中介来促进请求-响应消息交换.出于这个原因,我宁愿使用 HTTP POST,因为消息交换发生在服务器端,所以用户在他们的屏幕上看不到任何事情发生。
但是,就如何将会话绑定到请求而言,使用 HTTP 重定向对我来说更有意义。由于 HTTP 重定向是通过 User-Agent 促进的,因此对 IdP 的请求将具有会话(如果之前已通过身份验证)。 我不明白如何在 HTTP 重定向上发送 由 JST 回答<AuthnRequest>。
所以我有点困惑,很想听听其他人在做什么。这是我的问题:
- 使用带有
IsPassive选项和<AuthnRequest>的HTTP POST 协议绑定,如何将服务提供者发出的请求绑定到身份提供者上的会话?换句话说,如果 POST 来自技术上是匿名会话的服务提供者,身份提供者如何知道是谁发出请求? -
使用 HTTP 重定向协议绑定,如果我使用 HTTP 重定向,如何向身份提供者发送由 JST 回答<AuthnRequest>?
更新
如果我在上面的解释中不清楚,请原谅我的困惑。我正在实现 IdP 和 SP(通过插件)。 IdP 是我希望 SP(第三方系统)用于身份验证(即 Web SSO)的现有应用程序。我目前正在开发一个简单的 PoC。 SP 实际上是一个第三方 Spring 应用程序,我正在为其开发一个插件来执行 SAML 操作。
我应该提到我正在尝试使用IsPassive 选项来执行此操作,这意味着用户代理在消息交换期间不会发挥作用。它只是启动 SAML 派对的催化剂。正确的?考虑到这一点,假设用户在第 1 步是匿名的,SP 向 IdP 发送什么以允许 IdP 确定用户是否已通过身份验证?由于 IsPassive,HTTP POST 不会通过 User-Agent 发送
更新
问题 1 已修订:当 AuthnRequset 发送并启用 IsPassive 选项时,IdP 如何解析 Principal?
直接来自 SAML 2.0 Profiles 文档,第 15 页,第 417 到 419 行:
在第 4 步中,确定主体 通过身份通过某种方式提供 超出此配置文件的范围。
我真正想要的是解释如何实现some means。
【问题讨论】:
-
Ian 和 JST,感谢您的帮助,我得到了它的帮助。现在的问题是:我应该把 CHECKMARK 给谁?!我将再次审查您的两个答案,希望我能得出一个公平的结论。与此同时,我对你们两人迄今为止发布的每一个答案和评论都投了赞成票。
标签: redirect http-post saml post-redirect-get