SSO(单点登录)实现⽅案
⼀、单点登录概述
单点登录的英⽂名称为Single Sign-On,简写为SSO,它是⼀个⽤户认证的过程,允许⽤户⼀次性进⾏认证之后,就访问系统中不同的应⽤;⽽不需要访问每个应⽤时,都重新输⼊密码。IBM对SSO有⼀个形象的解释“单点登录、全⽹漫游”。
SSO将⼀个企业内部所有域中的⽤户登录和⽤户帐号管理集中到⼀起,SSO的好处显⽽易见:
1. 减少⽤户在不同系统中登录耗费的时间,减少⽤户登录出错的可能性
2. 实现安全的同时避免了处理和保存多套系统⽤户的认证信息
3. 减少了系统管理员增加、删除⽤户和修改⽤户权限的时间
4. 增加了安全性:系统管理员有了更好的⽅法管理⽤户,包括可以通过直接禁⽌和删除⽤户来取消该⽤户对所有系统资源的访问权限
缺点:
1.不利于重构
因为涉及到的系统很多,要重构必须要兼容所有的系统,可能很耗时。
2. ⽆⼈看守桌⾯
因为只需要登录⼀次,所有的授权的应⽤系统都可以访问,可能导致⼀些很重要的信息泄露
⼆、单点登录的实现⽅案
1.流程图
a、词汇解释
1.Service Ticket:进⼊每个客户端的凭证(是唯⼀不重复的)。
2.Ticket Granted Cookie:全局唯⼀凭证(以cookie的形式存储),之所以能从⼀个系统跳转到列⼀个系统不⽤再次登录,全凭它。
b、流程说明
①⽤户通过终端访问客户端。
②客户端带着重定向地址(redirect_uri:为各⾃客户端当前页⾯地址[需要编码,防⽌有特殊字符])到验证中⼼登录页验证(没有登录情况下)。
③验证成功⽣成Ticket Granted Cookie和Service Tikcet并存储(为后⾯验证做准备)。
④同时通过url传参的⽅式(redirect_uri?ticket=Service Tikcet)重定向到客户端并为终端游览器设置Ticket Granted Cookie。
⑤客户端获得了Service Ticket,然后到验证中⼼验证。(需要客户端⾃⼰实现)
html怎么实现登录验证功能
⑥验证中⼼到凭证存储服务器查询获取Service Ticket
⑦验证成功返回⽤户⼿机号并⽣成⽤户Session, 下次访问本系统判断Session就可以了,不⽤再去验证中⼼了。为了redirect_uri上的token不让⽤户看到(不要出现在地址栏中),各个客户端验证成功后去掉ticket=Service Tikcet参数再次重定向本系统。(需要客户端⾃⼰实现)
⑧⽤户成功进⼊系统;进⼊其他系统”验证中⼼”通过Ticket Granted Cookie为系统⽣成Service Tikcet,所以⽤户不需要再次登录了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论