主要观点总结
文章主要介绍了单点登录在现代系统架构中的应用和解决方案,以及作者在实际应用环境中遇到的一些问题及解决方案。文章从共享Session、基于OpenId的单点登录、基于Cookie的OpenId存储方案、B/S多域名环境下的单点登录处理和安全问题等方面进行了详细阐述。
关键观点总结
关键观点1: 共享Session是实现单点登录的直接和简单方式,但在用户验证、用户信息管理与业务应用分离的场景下会遇到问题。作者采用了基于Redis的Session共享方案,但存在扩展性问题。
共享Session是通过将用户认证信息保存于Session中,以Session内存储的值为用户凭证。在单个站点内很容易实现,但在多子系统环境下需要共享Session。作者采用了基于Redis的Session共享方案,但这一方案存在扩展性问题,且对Session的使用有诸多限制。
关键观点2: 基于OpenId的单点登录解决了C/S与B/S结合系统的身份验证问题,但存储和传递OpenId在B/S模式下较为困难。
OpenId存放于客户端,用户登录子系统时将OpenId传送到服务端进行验证。这种方法多用于C/S与B/S相结合的系统。但在B/S模式下,存储和传递OpenId较为困难,需要引入基于Cookie的OpenId存储方案。
关键观点3: 基于Cookie的OpenId存储方案解决了B/S模式下OpenId的存储和传递问题,但存在跨域问题。
通过使用顶级域名Cookie作为OpenId的载体,解决了B/S模式下OpenId的存储和传递问题。但这一方案假设所有子系统都是同一个顶级域名,而在实际生产环境中可能存在多个域名,需要解决跨域问题。
关键观点4: 在B/S多域名环境下,通过JSONP接口实现单点登录的跨域处理。
在多个顶级域名的情况下,无法直接共享各个子系统的OpenId。处理跨域问题,可以通过JSONP接口将用户OpenId传给业务子系统,实现单点登录。
关键观点5: 安全问题,包括OpenId的安全性和用户体验的矛盾,以及多终端登录下的OpenId失效问题。
在实现单点登录时,需要注意安全问题,如OpenId的安全性和用户体验之间的矛盾,以及多终端登录下的OpenId失效问题。作者采用了单用户多OpenId的解决方案,每次用户通过用户名/密码登录时产生一个OpenId保存在Redis里,并设定过期时间,以解决这一问题。
免责声明:本文内容摘要由平台算法生成,仅为信息导航参考,不代表原文立场或观点。
原文内容版权归原作者所有,如您为原作者并希望删除该摘要或链接,请通过
【版权申诉通道】联系我们处理。