Single Sign On单点登录
单系统登录:用户登录时验证用户账号密码,将Token写入Cookie中;用户数据保存在session;请求时带上cookie,检查有没有登录。
多系统登录:为了合理利用资源和降低耦合性,将单系统拆分为多个子系统。单点登录就是在多个系统中用户只需登录一次,就可以访问所有相互信任的系统。
多系统登录问题:
1、 session不共享:Session信息(Token)存储在Redis中。
2、 Cookie跨域:A系统登录后返回给用户A的cookie,访问B系统时不会带此cookie。
解决方法:客户端对Cookie解析,提取Token,访问带Token或或保存token在SessionStroage中,不依赖cookie,;多个域名共享Cookie,设置Cookie的domain。
SSO体系中主要包括三部分:SSO认证中心、Web应用、User;其实现的基本核心原则是1、所有登录都在SSO认证中心进行;2、SSO认证中心通过一些方法告诉Web应用当前访问用户是不是已认证用户;3、SSO认证中心和所有的Web应用建立信任关系。
SSO登录具体流程:
只有一个独立的认证中心,只有认证中心才能接受用户的哦故名和密码等信息进行认证,其他系统不提供登录入口,值接受认证中心的间接授权。
间接授权通过令牌实现,当用户提供的用户名和密码通过SSO认证后,认证中心会创建授权令牌,在接下来的跳转过程中,授权令牌作为参数发送给各个子系统,子系统拿到令牌就即得到授权,然后创建局部会话。
- 用户访问子系统1的受保护资源,系统1发现未登录,重定向跳转至SSO认证中心,并将自己地址作为参数传递过去。
- SSO认证中心验证用户未登录,将用户引导至登录页面,用户输入用户名密码提交至SSO,SSO认证中心校验用户信息,创建此用户与SSO认证中心的Session即全局会话。同时创建授权令牌。
- SSO认证中心带着令牌重定向跳转至最初请求地址子系统1,令牌作为参数。
- 系统1拿到

本文详细介绍了SSO单点登录的概念、多系统登录问题及其解决方案,重点阐述了SSO登录和注销的具体流程。SSO认证中心在登录过程中创建授权令牌,各子系统通过令牌验证用户身份并创建局部会话,实现用户只需登录一次即可访问所有相互信任的系统。

343

被折叠的 条评论
为什么被折叠?



