云时代架构”经典文章阅读感想九
云时代架构”经典文章阅读感想九
(面试题:给我说一下你项目中的单点登录是如何实现的?)
在软件质量属性中的也提到了单点登录的使用可以提高软件的易用性,但是也会导致系统的安全性收到威胁。那么什么是单点登录,为什么需要单点登录这一功能呢?
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
在系统发展初期,系统使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便。但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次登录,而且每个系统的账号都不一样,这对于运营人员来说,很不方便。于是,就想到是不是可以在一个系统登录,其他系统就不用登录了呢?这就是单点登录要解决的问题。
要实现单点登录功能,首先要了解登录认证是什么机制,当用户需要登录时,我们首先需要填写用户名和密码完成登陆认证。之后浏览器会写入cookie,这个cookie是这个用户的唯一标识。下次再访问时便通过这个值进行判断是否为登录状态。
单点登录可由三种解决方法:
- 对于跨域问题,可以使用JSONP实现。
用户在父应用中登录后,跟Session匹配的Cookie会存到客户端中,当用户需要登录子应用的时候,授权应用访问父应用提供的JSONP接口,并在请求中带上父应用域名下的Cookie,父应用接收到请求,验证用户的登录状态,返回加密的信息,子应用通过解析返回来的加密信息来验证用户,如果通过验证则登录用户。
2.通过页面重定向的方式,是通过父应用和子应用来回重定向中进行通信,实现信息的安全传递。 父应用提供一个GET方式的登录接口,用户通过子应用重定向连接的方式访问这个接口,如果用户还没有登录,则返回一个的登录页面,用户输入账号密码进行登录。如果用户已经登录了,则生成加密的Token,并且重定向到子应用提供的验证Token的接口,通过解密和校验之后,子应用登录当前用户。
3最简单的单点登录实现方式,是使用cookie作为媒介,存放用户凭证。
用户登录父应用之后,应用返回一个加密的cookie,当用户访问子应用的时候,携带上这个cookie,授权应用解密cookie并进行校验,校验通过则登录当前用户。
对于大多数使用了单点登录的企业都会感到在管理上方便了许多,简单来讲使用单点登录有如下好处:
工作效率提高:提高员工工作效率,简化应用系统操作过程。
增加安全性:强大的身份认证,规避密码安全风险,增加信息系统安全性。
降低管理成本:降低管理员工作强度,节省人力投入到更多有意义的IT 建设工作中。
实施风险最少:强大的技术支撑,缩短应用部署周期,避免时滞经济损失和内部管理资源无效损耗。
投资回报高:采用先进技术体系,为后续应用开发提供统一的用户身份权限管理框架,投资利用率高,可扩展性强,可满足企事业单位不同发展阶段的需求。一次投资,长效回报。
posted on 2019-05-02 20:07 面向bug的程序设计 阅读(113) 评论(0) 编辑 收藏 举报