描述

要求:
1、所有子系统共享一个认证系统
2、所有子系统能够识别和提取token信息

其实就是一个登录,一个认证。

假设用到的组件信息如表:

名称

地址

备注

sso认证中心

http://www.sso.com/login # sso登录页面

http://www.sso.com/get # sso提供的验证token的接口


a系统

http://a.test.com # a_url


b系统

http://b.test.com # b_url


过程

首次访问a系统,这时候肯定没有session,请求sso_url并带上a_url便于回调
请求 ​​​http://www.sso.com/login?callback_url=http://a.test.com​​​ sso认证系统进行登录,成功后,回调a系统的地址并带上token
请求 ​​http://a.test.com?token=1234​​ a系统去认证中心认证,获取到返回信息,a系统登录成功
​http://www.sso.com/get?token=1234​​ 然后访问b系统,也去认证中心认证,认证通过,b系统登录成功

对于不同域名之间的单点登录

多个域名之间的单点登录有个问题,就是如何确定是某个用户。 因为浏览器跳转到的时候不会自动带cookie。

方案:
需要所有子系统共享一个cookie。