【问题标题】:Spring SAML: how to push the requested URL to SAML as RELAY_STATE?Spring SAML:如何将请求的 URL 作为 RELAY_STATE 推送到 SAML?
【发布时间】:2017-02-11 23:31:19
【问题描述】:

例如,您的网站上有两个不同的文件夹,/folderA 和 /folderB

您可以在 Spring Security 中为这两个页面设置通用的 loginURL。

我使用 Spring SAML。真棒

  1. Spring Security:一旦用户尝试获取/folderA/folderB,他们将首先被重定向到“本地”登录URL(domain.com/auth)。
  2. Spring SAML:LoginURL 页面 (domain.com/auth) 会将用户重定向到远程 SAML SSO 提供程序(例如,myapp.okta.com)。端点在 metadata.xml 中指定。
  3. SAML SSO 提供程序将用户重定向到 SSO url(在 OKTA 中配置,假设为 sso.domain.com/auth/sso)。
  4. 我想在 SSO 控制器 (sso.domain.com/auth/sso) 中使用原始请求的 URL(在本例中为 /folderA 或 /folder)。我想让逻辑依赖于请求的 URL。

所以我的问题是

如何使用 Spring SAML 将这些文件夹 URL 注入到 SAML SSO Provider 的请求中? 我知道如何在没有 Spring SAML 的情况下实现它。所以我正在寻找如何为其配置 Spring SAML。

我认为RELAY_STATE 用于它。但我不明白如何在步骤 (1) 和/或 (2) 中检索它

【问题讨论】:

    标签: saml spring-saml okta


    【解决方案1】:

    中继状态作为查询参数与 SAMLRequest 一起传递。传递中继状态取决于您使用的工具包,因此您需要查看他们的文档以了解如何完成。我在网上找到了这个有用的线程http://forum.spring.io/forum/spring-projects/security/saml/125415-spring-saml-integration-authentication-extended-info-relaystate

    此外,一旦通过 SAML 建立会话,您就可以点击此链接(在这种情况下,您可以跳过传递会话令牌)http://developer.okta.com/use_cases/authentication/session_cookie#initiate-a-saml-sso-with-the-session-token。您可以使用 Sign on Tab -> View Setup instructions 中的单点登录 url,并对传入 RelayState 的请求发出 GET 请求。这将启动带您进入中继状态。

    【讨论】:

      猜你喜欢
      • 2015-05-29
      • 2015-09-27
      • 2011-12-11
      • 2018-01-24
      • 1970-01-01
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      • 2020-02-26
      相关资源
      最近更新 更多