0、引言
随着计算机及网络技术的不断发展,企业的信息化建设也在不断的深入,许多企业建立了大量的应用系统。由于企业的各种应用系统、各种信息的不断增多,许多企业迫切需要将这些应用和信息进行有效整合,形成统一的企业门户系统。在企业门户系统中,用户通过单点登录一次认证进入系统后,可以访问所有具有权限的应用系统。
然而,企业现有的各种应用系统,大多是在不同的时期由不同的厂商开发的软件,其采用的技术架构、开发工具、数据结构都不统一。在这种情况下,实现单点登录和应用系统的统一身份验证将会有一定的难度。
1、单点登录的概念
由于企业具有许多应用系统,每个应用系统均有自己的登录界面。工作人员在使用每个应用系统时,都需要输入用户名和密码,这就为工作人员操作带来了不便。单点登录(Single Sign-On,缩写为SSO),就是解决这种问题的方法,它是目前企业业务整合时使用较多的一种解决方案。通过SSO,用户只需要在某个应用系统入口登录一次,就可以访问所有与该应用系统相互信任的其它应用系统。
SSO的理想状况是用户可以通过任意一个应用系统进行单点登录。这种情况主要发生在一些基于Web的应用系统中。在这种情况下,单一的登录点(可以称为SSO Entry)是所有应用系统中唯一的验证用户权限的地方。用户在登录点登录后将产生一个SSO票据(或凭证),然后由登录点将这个票据传递给WEB或应用系统,在传递的票据信息中,针对不同的C/S结构或B/S结构应用系统可能还会包括用户名及密码等信息。应用系统在收到这些票据信息后,对其用户信息进行验证,进而登录到应用系统中。
在使用单点登录的过程中,SSO Entry需要完成下列功能;
首先,SSO Entry需要为用户提供一个身份验证的登录界面,用户在此界面中输入用户名及密码;
其次,SSO Enry需要根据用户所具有的权限,显示用户可以使用的应用系统。
第三,SSO Entry可以根据用户的选择调用应用系统,应用系统可以是B/S结构或C/S结构。
第四,SSO Entry可以将SSO票据传递给应用系统,在传递的票据信息中,针对不同的C/S结构或B/S结构应用系统可能还会包括用户名及密码等信息。
第五,SSO Entry可以关闭SSO,并且在SSO票据失效后,可以关闭SSO Entry。
2、单点登录的缺陷
由于只有符合SSO规范的应用系统才能实现真正的SSO。因此,并不是任何系统都可以实现真正的单点登录。许多企业采用了自底向上的信息化建设方式,建立了许多相互独立的底层应用系统,而这些应用系统大多数都不符合SSO规范。在这些应用系统的整合过程中,如果要实现SSO,则必须要修改这些应用系统的用户验证模块,使其能通过SSO票据来实现用户身份的验证,并根据用户身份来授权用户的操作权限。这就意味着必须对应用系统的代码进行修改。
SSO还需要建立一个统一的身份验证和权限管理信息库。然而,在现有的许多应用系统中,每个应用系统都有不同的身份验证和权限管理模块,系统的身份验证模型、权限管理模型、权限信息存储结构和应用系统的业务逻辑之间有非常紧密的耦合性。这种紧耦合性使得身份验证和权限管理模块很难进行扩展,其代码修改的工作量将非常之大。
由于上述这些SSO的局限性,使得在企业门户系统中无法实现真正的SSO。
3、改进的单点登录实现方式
为了在企业门户系统中达到单点登录的效果,可以采用一种变通的方式,对SSO进行改进,我们称之为伪单点登录。真正的单点登录的实现过程是:通过SSO Entry进行身份验证后,企业门户系统生成一个统一的SSO票据,保存在票据证书服务器上,应用系统可通该服务器来读取SSO票据,并验证该用户是否经过了统一的身份验证。
伪单点登录的实现过程是:通过SSO Entry进行身份验证后,将用户名及相应的密码传递给应用系统,应用系统通过本身的身份验证模块来进行身份验证和授权管理。通过这种方式,也可以达到单点登录的效果。
单点登录的实现方式按照应用系统的结构可分为四种,如图1。其中最下面的一种方式为真正的单点登录,上面的三种方式是通过不同形式实现的伪单点登录。需要提到的是,这几种单点登录的实现方式并没有所谓的优劣之分,只是其适用的应用环境不同而已。
图1 单点登录的四种方式
(1)可共用证书服务器的Web系统
用户在门户系统上输入用户名和密码后,门户系统进行身份验证,并生成一个票据存储在票据证书服务器上。当用户访问可与门户系统服务器共用票据证书服务器的Web应用系统时,该WEB应用系统可以直接从票据证书服务器中读取票据信息并对用户的票据进行验证。这一种单点登录的实现方式是真单点登录。
(2)无法共用证书服务器的Web系统
用户在门户系统上输入用户名和密码后,门户系统进行身份验证,并生成一个访问应用系统所需要的用户名与密码。当用户访问无法与门户系统共用票据证书服务器的web应用时,门户系统通过Get方式将加密后的用户名和密码传递给该Web应用中的一个WEB登录适配器(其实现原理及方法见下文)中,WEB登录适配器得到数据后,解密得到用户名和密码,然后调用Web应用的身份验证模块进行身份验证,验证成功后,即可进入应用系统,并根据权限访问受保护的资源。这一种单点登录的实现方式是伪单点登录。
(3)基于C/S结构并需要输入用户名口令的系统
用户在门户系统上输入用户名和密码后,门户系统进行身份验证,并生成一个访问应用系统所需要的用户名与密码。当用户需要打开一个需要输入用户名密码的C/S结构的软件时,门户系统通过命令行参数的方式将经过加密的用户名和密码传递给该应用系统的软件登录适配器(其原理及方法见下文)中,软件登录适配器自动打开该应用系统并输入解密后的用户名和密码,自动登录到应用系统中。这一种单点登录的实现方式是伪单点登录。
(4)基于C/S结构但不需要输入用户名1:3令的系统
一些应系统,不需要用户验证就可以使用。比如一些工具软件(如记事本、通讯录、Word等)。用户使用对这些应用系统时,可以从门户系统直接打开。
还有一些应用系统,提供了自动登录的接口,比如可通过命令行参数将用户名密码传递到系统中。用户在使用这些系统时,门户系统可以通过增加命令行参数(命令行参数中包括了用户名及密码等信息)的方式来打开这些应用系统。这一种单点登录的实现方式是伪单点登录。
3.1 WEB登录适配器
WEB登录适配器工作原理是:在WEB应用系统所在的服务器上建立一个WEB应用页面,该页面可以通过GET方式接收门户系统传来的用户名密码,然后可按照WEB应用系统的权限管理机制进行身份验证,验证通过后生成一个证书(Cookies或Session),将该证书传递给WEB应用程序,从而进入该WEB应用系统。
3.2 软件登录适配器
软件登录适配器的是一个小的可执行程序,该程序部署在应用系统所在的计算机上。其工作步骤是:首先通过命令行参数的方式接收用户名口令,然后打开应用系统,并找到登录窗口中用户名、口令的输入子窗口以及“登录”按钮,最后通过键盘模拟的方式向用户名、口令的输入子窗口中分别输入用户名和口令,并模鼠标拟点击“登录”按钮,进入应用系统。
4、统一身份验证的实现
门户系统中涉及到许多子系统,这些子系统之间可能是不同时期由不同厂商开发应用的系统。各个应用系统之间彼此相互独立,并且每个应用系统都有自己的用户身份验证模块与权限管理策略。在企业应用系统整合的过程中, 需要通过企业门户系统对这些子系统的用户进行统一的管理, 达到单点登录、统一身份验证的目的。
统一身份验证,可分为两个层次:登录门户的用户身份验证和登录应用系统的用户身份验证。
4.1 登录门户的用户身份验证
用户首先需要登录到企业门户系统,然后才能访问企业门户系统中的应用系统。因此,用户在登录企业门户系统中,需要首先进行身份验证。其工作流程如下:
首先,用户在登录页面中输入用户名和密码;
其次,企业门户系统通过身份验证模块对用户名称密码进行验证;
第三,验证成功后,将在服务器端生成一个票据信息并保存起来,该票据信息可用于前文中所述的真单点登录;
第四,服务器端将用户验证信息传递给企业门户系统的展现策略管理,通过展现策略管理实现用户界面的个性化定制,并确定应用系统在客户端界面中的展示方式;
第五,将定制的信息显示在客户端。
4.2 登录应用系统的用户身份验证
用户登录到企业门户系统后,再调用应用系统时,将使用该应用系统的用户身份验证模块进行身份验证。
由于企业门户系统中登录所用的用户名密码与各个应用系统所用的用户名密码并不相同,因此,可以通过建立一个用户映射表的方式, 将企业门户系统的用户与应用系统中的用户(或角色)对应起来,如图2。企业门户系统的用户与应用系统的用户可以是多对1的关系。当用户访问该应用系统时, 企业门户系统首先通过用户映射表得到应用系统的用户名与密码,并将此用户名和密码传递给应用系统,由应用系统进行用户身份验证并进行权限分配。
图2 用户映射示意图
对一些基于WEB的应用,也可以在应用系统中安装门户系统的身份验证代理程序。比如前文中所述的WEB登录适配器就是一个身份验证代理。当用户访问该应用系统时, 企业门户系统将应用系统的用户名及密码传递给身份认证代理,身份验证代理通过应用系统的身份验证系统进行身份验证, 验证通过后,将返回的验证票据或用户信息提交给应用系统。应用系统根据此验证票据或用户信息进行权限和界面管理,将可用的界面展示给用户。
5、结论
本文提出的单点登录和统一身份验证的实现方式,可以主动适应于各种技术架构的应用系统,具有较强的可扩展性。通过这种方式,企业不但可以将现有的各种应用系统集成在统一的管理平台上,而且在选用新的应用系统时,只需要关心所选应用系统的功能是否满足需求即可,而不必要考虑所选应用系统是否能够集成在企业门户系统中。因此,本文所提的这种方式可以为企业应用系统建设提供更广阔的选择空间。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/