黑马程序员技术交流社区

标题: 【广州校区】【原创】单点登录原理 [打印本页]

作者: 帅气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