单点登录实现原理笔记

 

一.单系统登录机制
1.http 为无状态请求 每次请求之间没有关联
2.要鉴别浏览器请求,需服务器和浏览器共同维护一个状态,即会话机制
2-1.浏览器第一次请求,服务器创建一个会话id,返回浏览器存储,以后每次请求都带上会话id
2-2.浏览器保存会话id方式:1-cookie 存储少量key/value数据,发送http请求时自动附带
2-3.tomcat中的cookie,名为JSESSIONID
3.登录状态,tomcat服务器通过session setAttribute 设置 getAttribute 查看登录状态

二.多系统的复杂性
1.当由单系统变为多系统的时候,用户也应只登录一次就可访问多个系统
2.cookie的限制在于域,通常对应网站的域名,不同系统网站有不同的域
3.使用一个顶级域名不可避免不同语音实现的后台系统之间的登录问题

三.单点登录 Single Sign On (SSO)
1.sso需要单独的认证中心提供登录认证,其他系统不提供
2.间接授权通过令牌实现
3.单个系统登录状态判断依然使用cookie、session
3-1.验证用户未登录,携带自身地址跳转sso认证中心
3-2.sso认证中心通过session判断用户未登录,跳转至登录界面
3-3.验证用户名和密码,成功后session设置为登录状态
3-4.创建授权令牌,他是随机字符串,不重复不易伪造即可,可用uuid生成
3-5.携带令牌跳转回子系统
3-6.子系统通过令牌去验证,验证成功将令牌与地址存入数据库(redis)中,之后注销时使用
3-7.用户注销,跳转至sso系统注销,sso要有一个全局会话监听器,向所有子系统发送注销请求
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章