如何使用带有Spring Security的oAuth2实现单点登录(SSO)?

时间:2016-09-02 07:37:31

标签: java spring spring-security spring-boot oauth-2.0

我需要通过子应用程序的登录过程并从主应用程序传递会话ID和访问令牌。

用户访问应用程序1:

  1. 应用程序1需要用户登录,因此它通过反向通道向auth服务器发送令牌。

  2. 然后,应用程序1将用户重定向到auth服务器上的登录页面,并将令牌作为请求的参数。

  3. 用户登录auth服务器。 Auth服务器设置cookie,将令牌标记为已验证,并将用户详细信息与其关联。然后,Auth服务器将用户重定向回应用程序1.

  4. 4.Application 1从用户获取请求并通过反向通道调用auth服务器以检查令牌是否正常。使用用户详细信息验证服务器响应。

    5.Application 1现在知道用户已获得授权并具有一些基本的用户详细信息。

    现在这是SSO位的来源。

    用户访问应用程序2.

    1. 应用程序2需要用户登录,因此它通过反向通道向auth服务器发送令牌。
    2. 2.然后,应用程序2将用户重定向到auth服务器上的登录页面,并将令牌作为请求的参数。

      3.Auth服务器发现cookie中存在有效的登录,因此它可以告诉用户已经过身份验证,并知道他们是谁。 Auth服务器将令牌标记为已验证,并将用户详细信息与其关联。然后,Auth服务器将用户重定向回应用程序2.

      4.Application 2从用户获取请求并通过反向通道调用auth服务器以检查令牌是否正常。使用用户详细信息验证服务器响应。

      5.Application 2现在知道用户已获得授权并具有一些基本的用户详细信息。

      注意: 该方法存在一些现有的实现,例如CAS(中央认证服务)。请注意,Spring Security支持开箱即用的CAS。 。我在问题中简化了一些内容,如果你不熟悉这个问题,就有很多可能引入安全漏洞。

0 个答案:

没有答案