我需要通过子应用程序的登录过程并从主应用程序传递会话ID和访问令牌。
用户访问应用程序1:
应用程序1需要用户登录,因此它通过反向通道向auth服务器发送令牌。
然后,应用程序1将用户重定向到auth服务器上的登录页面,并将令牌作为请求的参数。
用户登录auth服务器。 Auth服务器设置cookie,将令牌标记为已验证,并将用户详细信息与其关联。然后,Auth服务器将用户重定向回应用程序1.
4.Application 1从用户获取请求并通过反向通道调用auth服务器以检查令牌是否正常。使用用户详细信息验证服务器响应。
5.Application 1现在知道用户已获得授权并具有一些基本的用户详细信息。
现在这是SSO位的来源。
用户访问应用程序2.
2.然后,应用程序2将用户重定向到auth服务器上的登录页面,并将令牌作为请求的参数。
3.Auth服务器发现cookie中存在有效的登录,因此它可以告诉用户已经过身份验证,并知道他们是谁。 Auth服务器将令牌标记为已验证,并将用户详细信息与其关联。然后,Auth服务器将用户重定向回应用程序2.
4.Application 2从用户获取请求并通过反向通道调用auth服务器以检查令牌是否正常。使用用户详细信息验证服务器响应。
5.Application 2现在知道用户已获得授权并具有一些基本的用户详细信息。
注意: 该方法存在一些现有的实现,例如CAS(中央认证服务)。请注意,Spring Security支持开箱即用的CAS。 。我在问题中简化了一些内容,如果你不熟悉这个问题,就有很多可能引入安全漏洞。