单点登录系统记录

单点登录从单系统登录说起:
http请求是无状态的,怎么在服务端保持登录状态?需要引入session机制,也就会话,通过tcp/ip三次握手机制,发送请求到达服务器,服务端生成一个sessionId返回给浏览器,并且会校验用户名密码正确与否,浏览器缓存到cookie,再次发送请求会带上这个sessionId,服务器接收到sessionId就可以确认是否是同一个用户,判断isLogin状态。

但是对于多系统而言,这种方法就不灵了,因为浏览器发送请求会自动带上跟域名匹配的cookie,而不是所有的cookie。所以引出了单点登录:
单点登录(Single Sign on)sso,相比于单系统登录需要一个独立的认证中心,只有认证中心接收用户名密码等安全信息,其他子系统不再提登录入口而是只接收认证中心的授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没问题,创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌,即得到了授权,可以借此创建局部会话,局部会话登录方式与单系统的登录方式相同。
用户登录成功之后,会与sso认证中心及各个子系统建立会话,用户与sso认证中心建立的会话称为全局会话,用户与各个子系统建立的会话称为局部会话,局部会话建立之后,用户访问子系统受保护资源将不再通过sso认证中心。

参考:单点登录原理与简单实现

猜你喜欢

转载自blog.csdn.net/chang_li/article/details/81044197