2024信息系统项目管理师视频教程
126747 人在学
在这一节的内容里,小编想要讲讲应用系统当中的单点登录技术,其英文全称为Single Sign On,简称则是SSO。大家可以跟着本文来一起了解它的概念、原理、功能、特点等方面的知识。
概念
SSO是一种统一认证和授权机制,SSO是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。
单点登录系统的目的就是为这样的应用系统提供集中统一的身份认证,实现"一点登录、多点漫游"的目标,方便用户使用。广义的"单点登录"包含的范围很广,用户可能访问的系统包括主机系统、Windows程序、Unix系统、web应用等等。在这些不同范围的应用程序对安全的实现都有不同的侧重点。
特点
从用户的视角看,一个理想的单点登录系统应该具备以下两个特点:
①在复杂的企业应用环境中,也不会影响到诸如业务过程,响应效率,网络吞吐量等事情,并将互操作性方面的问题减至最少,任何事情都在}I质利工作。
②当一个单点登录系统被加入使用,迁移应该容易。所有的用户能够立即学会使用这个工具。
从管理员的角度看,一个理想的系统也应该具备以下两个特点:
①计算和网络环境在各个方面必须能被管理,而管理应该不引起额外的工作或安全漏洞。管理过程应该适合组织的结构和政策。这意味着权利和控制需要有一定的层次结构。
②认证和用法的方法应能在分布式的组织环境中得到全部的贯彻而不用付出额外的努力。所有的应用程序,无论新旧,可以不需要或只需很少的改动即可适应新的认证方式。
实现原理
1.登陆点。理想的情况是用户通过任何应用系统都能进行登陆,而且效果一样。这种单一的登陆点在整个系统的设计中是唯一认证用户的地方,由登陆点将相应的用户信息传递给应用系统,应用系统利用这些信息来进行用户的验证。
2.应用系统的单点登录(SSO)集成。并不是任何系统都能够使用SSO,只有那些符合SSO规范,使用SSO API的应用系统才具有SSO的功能。简单地说就是要修改已有的应用系统,屏蔽已有的应用系统的用户认证模块,使用系统提供的SSO API来验证用户,以及对用户的操作进行授权。
统一的认证,权限信息库。通常SSO要求有统一的认证,权限存放库。但现实中,有的系统无法使用外部的认证,授权信息库,所以就需要在应用系统和SSO认证系统之间进行认证,同时进行授权信息的数据同步。
3.实现描述:在用户成功通过SSO认证系统认证之后,系统提供的映射授予权限来为用户登录到其有权可以使用的应用系统。系统提供的映射取消用户权限来实现用户的注销功能。
实现思路
SSO的实现丝萝可以参考一下下面的这个解决方案,在这个解决方案中,可以很好的实现跨平台、跨应用进行身份验证,但是这个解决方案有一个局限性就是要求使用的开发语言必须要支持WebService。
1. 整体设计思路
首先我们要明确单点登录的运行模式,即统一身份验证,在本解决方案中,我是通过Web Service实现用户身份验证,验证通过后将自动随机生成身份验证票据,并将身份验证票据发送给用户,待用户访问其他应用时,只对身份验证票据进行合法性验证即可。
2. WebService实现的功能
在本解决方案中,WebService提供的功能包括用户名/密码验证、身份验证票据的生成、身份验证票据的合法性验证这三个最基本的功能,其他功能可以根据用户的需求,自行扩展。
由于WebService本身是跨平台的,只要各个应用在开发过程中使用的开发语言支持WebService即可调用身份验证平台进行相关的操作。
3. 身份验证票据
所谓身份验证票据就是用户身份验证通过后,发给用户用以标示身份验证通过的信息。身份验证票据中可以加密保存用户的身份信息或某一特定的验证信息等,一般使用对称加密,方便在身份验证票据合法性的检查中进行相应的解密。
身份验证票据的保存也是很有挑战的一点,如果是C/S结构的程序,票据保存比较方便,只要其他应用能够取到就可以。在Web应用中,身份验证票据的保存就比较麻烦,我使用的方法是通过跨域操作Cookie,将票据保存在Cookie中即可,但是由于Cookie的不安全性,为防止恶意伪造Cookie进行诈骗,建议身份验证票据的生成过程中,加入特定的身份验证信息。
要实现SSO需要以下主要的功能
1.所有应用系统共享一个身份认证系统;
2.所有应用系统能够识别和提取ticket信息;
3.应用系统能够识别已经登录过的用户,能自动判断当前用户是否登录过,从而完成单点登录的功能。
常用的几种单点登录模型
1.基于网关的SSO模型
如图1所示,该模型由三部分组成:支持认证服务的客户端,认证服务器,支持认证服务的应用程序服务器。其中认证服务器扮演经纪人的角色,所有的认证服务部由它来完成。
图1 基于网关的SSO模型
2.基于验证代理的SSO模型
如图2所示,在基于代理人的解决方案中,有一个自动地为不同的应用程序认证用户身份的代理程序。这个代理程序需要设计有不同的功能。比如,它可以使用口令表或加密密钥来自动地将认证的负担从用户移开。代理人也被放在服务器上面,在服务器的认证系统和客户端认证方法之间充当一个"翻译"。
图2 基于验证代理的SSO模型
3.基于Kerberos的SSO模型
Kerberos是标准网络身份认证协议,它提供了在开放塑网络中进行身份认证的方法,认证实体可以是用户或用户服务。这种人为不依赖宿主机的操作系统或主机的E 地址,不需要保证网络上所有的物理安全性,并且假定数据包在传输中可被随机窃取篡改。
在用户初始登录成功后,其密钥和身份标识信息会长期保存在内存中,当以后要申请新的票据(新的应用服务)时,系统会自动提取之,加密后传送出去,整个过程对于用户来说完全是透明的,在不再需要用户输入任何口令的情况下实现用户身份的自动传递。认证过程如图3所示。
图3 基于Kerberos的SSO模型
以上就是小编想要给大家讲的内容了,希望这些内容能对大家有帮助,感谢阅读!如果带啊还想要了解其他相关的知识的话,欢迎来课课家给小编留言哦。