Spring Security SAML 扩展如何处理认证后的后续请求?

How does Spring Security SAML extension handle subsequent requests after authentication?

我正在为我的 SP 使用 Spring 安全 SAML 扩展。用户通过 IDP 身份验证后,SP 使用某种方法允许后续调用不必通过 IDP 重新进行身份验证。在 Spring 安全 SAML 扩展中这是如何完成的?

相关问题: Authenticating mobile users against SAML IDP

在上述相关问题的接受答案中,SP 应创建一个令牌并将其传回客户端以供将来请求使用。在 Chrome 的网络工具中观察流程时,我没有看到类似的东西。我应该寻找什么?

更新 1:我得出的结论是 Spring SAML 不会以令牌的形式将任何内容传回浏览器。它必须在服务器端跟踪用户。我可以得到确认吗?在 REST 调用的情况下是否可以生成令牌传回客户端?

用户通过 IDP 的身份验证后,IDP 向 SP 发回 SAML 断言。 Spring 安全 SAML 扩展验证了这一断言。
如果验证成功,Spring安全建立用户会话,一般通过cookie机制持久化。

在 REST 服务的情况下,您的建议基本上是在支持 OAuth 的 REST 服务上所做的。客户端随每个请求发送一个授权令牌。

Spring SAML 依靠 Spring 安全来处理用户的身份验证状态。默认情况下,用户状态存储在 SecurityContextAuthentication 对象中,这些对象被放入用户的 HTTP 会话(由传递给浏览器的安全 cookie 通常是 JSESSIONID 标识)。您可以在 Spring 安全文档中找到与此相关的所有详细信息。

如果您的用户从她进行身份验证的浏览器调用 REST APIs,并且 API 与 Spring 安全应用程序一起部署,该调用将提供相同的cookie 就像您从普通服务器调用中获得的那样,它们将使用相同的机制进行身份验证,无需任何令牌。

如果您想在尚未建立会话或使用其他方式进行身份验证的情况下执行对第 3 方 REST API 的调用,一种保护此类场景的方法是例如发行和使用 OAuth 2.0 Bearer 令牌。