标签:变更 web 而且 路径 系统基础 over 不同的应用 允许 基本
企业的信息化过程是一个循序渐进的过程,在企业各个业务网站逐步建设的过程中,根据各种业务信息水平的需要构建了相应的应用系统,由于这些应用系统一般是在不同的时期开发完成的,各应用系统由于功能侧重、设计方法和开发技术都有所不同,也就形成了各自独立的用户库和用户认证体系。随着新的业务网站不断的增加,用户在每个应用系统中都有独立的账号,这样就造成在访问不同的应用系统时,需要记录对应的用户名和密码,多个用户名密码极易记混,如果忘记或记错了某一个业务网站的用户名或密码就无法进行登录,耽误工作,影响工作效率,随着局内信息化进程的推进还会有新的应用系统产生,如果不引入单一用户登录的解决方案,全公司工作人名特别是承担审批权限的各级领导很难记清各类应用系统的用户名和密码,严重影响由信息化带来快捷性和高效性。此外,多个应用平台就有多个用户管理,这也为系统管理员维护人员系统带来巨大的工作量,例如,一次变更10个人员,即使只有5个应用系统,也需要重复维护50个人员信息,而企业的每次人员调整远不至10人,这种几何增长的维护工作量,会浪费大量的精力和时间,减弱了信息化系统带来方便快捷,为此,需建立一套统一的、完善的、科学的单点登录系统,每个用户只需记录一个用户名密码,登录一个平台后即可实现各应用系统的透明跳转,而且实行统一的用户信息管理系统,系统管理员只需维护一套人员信息,更改信息通过平台接口同步更新至各个应用系统,实现人员系统单次维护全公司同步变更,大大提高工作效率。
新的应用系统在不断开发,早一天规划设计出单点登录的规范接口,就可以为新开发的系统提出的一种整合的标准,在开发初期无论哪个开发商,无论采用哪种技术开发,只要遵循单点登录的规范标准,新的系统开发完成之后即可无缝整合的到单点登录平台中,从而减少了系统开发完成后再整合到单点登录改动而造成资源的浪费。
从信息共享角度看现有的各个业务系统都使用各自的数据存储方式,不经过基础的用户名和密码认证后,相互之间无法传递有效信息。为避免信息孤岛的产生,因此需要建立一个连接各个业务系统的技术架构和标准,实现平台统一化整合;通过对业务处理和异常处理实现监管透明;通过将业务流程从应用中抽离,实现业务流程的灵活安排,这样就需要一套可以整合现有各个业务网站的信息共享平台。
单点登录的英文名称为Single Sign-On,简写为SSO,它是一个用户认证的过程,允许用户一次性进行认证之后,就访问系统中不同的应用;而不需要访问每个应用时,都重新输入密码。IBM对SSO有一个形象的解释“单点登录、全网漫游”。
SSO将一个企业内部所有域中的用户登录和用户帐号管理集中到一起,SSO的好处显而易见:
对于内部有多种应用系统的企业来说,单点登录的效果是十分明显的。很多国际上的企业已经将单点登录作为系统设计的基本功能之一。
公司第一个版本的单点登陆系统从2005年运行以来,从几十个应用系统扩展到现在的几百个系统。在应用的过程中没有很好的解决跨域名的问题,单点登陆客户端代码使用问题,应用系统的访问规则问题等都没有很好的解决。
SSO的实现机制不尽相同,大体分为Cookie机制和Session机制两大类。
目前大部分SSO产品采用的是Cookie机制,公司第一个版本的单点登陆系统也是如此,目前能够找到的最好的开源单点登录产品CAS也是采用Cookie机制。 CAS http://www.ja-sig.org/products/cas/,CAS单点登录系统最早由耶鲁大学开发。2004年12月,CAS成为JA-SIG中的一个项目。JA-SIG的全称是Java Architectures Special Interest Group,是在高校中推广和探讨基于Java的开源技术的一个组织。CAS的优点很多,例如设计理念先进、体系结构合理、配置简单、客户端支持广泛、技术成熟等等。这也是我们这次SSO改造的参照产品。
以CAS为例,使用Cookie实现单点登录的原理图如图1所示。
图 1 使用Cookie实现单点登录的原理图
这样,就不再需要用户继续输入用户名和密码,从而实现了单点登录。
注意,这种单点登录体系中,并没有通过http进行密码的传递(但是有用户名的传递),因此是十分安全的。
CAS被设计为一个独立的Web应用,目前是通过若干个Java servlets来实现的。CAS必须运行在支持SSL的web服务器至上。应用程序可以通过三个URL路径来使用CAS,分别是登录URL(login URL),校验URL(validation URL)和登出URL(logout URL)。
采用.NET 来实现CAS原理的SSO系统,在第一个版本的SSO系统基础上罗列一些问题,有的已经是第一个版本的SSO系统中采用的方式。有些问题需要澄清的,
很多人谈论单点登录时,常常和统一用户,以及单一用户管理混淆了,要么误认为单点登录自然实现了单一用户管理;要么误认为统一用户或者单一用户管理就是单点登录。实际上,这三个概念是有明确的区别的。
统一用户就是指不同的系统,使用同一套用户处理的机制。
很显然,统一用户是单点登录的基础,但是统一用户并不意味着实现了单点登录。
单一用户管理则指所有的用户管理工作都在唯一的地方进行处理,而每个应用程序不再保留自己的用户管理功能。单一用户管理和统一用户管理的最大区别在于,统一用户管理之后,每个应用程序仍然保留自己的用户管理功能,用于额外的属性设置;而单一用户管理时,每个应用程序不再保留自己的用户管理功能。
在企业应用场景下,所有的用户信息来自HR系统,HR系统中包含的户信息和部门信息,同时这些信息会存在于公司的活动目录中。公司采用的是LDAP和数据库连接方式相结合,正式员工登陆OA系统并不采用LDAP方式认证,采用的RSA的token方式认证,也就是数据库方式认证。对于忘记带token卡和客户服务部的外聘人员没有token卡的,通过白名单方式允许他们通过LDAP方式认证。第一个版本的单点登陆系统使用的HTTP,新版本的集成子系统使用https方式通讯。
术语解释:
简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。实际上,LDAP得到了业界的广泛认可,因为它是Internet的标准。产商都很愿意在产品中加入对LDAP的支持,因为他们根本不用考虑另一端(客户端或服务端)是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。
标签:变更 web 而且 路径 系统基础 over 不同的应用 允许 基本
原文地址:http://www.cnblogs.com/Crysaty/p/7383098.html