SSO (Single Sign On)介绍
来源:互联网 发布:卖衣服的淘宝店 编辑:程序博客网 时间:2024/05/20 04:26
SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。
实现机制
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录;根据用户提供的登录信息,认证系统进行身份校验,如果通过校验,应该返回给用户一个认证的凭据--ticket;用户再访问别的应用的时候就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行校验,检查ticket的合法性。如果通过校验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
系统共享
统一的认证系统是SSO的前提之一。认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket进行校验,判断其有效性。
信息识别
要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。
另外:
1、单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中,事实上,只要统一认证系统,统一ticket的产生和校验,无论用户信息存储在什么地方,都能实现单点登录。
2、统一的认证系统并不是说只有单个的认证服务器
当用户在访问应用系统1时,由第一个认证服务器进行认证后,得到由此服务器产生的ticket。当他访问应用系统2的时候,认证服务器2能够识别此ticket是由第一个服务器产生的,通过认证服务器之间标准的通讯协议(例如SAML)来交换认证信息,仍然能够完成SSO的功能。
WEB-SSO
用户在访问页面1的时候进行了登录,但是客户端的每个请求都是单独的连接,当客户再次访问页面2的时候,如何才能告诉Web服务器,客户刚才已经登录过了呢?浏览器和服务器之间有约定:通过使用cookie技术来维护应用的状态。Cookie是可以被Web服务器设置的字符串,并且可以保存在浏览器中。当浏览器访问了页面1时,web服务器设置了一个cookie,并将这个cookie和页面1一起返回给浏览器,浏览器接到cookie之后,就会保存起来,在它访问页面2的时候会把这个cookie也带上,Web服务器接到请求时也能读出cookie的值,根据cookie值的内容就可以判断和恢复一些用户的信息状态。Web-SSO完全可以利用Cookie技术来完成用户登录信息的保存,将浏览器中的Cookie和上文中的Ticket结合起来,完成SSO的功能。
总结:sso只是一种设计模式,需要自己去实现,或采用第三方框架如CAS.
- SSO (Single Sign On)介绍
- SSO (Single Sign On)
- 单点登陆(Single Sign-On,SSO)介绍(翻译)
- 单点登陆(Single Sign-On,SSO)介绍(翻译)
- 单点登陆(Single Sign On-SSO)
- 单点登录SSO(Single Sign On)
- SSO-单点登录(single sign on)
- 单点登陆(Single Sign On-SSO)
- Single Sign On , 简称 SSO
- SiteMinder - Single sign on (SSO)
- SSO(Single Sign On)系列(一)--SSO简介
- SSO(Single Sign On)系列(二)--SSO原理
- 单点登录(Single Sign On , 简称 SSO )
- SSO—— Single Sign On(单点登录)
- [待完善]单点登录(single sign-on,SSO)
- 什么是单点登录SSO(Single Sign-On)?
- SSO(Single Sign-on) in Action(上篇)
- SSO(Single Sign-on) in Action(上篇)
- matlab 常用集合相关的函数
- 【转载+总结】Python 干货
- 对StrongReference,WeakReference,SoftReference和PhantomReference的认识
- 【原创】python修改文件某行的内容
- 【转载】python -- 15个…
- SSO (Single Sign On)介绍
- 【原创】python mysql-connec…
- 【原创】sublime text 快捷键
- git部署与git常见问题解决
- 【原创】python 装饰器
- 【原创】gitlab私服:No user&…
- 【原创】ssh 反向代理 …
- CMake Tutorial(4)——Adding System Introspection
- 【原创】utf8 语言编码(表)区间