黑马程序员技术交流社区
标题:
【广州校区】【原创】单点登录原理
[打印本页]
作者:
帅气de路人甲
时间:
2019-8-22 14:40
标题:
【广州校区】【原创】单点登录原理
1、什么是单点登陆
单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一,
SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。
2、单点登录的好处
使用“单点登录”整合后,只需要登录一次就可以进入多个系统,而不需要重新登录,这不仅仅带来了更好的用户体验,更重要的是降低了安全的风险和管理的消耗
在面向服务的架构中,服务和服务之间,程序和程序之间的通讯大量存在,服务之间的安全认证是SOA应用的难点之一,应此建立“单点登录”的系统体系能够大大简化SOA的安全问题,提高服务之间的合作效率。
3、单点登录的运行原理
单点登录的运行原理以下分两点来说明
3.1 简单的运行机制
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录【1】
根据用户提供的登录信息,认证系统进行身份效验,如果通过效验,应该返回给用户一个认证的凭据ticket【2】
用户再访问别的应用的时候,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性
如果通过效验,用户就可以在不用再次登录的情况下访问其它应用系统
3.2 复杂的运行机制
所有应用系统共享一个身份认证系统,统一的认证系统是SSO的前提之一。
认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;
认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。
另外,认证系统还应该对ticket进行效验,判断其有效性。
所有应用系统能够识别和提取ticket信息,要实现SSO的功能,让用户只登录一次,就必须让应用系统能够识别已经登录过的用户。
应用系统应该能对ticket进行识别和提取,通过与认证系统的通讯,能自动判断当前用户是否登录过,从而完成单点登录的功能。
需要注意的是,在现实情况下的SSO有着更加复杂的结构。有两点需要指出的是:
3.2.1 单一的用户信息数据库并不是必须的,有许多系统不能将所有的用户信息都集中存储,应该允许用户信息放置在不同的存储中。事实上,只要统一认证系统,统一ticket的产生和校验,无论用户信息存储在什么地方,都能实现单点登录。
3.2.2 统一的认证系统并不是说只有单个的认证服务器,整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2