我正在为我的SP使用Spring Security SAML扩展程序。在从IDP对用户进行身份验证之后,SP使用某种方法来允许后续调用不必使用IDP重新进行身份验证。这是如何在Spring Security SAML扩展中完成的?
相关问题: Authenticating mobile users against SAML IDP
在上述相关问题的接受答案中,SP应创建一个令牌并将其传递回客户端以供将来请求使用。在Chrome网络工具中观看流程时,我没有看到这样的内容。我应该寻找什么?
更新1 :我得出的结论是,Spring SAML没有以令牌的形式将任何内容传回浏览器。它必须跟踪服务器端的用户。我可以得到确认吗?在REST调用的情况下,是否可以生成令牌以传递回客户端?
答案 0 :(得分:3)
Spring SAML正在使用Spring Security中继处理用户的身份验证状态。默认情况下,用户状态存储在SecurityContext
和Authentication
对象中,这些对象被放入用户的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服务上完成的操作。客户端发送每个请求的授权令牌。