0

我们使用 mod_auth_mellon 配置了我们的 SPA,并且 SP 启动的设置运行良好。我们现在想要添加动态路由到发起 SSO SAML 调用的 SPA URL 的功能。

下面是当前流程

  1. 用户打开 URL http://foo.com/user/1
  2. 会话已过期,因此 SP 发起 SSO 握手并将用户重定向到 IDP(Ping Federate)。
  3. 用户在 IDP 上登录并在成功验证后重定向到http://foo.com/sso_callback

在步骤(3)中,我们现在想要重定向回http://foo.com/user/1。我应该在 SP / IDP 配置中进行哪些配置更改以启用动态路由?

4

1 回答 1

0

如果您使用的是 SAML 2.0,那么您想使用 RelayState。在步骤 2 中创建 AuthN 请求时,您需要确保作为服务提供者的您包含所需的 RelayState。您为 RelayState 提供给 IDP 的值将通过交易进行,并在用户向您的 ACS @ http://foo.com/user发帖时作为第 3 步中的 URL 参数返回给您

这是一个示例流程:

  1. 用户打开 URL http://foo.com/user/1
  2. 会话已过期,因此 SP 使用 AuthN 令牌和http://foo.com/user/1的 RelayState 值将用户重定向到 IDP
  3. IDP 对用户进行身份验证
  4. IDP 指示用户将 SAMLResponse 令牌发布到 SP ACS @ http://foo.com/sso_callback,并且还包括 RelayState 的附加 URL 参数
  5. SP 在 ACS 使用并验证 SAMLResponse,如果成功,则将现在活动的会话用户重定向到 RelayState 参数中包含的值

如果您没有执行 SP 初始化 SSO 而是执行从 PingFederate 到 IDP 启动的 SSO Url 的通用重定向,您可以将 url 参数 TargetResource 添加到您的 IDP 启动的 SSO 重定向,然后稍后将其与 SAMLResponse 一起接收。

于 2017-10-20T19:43:49.390 回答