900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > NET Java能够实现SSO单点登录吗?为什么? – 网络

NET Java能够实现SSO单点登录吗?为什么? – 网络

时间:2020-01-01 07:08:11

相关推荐

NET Java能够实现SSO单点登录吗?为什么? – 网络

什么是SSO单点登录?

SSO是英文SingleSignOn的简写,中文翻译就是单点登录。单点登录是为了解决什么问题而生的呢?在企业信息化建设过程中,业务会越来越复杂,所以系统会越来越多(甚至是不同语言开发的系统),这些系统间如果用户认证体系没有统一,那大家就要记住很多密码,另外每个系统都要登录一次,相当麻烦。也就是在这种背景下,SSO机制应运而生。

SSO单点登录的原理

SSO会有一个独立的中央认证系统(CAS),其它系统没有登录/注册入口,统一在认证系统处进行登录认证。当用户在认证系统成功认证之后,认证系统会创建授权令牌给各个子系统,各个子系统拿到令牌后进行相关验证后就创建各个系统的会话。

SSO最终还是基于Token+Cookie+Session等技术来实现的,所以说任何一款开发语言都可以实现SSO单点登录。

不同场景下的SSO单点登录实现方案

SSO单点登录听上去很简单,但在不同业务下它实现的成本也是不同的,比如多个B/S系统会存在以下场景:

1、多个系统部署(主)域名相同

同域名下的多个系统间实现SSO可以采用Cookie共享的方式来完成(因为不涉及跨域),当A系统用户访问CAS认证完成后,在跳转回A系统时写入Cookie,当下次访问B系统时就能获取同域下的Cookie以完成会话跟踪。

2、多个系统部署的域名不同

Cookie是有域限制的,非同源的Cookie互不可见。在这种情况下,A系统在CAS认证完成后,可以采用消息通知的方式(如:批量请求各个子系统的回调URL完成Cookie写入)去通知其它已注册的子系统完成会话状态生成。

以上就是偶的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流~偶是科技领域创作者,十年互联网从业经验,偶了解更多科技知识!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。