什么是单点登录
SSO(Single Sign On)是处理一个公司内的不同应用系统之间的登录问题,比如阿里巴巴旗下有很多应用系统,我们只需要登录一个系统就可以实现不同系统之间的跳转。
为了完成一个简单的SSO功能,需要两个部分的合作:
- 统一的身份认证服务。
- 每个应用都通过这个统一的认证服务来进行身份校验。
SSO 实现原则
1、所有的认证登录都在 SSO 认证中心进行;
2、SSO 认证中心通过一些方法来告诉 Web 应用当前访问用户究竟是不是已通过认证的用户;
3、SSO 认证中心和所有的 Web 应用建立一种信任关系,也就是说 web 应用必须信任认证中心。
SSO实现机制
sso-client
1、拦截子系统未登录用户请求,跳转至sso认证中心;
2、接收并存储sso认证中心发送的令牌;
3、与sso-server通信,校验令牌的有效性;
4、建立局部会话;
5、拦截用户注销请求,向sso认证中心发送注销请求;
6、接收sso认证中心发出的注销请求,销毁局部会话。
sso-server
1、验证用户的登录信息;
2、创建全局会话;
3、创建授权令牌;
4、与sso-client通信发送令牌;
5、校验sso-client令牌有效性;
6、系统注册;
7、接收sso-client注销请求,注销所有会话。
SSO实现方案
基于JWT
共享Session
基于OpenId
基于CAS