Spring security Spring Security SAML扩展如何处理身份验证后的后续请求?

Spring security Spring Security SAML扩展如何处理身份验证后的后续请求?,spring-security,saml-2.0,spring-saml,Spring Security,Saml 2.0,Spring Saml,我正在为我的SP使用Spring Security SAML扩展。在从IDP对用户进行身份验证后,SP使用某种方法允许后续调用不必使用IDP进行重新身份验证。在SpringSecuritySAML扩展中如何实现这一点 一个相关问题: 在上述相关问题的已接受答案中,SP应创建一个令牌,并将其传递回客户端以供将来请求。当我在Chrome的网络工具中观看流量时,我没有看到类似的情况。我应该找什么 更新1:我的结论是Spring SAML不会以令牌的形式将任何内容传递回浏览器。它必须在服务器端跟踪用户

我正在为我的SP使用Spring Security SAML扩展。在从IDP对用户进行身份验证后,SP使用某种方法允许后续调用不必使用IDP进行重新身份验证。在SpringSecuritySAML扩展中如何实现这一点

一个相关问题:

在上述相关问题的已接受答案中,SP应创建一个令牌,并将其传递回客户端以供将来请求。当我在Chrome的网络工具中观看流量时,我没有看到类似的情况。我应该找什么


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

从IDP验证用户后,IDP向SP发回SAML断言。Spring Security SAML扩展验证此断言。
如果验证成功,Spring Security将建立一个用户会话,该会话通常通过cookie机制持久化


对于REST服务,您的建议基本上是在支持OAuth的REST服务上执行的操作。客户机随每个请求发送一个授权令牌。

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

如果您的用户正在通过验证的浏览器中调用REST API,并且该API与Spring安全应用程序一起部署,那么该调用将提供与正常服务器调用相同的cookie,并且将使用相同的机制对它们进行验证,而无需任何令牌


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

在断言验证完成后,我看到设置了太多cookie:JSSessionID和iPlanetDirectoryPro。第一个是一个常见的cookie,我可以看到,如果Spring SAML通过服务器端会话处理所有事情,就会使用它。iPlanetDirectoryPro是从IDP(OpenAM)设置的,因此它不是Spring SAML独占的。假设我在更新1中所说的是正确的,那么最终我要弄清楚的是,是否有办法让Spring SAML为REST调用提供一个令牌,这样每个请求就不必返回IDP。