【问题标题】:SAML2 Single Logout, where to post responses to?SAML2 单点注销,在哪里发布回复?
【发布时间】:2017-06-12 18:16:09
【问题描述】:

我对请求/响应在 SAML2 单次注销中的位置感到有点困惑。

对于单点登录,IDP 上有一个端点来接收请求,SP 上有一个端点来接收响应。所以每个端点只服务一个目的。

但是,单次注销可以同时触发 SP 和 IDP,但我总是看到只有 1 个使用 IDP 和 SP 定义的端点。这是否意味着请求和响应都必须到达同一个端点?因此,要知道它是请求还是响应,IDP 或 SP 需要查看它接收到的 XML?

【问题讨论】:

标签: single-sign-on saml saml-2.0


【解决方案1】:

在 SAML 2.0 标准 doc reference 中有一个所谓的Single Logout profile

在第32页的4.4 Single Logout Profile中,详细说明了如下流程:

  1. <LogoutRequest> 会话参与者向身份提供者发出
  2. 身份提供者确定会话参与者
  3. <LogoutRequest> 由身份提供者向会话参与者/权威机构发出
  4. Session Participant/Authority issue <LogoutResponse> 给身份提供者
  5. 身份提供者向会话参与者发出<LogoutResponse>

SLO 的基本流程如下所示:

PingFederate SLO implementationPortalGuard article 中更详细的说明,您可以看到 SP 发起的 SLO 和 IdP 发起的 SLO 的区别只是是谁发出了 <LogoutRequest> 和收到 <LogoutResponse> 后,谁负责向最终用户显示注销页面。

希望这能解决您的问题。

【讨论】:

  • 谢谢,但这基本上已经在问题中了。我的问题是注销请求和响应是否都进入“单一注销服务”端点。您链接的文档对此进行了一些讨论:The same or different endpoints MAY be used for requests and responses. 但这是否意味着您可以指定用于请求的端点以及用于响应的端点?如果是,怎么做?
  • 我对该行的理解是,如果您有一个联合服务器同时充当 IdP 和 SP,那么 SL​​O 端点将是相同的。否则,如果是异构部署,那么端点就会不同。此外,SLO 端点也是 SSO 设置的元数据。
  • 是的,但是元数据中的 SLO 端点是什么? AFAIK,saml 规范只提到:'SingleLogoutService'。因此,如果您的元数据中有:<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://example.com/slo"/> 是否同时用于请求和响应?然后由端点检查 XML 并确定要发送的内容吗?
  • @Seba,是的,根据您的角色,<SingleLogoutService> 将在<IDPSSODescriptor><SPSSODescriptor> 下指定。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-19
  • 2020-06-24
  • 1970-01-01
  • 2017-08-21
相关资源
最近更新 更多