Spring SAML:如何将请求的URL作为RELAY_STATE推送到SAML?

时间:2016-10-03 22:35:49

标签: saml spring-saml okta

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

您可以在Spring Security中为这两个页面设置公共loginURL。

我使用Spring SAML。它aal

  1. Spring Security:一旦用户尝试获取/folderA/folderB,他们就会被重定向到" local" LoginURL首先(domain.com/auth)。
  2. Spring SAML:LoginURL页面(domain.com/auth)会将用户重定向到远程SAML SSO提供程序(例如,myapp.okta.com)。端点在metadata.xml中指定。
  3. SAML SSO提供商将用户重定向到SSO网址(在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)

中检索它

1 个答案:

答案 0 :(得分: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。您可以使用登录标签上的单点登录 - >查看安装说明并向RelayState中传递的请求发出GET请求。这将启动带你转发状态。