1 引言
随着网络技术和企业信息化的发展,企业建设了门户平台、企业资源管理系统、产品数据管理系统、财务管理系统、资产管理系统、人力资源管理系统等众多的业务系统。企业用户在门户平台和各业务系统间访问,需要多次认证,用户感知度差。目前迫切需要在企业门户平台和各业务系统之间进行统一身份认证,实现用户的单点登录。
2 单点登录概述
2.1 单点登录的定义
单点登录(SSO:Single Sign On)是一种目前较流行的企业业务整合解决方案。SSO的定义是:在多个应用系统中用户只需要登录一次就可以访问所有相互信任的应用系统。
企业应用集成可以在不同层面上进行:如在数据存储层面上的“数据大集中”;在传输层面上的“通用数据交换平台”;在应用层面上的“业务流程整合”;用户界面上的“通用企业门户”等等。事实上还有一个层面上的集成变得越来越重要,那就是“身份认证”的整合,也就是“单点登录”。
2.2 实现机制
当用户第一次访问应用系统1的时候,因为还没有登录,会被引导到认证系统中进行登录。根据用户提供的登录信息,认证系统进行身份效验。如果通过效验,应返回给用户一个认证的凭据--ticket,当用户再访问别的应用时,就会将这个ticket带上,作为自己认证的凭据,应用系统接受到请求之后会把ticket送到认证系统进行效验,检查ticket的合法性。如果通过效验,用户就可以在不用再次登录的情况下访问应用系统2和应用系统3了。
2.3 实现SSO 的前提条件
实现SSO的前提条件是:(1)所有应用系统均可信任一个身份认证系统;(2)所有应用系统能够识别和提取ticket 信息;(3)应用系统能够识别已经登录过的用户,能自动判断当前用户是否登录过,从而完成单点登录的功能。其中,统一的身份认证系统最重要,认证系统的主要功能是将用户的登录信息和用户信息库相比较,对用户进行登录认证;认证成功后,认证系统应该生成统一的认证标志(ticket),返还给用户。另外,认证系统还应该对ticket 进行效验,判断其有效性。整个系统可以存在两个以上的认证服务器,这些服务器甚至可以是不同的产品。认证服务器之间要通过标准的通讯协议,互相交换认证信息,就能完成更高级别的单点登录。
3 技术实现方式
3.1 SSO 结构
单点登录的Web 平台,用户只要登录一次,就可以访问在其权限内的所有业务系统,包括本地的Windows 应用系统和服务器端的Web 应用系统,通过访问数据库中的用户SSO 表实现用户验证。
图1 SSO 技术框架图
注:SOAP--简单目标协议;HTTP--超文本传输协议;LDAP--轻量级目录访问协议
图2 SSO 实现方式
3.2 SSO 流程
单点登录(SSO)的流程(如图3 所示)如下:
图3 SSO 流程图
(1)用户先与统一登录系统进行交互,使用唯一的帐号密码进行登录,此时不涉及任何子系统;(2)用户登录成功后,统一登录系统将信任的应用子系统列表呈现给用户;(3)用户根据需要,选择子系统连接访问子系统,用户与子系统的交互开始;(4)由于用户与子系统此时还没有建立认证关系,所以子系统将用户重定向到统一登录系统;(5)统一登录系统验证用户的登录信息,发现用户已经登录,便将登录信息插入到数据库,再将验证信息发给用户,即返回一个等待页面;(6)用户将等待页面中的验证信息(自动)提交到子系统,子系统获取认证信息;(7)子系统通过一定的办法和等待页面中的验证信息进行验证,并与用户建立了信任关系。
流程的交互实现过程都是可控的,各个系统之间传递的信息内容及传递时间都可以限制和约定,并且能够将每一次系统之间的交互记录都进行登记,这才是我们需要的。至于烦碎,其实对用户来说,增加的步骤就是出现自动提交的等待登录页面,如果两个系统都能正常运行,网络也没有出现堵塞,用户等待的时间将及其短暂,甚至没能看到等待页面,并且我们能够对等待页面做一定的美化,使用户就算看到等待页面,也不会感到厌烦。
3.3 Web SSO 功能
系统通过门户平台提供Web 方式的单点登陆界面,以Web 服务的方式提供用户认证接口。
外部系统,包括门户平台的单点登录系统均调用用户认证接口实现用户认证。将业务系统纳入到我们的单点登录平台中,应该按照以下步骤实现:
·对所有业务系统进行分析,确定其登录方式,使其能够自动通过统一用户验证服务来验证用户和更改用户密码;
·使用Windows 集成验证方式,从活动目录用户密码表中取出当前用户的域用户密码(密文),然后通过HTTP post 的方式将用户名和加密的密码传递给SharePoint Server 单点登录服务;
·将登录页面嵌入SharePoint Server 2007 作为组件形式存在。
针对内部系统完成统一用户管理的部署和活动目录(AD:Actire Directory)用户数据聚合,需要在AD 部署完成的前提下,形成“一处修改,全部同步”的自动管理模式。单点登录实现后,用户的身份信息将在Windows 活动目录(域用户登录名、域用户密码、组织结构等)和基于SQL Server的SSO 数据库(活动目录对应业务系统用户加密存储,域用户登录名及其加密后的密码)两个地方集中存储。
3.4 SSO 的两种技术解决方案
对于单点登录的难点在于,企业内部是否有一个所有系统均可信任的身份认证系统。这是所有企业都面临的一个挑战,目前从技术上来看,主要的解决方案有两种:通用认证方式+凭证和通用认证方式+ 完整的认证机构(CA :Certification Authority)。
通用认证方式实际上是绝大多数的软件厂商和应用软件供应商都支持并具备技术可行性的认证方式,目前只有轻量级目录访问协议(LDAP:LightWeight DirectoryAccess Protocol)才可以视为通用,因为市场上几乎所有成熟的服务器端软件均可支持该协议,而针对LDAP,微软的活动目录无疑是最常用且应用范围最广的一个产品,为此对AD+凭证和CA 中心两个解决方案进行比较。
(1)AD+凭证
-- 优势:当我们在企业内部建立了AD,且所有企业内部PC 均加入AD 后,AD 服务器会为每个用户管理用户名和密码,以及相关的所有信息。同时,在AD 服务器端,从Windows NT 时代开始,微软就提供了凭证服务,因此,我们可以直接使用微软提供的该凭证来进行SSO 的技术实现,而无需考虑额外的任何投入。当然,我们可以为了用户信息的安全性增加一些措施,如将私钥保存于一个独立的外部设备中(如USB Key),以防止密码泄露等安全风险的存在。这个应用方案在已实施AD 的企业内部无疑是最经济、最快捷的一个方式,且可适用于各种架构的应用系统(B/S和C/S均可实施)。
-- 缺陷:AD+凭证的模式完全依赖于Windows服务器和桌面操作系统,即一旦有某些桌面操作系统非Windows 平台,该部分功能就无法实现。同时,假设某一个应用系统平台不支持https(即以安全套接层(SSL:Secure Socket Layer)方式加密传输的http 协议),那么其传输过程就会有一定的安全风险。
(2)CA 认证机构
-- 优势:不依赖于Windows 平台,可支持任何操作系统。传输过程完全使用https 协议,传输过程风险大大降低,如应用系统平台不支持https,所存在的风险也仅局限于CA 服务器与应用系统软件服务器之间的网络传输,而通常我们可以认为该部分的网络传输从外界条件来说已经具有足够的安全性,因此基本可以忽略其风险。
-- 缺陷:由于CA认证机构本身的价格比较高,且该机制具有局限性,几乎每个应用系统都需要针对CA 认证单独订制认证接口,因此实施CA 机构的成本比较高。
3.5 基于AD 的单点登录
由于CA 认证机构的成本较高,因此内部实施该解决方案的企业并不普遍,而基于AD 的单点登录技术将为企业实现统一认证机制提供广泛的应用前景。下面我将针对该技术的实现进行论述。
首先,当一个用户以AD 身份登录到Windows操作系统后,操作系统会为本次登录在AD 服务器端创建一个凭据,用于对各项内容的访问(如Exchange 邮件服务器、Windows 共享目录、IIS 网站等),基于.NET 和Java 两部分的应用程序均有技术手段获取到该信息(当然,.NET 要方便许多)。其次,假设我们使用的是桌面应用软件,则在软件启动时,直接读取该数据即可进行登录。如果是B/S应用系统,则可以在浏览器中对验证方式进行设置。该设置使浏览器会自动向应用服务器发送认证请求,如请求通过则登录成功。而应用服务器端的IIS 可设置为“集成Windows 身份验证”。设置为该项后,应用服务器即可自动识别用户登录Windows的AD 身份,并在服务器端建立Identity 凭据,使开发人员可以应用系统中使用该凭据。IE 配置说明如图4 所示。
图4 IE 配置说明
IIS 应用服务器针对AD 身份单点登录成功后,即可在服务器端长期保留该信息,作为门户平台,可以以该凭据为基础,在向其他应用系统定向时,提供该凭据或直接通知应用服务器使用Windows集成身份严正模式进行登录。IIS 配置说明如图5所示。
图5 IIS 配置说明
最后,基于AD机制的SSO可提供以下功能:
(1)多系统单点登录入口。可配置的多系统单点登录入口,允许用户自行添加或删除入口链接,允许用户在第三方系统中修改密码后重新登录。
图6 示例界面1
(2)多系统单点登录的管理。提供用户对于每个业务系统单点登录的独立设置,提供管理员对每个用户凭证的添加和删除操作。
图7 示例界面2
(3)单点登录扩展及相关规范。可以提供一般情况下的单点登录方案和规范,供今后新建立的Web 应用遵循。基于AD 域身份单点登录的方式共分为:
-- 直接使用AD 身份登录:应用于C/S 结构应用程序、MS 服务器端产品以及部分第三方的应用,实施后提供接口类库,开发包和相应文档。
-- Web SSO 登录:用于绝大多数B/S 结构应用程序,实施后提供接口标准和相应文档。
-- Web Services 登录:用于松耦合的系统间的信任关系,主要针对一些非MS 技术开发的应用(如JAVA),由第三方应用提交Web Services 请求并由AD 身份验证,通过后获得登录凭证。
4 技术展望
虽然基于AD的SSO 技术实现较为简便且成本低廉,但其从本质上来说无法脱离完全依赖Windows 操作系统的现状。因此,要真正的在企业内部实现完善的SSO 解决方案,CA 中心是更加理想且具有前瞻性的选择。
5 结束语
实现企业信息门户平台中的单点登录,解决了企业用户需要在门户平台和业务系统间反复登陆和注销的尴尬局面,从某种意义上说,整合了企业内部的信息资源,使企业管理者和普通用户都身受其益。本文对企业信息门户平台中的单点登录机制和技术实现方式进行了探讨,对于企业信息门户平台的建设有一定的借鉴意义。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:论企业门户平台中的单点登录技术
本文网址:http://www.toberp.com/html/consultation/1083935676.html