2021-04-13

如何理解单点登录SSO

 

SSO字面意思:单点登录,就是在若干个有关联的系统间,只要在一个系统登录成功,那么在其他系统就可以实现免登陆,直接访问其他系统的功能。

SSO可以说是一种思路,一种方案,并不一定就是一个完整的系统,一个系统里面的接口方法也可以,只要能满足上述需求的方案均可以称之为SSO。

举3个场景。

1、单独出来的一个统一授权应用(统一授权门户系统),这种一般是对于大的平台而言才会使用这种,并且是在整个平台的架构规划阶段就已经确定了,这个平台上的多个子系统只提供功能(不对外开放),将授权认证服务均交给统一门户(对外开放)来认证,所有请求均需要经过统一门户进行校验。

 

2、账号是一对多----------两个系统之间(两个以上的系统同理),A系统提供SSO接口,并且向B系统提供加解密工具类,一般是通过链接带token的方式(aaaaaa.com?),token都是需要加密的,B系统接收到token参数后,使用A系统提供的加解密工具解密后得到固定用户的唯一标识(身份证号、J号等等),这种情况无论A系统用什么账号登陆,单点到B系统都是固定的同一个账号,不需要打通两个系统之间用户体系。

 

3、账号是多对多----------两个系统(两个以上的系统同理),A系统提供SSO接口,并且向B系统提供加解密工具类,一般是通过链接带token的方式(aaaaaa.com?),token都是需要加密的,B系统接收到token参数后,使用A系统提供的加解密工具解密后得到不同对应用户的唯一标识(身份证号、J号等等),这种情况需要两个系统之间用户体系进行协商,比如共同约定身份证为唯一标识。

 

极端情况:就两个简单的系统,A提供SSO的接口,B接入,虽然规模上比不上单独的统一授权系统来把控,但登录A系统的用户想访问B系统的时候,不需要再次进入B系统的登录界面,既可访问B系统所提供的功能,同样实现了SSO的思路,那么这种非常简单的方案它也可以称之为SSO。

 

个人理解,仅供参考。

上一篇:springboot + springsecurity + cas学习笔记(二)—— CAS认证原理


下一篇:Start SSO: Token or JWT