继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

SSO学习笔记--不想弯着腰,就得耐心学

尘瀚
关注TA
已关注
手记 7
粉丝 20
获赞 175

1.单web应用登录
A.认证(Authentication)
B.授权(Authorization)
C.建立会话 服务器提供session机制,浏览器提供coockie极值
D.后续请求服务器进行登录状态判断
E.取消会话
2.SSO基本实现
将每个系统的认证工作抽象出来,放到单独的服务应用中去处理。
3.SSO流程
step1 登录信息的传递
A.用户首次登录时的流程
1)用户首次访问A系统登录受限资源
2)系统A发现该请求需要登录,将请求重定向到认证中心,进行登录
3)认证中心提供登录界面,登录成功后,重定向到A系统,并附上认证通过令牌
4)系统A与认证中心通信,验证令牌有效,证明用户已登录
5)系统将受限资源返回给用户
B.已登录用户首次访问应用群中其他系统
1)用户首次访问B系统中登录受限资源
2)系统B发现该请求需要登录,将请求重定向到人中中心,进行登录
3)认证中心发现已登录,重定向到系统B,并附上认证通过令牌
4)系统B跟认证中心通信,验证令牌有效,证明用户已登录
5)系统B将受限资源返回给用户

step2 登录状态的判断
用户在认证中心登录后,用户跟认证中心之间建立了一个会话,把这个会话称为全局会话。当
用户后续范围系统应用的时候,不可能每次都去认证中心判定是否登录,这样效率非常低下。所以
在系统应用跟用户浏览器之间建立了局部会话。
局部会话保留了客户端跟该应用的登录状态,局部会话依赖于全局会话,全局会话消失局会话
必须消失。
用户登录的时候,首先判断局部会话是否存在,如存在,认为是登录状态,无需去认证中心判
断,如不存在则去认证中心判断全局会话是否存在,如存在则通知该应用,并与客户端建立局部会
话。

Step3 登出问题
用户在一个系统中登出了,访问子系统,其他系统也应该是登出状态。想做到这一点,应用除
了结束局部会话外,还应该去认证中心将该用户登出。认证中心接到通知,结束全局会话,并通知
各子系统结束局部会话。这样用户访问其他系统时显示也是登出状态。

参考:http://www.imooc.com/article/3564

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP