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

时间:2015-04-17 16:11:46

标签: spring-security saml-2.0 spring-saml

我正在为我的SP使用Spring Security SAML扩展程序。在从IDP对用户进行身份验证之后,SP使用某种方法来允许后续调用不必使用IDP重新进行身份验证。这是如何在Spring Security SAML扩展中完成的?

相关问题: Authenticating mobile users against SAML IDP

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

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

2 个答案:

答案 0 :(得分:3)

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

如果您的用户从经过身份验证的浏览器调用REST API,并且API与Spring Security应用程序一起部署,则调用将提供与正常服务器调用相同的Cookie,并且将使用它们进行身份验证相同的机制,无需任何令牌。

如果您要对尚未建立会话或使用其他方式进行身份验证的第三方REST API执行调用,则可以采用一种方法来保护此类方案。发布并使用OAuth 2.0承载令牌。

答案 1 :(得分:0)

用户从IDP进行身份验证后,IDP会向SP发回SAML断言。 Spring Security SAML扩展验证了这一断言 如果验证成功,Spring Security将建立一个用户会话,该会话通常通过cookie机制保持。

对于REST服务,您的建议基本上是在启用OAuth的REST服务上完成的操作。客户端发送每个请求的授权令牌。