0、引言
随着企业信息化建设的逐步深入,信息系统已逐步渗透企业生产经营管理的各个领域,包括:ERP、MES、电子商务平台、DSS、OA、电子邮件等等 但由于系统建设的不同步及期初缺乏前瞻性和总体规划,这些系统经常拥有各自独立的用户管理体系和认证方法。这就可能出现同一个用户在不同系统中使用不同的账号和密码,需要记忆众多的账号和密码已成为用户沉重的负担。此外,由于各系统中用户信息的格式、命名与存储方式多种多样,系统管理员对用户信息进行同步维护时也将增加额外的工作量。因此,众多企业已着手研究建立企业专门的单点登录系统。对企业单点登录的实现方案已有众多研究和讨论,本文以云铜集团基于企业门户的单点登录解决方案为实例,探讨企业面对复杂异构应用环境下如何以最小代价柔性地实现各新老系统的单点登录。
1、单点登录概述
1.1 单点登录定义
单点登录(SSO:Single Sign On)是一种目前较流行的企业业务整合解决方案。单点登录是指访问同一服务器不同应用中的受保护资源的同一用户,只需要登录一次,即通过一个应用中的安全验证后,再访问其他应用中的受保护资源时,不再需要重新登录验证。
1.2 单点登录技术的国内外动态
目前,单点登录技术在国内的应用还不是非常普及,但随着企业门户应用的逐渐普及,越来越多的企业已开始重视单点登录技术的实现。在国外,单点登录的技术发展非常的迅速。从技术的实现上,单点登录的实现技术主要有:Cookie、Broker-based、Agent-based、Token-based、Gateway-based等。
1.3 单点登录技术比较
2、基于企业门户的云铜集团单点登录方案的设计
2.1 云铜集团异构应用环境介绍
云铜集团经过多年的信息化建设已建成了涵盖冶金行业五级系统架构的各种应用系统,且涉及多种技术平台,包括:SAP平台的ERP系统2套,基于domino平台的分布式OA系统、邮件系统、短信系统、经营决策管理系统,基于Dotnet平台的MES系统、生产管理系统、投资管理系统、矿产资源管理系统、HSE管理系统和协同应用系统,腾讯的RTX企业内部通讯系统等等,其中有老系统、新建系统,有B/S结构、C/S结构,部署在不同子域、不同服务器上。针对云铜集团复杂的异构应用环境,采用传统的单点登录技术已经很难满足云铜集团的单点登录需求。
2.2 云铜集团单点登录方案
云铜集团单点登录方案主要由统一用户管理、认证管理和基于Sharepoint企业门户的单点登录三个部分组成。
2.2.1 统一用户管理
统一用户管理的目标是要建立一个囊括云铜集团所有IT应用系统的基础用户管理平台,做到一套用户以及密码覆盖所有系统,在此基础之上通过组合认证实现各系统的单点登陆。云铜集团统一用户管理涉及到SAP HR系统、企业门户的用户信息公共数据库、WebAD认证巾心(基于微软AD开发的web界面管理平台)、ADSync(Domino平台自带的用户目录系统)。整个用户数据管理如图1所示:
图1 统一用户管理的数据同步
(1)统一用户管理的数据源来自于SAP HR模块,HR模块中的员工数据通过SSIS(Microsoft SQL Server Integration Services)将数据同步到企业门户公共数据库,供认证中心使用。
(2)认证中心(web AD)进行具体的用户管理,注册用户时选取员工信息,并将用户信息通过AD LDAP服务写入AD。
(3)认证中心(web AD)通过web service方式提供对外接口,将用户数据分发到新老系统中。
(4)对新老系统进行用户数据分发的方式分为两大类:原有domino系统通过一个ADSync分发:非domino系统直接通过认证中心(web AD)提供的web Service服务分发。
2.2.2 认证管理
云铜集团单点登录涉及sharepoint门户登录认证、ASP.NET系统认证(包含生产管理系统、投资管理系统、矿产资源管理系统、HSE管理系统和协同应用系统)、Domino系统认证(包含分布式OA系统、邮件系统、短信系统、经营决策管理系统)、SAP系统认证(两套ERP系统)、RTX认证等5 大类系统认证。
(1)sharepoint门户登录认证:采用Broker based模式的典型应用Kerberos认证机制。
(2)ASP.NET系统认证:采用cookie模式的AD认证。
(3)Domino系统认证:采用Token-based模式的LTPA Token认证。
(4)SAP系统认证:采用用户映射的方式进行认证。
(5)RTX认证:采用web serviees方式进行认证。
2.2.3 单点集成
在统一用户管理和明确各种类型系统的认证方式后,企业门户作为各应用系统的统一集中入口,用户在企业门户上输入用户名和密码后,个人门户通过调用web AD的访问控制列表把当前用户能访问的系统罗列在个人门户常用系统中,采用上述认证方式,用户无需再输入用户名和密码就可以访问相关应用系统了。
3、云铜集团单点登录技术的具体实现
由于云铜集团涉及单点登录的各系统都统一在同样的一级域名yncic.com之下,因此可以概括来说,各系统的单点登录都是采用共享cookie信息的方式实现的。即通过各系统的统一入口(门户系统)登录后。生成各关联单点系统的验证信息存储于cookie中,各系统读取Cookie信息实现单点登录。
3.1 实现与Domino系统单点登录
与Domino系统的单点登录采用Lightweight Third-Party Authentication (LTPA)的方式(LTPA是IBM Websphere和Domino产品中使用单点登录技术)。当服务器配置好LTPA认证方式,用户通过浏览器成功登录后,服务器会自动发送一个session cookie给浏览器,此cookie中包含一个LTPA Token,获得cookie后登录Domino系统,Domino系统通过分析该cookie判断当前用户是否验证通过。这个cookie由以下部分组成:LTPA token版本(4字节)、创建时间(8字节)、过期时间(8字节)、用户名(可变长度)、Domino LTPA密钥(20字节),其中LTPA密钥采用SHA加密存储在cookie中。
以下是Domino系统获取LTPA token信息的核心代码:
3.2 实现与ASP.NET系统单点登录
由于云铜集团涉及单点登录的ASP.NET系统使用相同的主域名,所以采用Form身份验证方式,共用一个Cookie来实现单点登录。
具体实现过程如下:
(1)选用Forms验证
(2)修改各单点系统Web.config文件,加入共用的machineKey节点和值。
(3)登陆时写入cookie值
以下是生成ASP.NET系统共享Cookie票据信息的核心代码:
3.3 实现与SAP系统单点登录
与SAP系统实现单点登录主要是通过在SSO WEB服务器页面嵌入ActiveX控件,由AetiveX控件从Sharepoint的SSO服务端获取用户映射表中SAP的用户名和密码,然后启动客户端控件,向客户端控件传递登录信息,实现自动登录。
3.4 实现与RTX系统单点登录
与RTX系统实现单点登录主要是通过调用RTX Server SDK获取Session Key接口获取该用户的Session Key,同时调用客户端Session Key登录的脚本登录RTX。
4、小结
面对多种异构应用并存的现状,云铜集团有针对性地将多种单点登录技术组合应用,有效地解决了基于企业门户的单点登录问题。为其它企业如何解决复杂异构应用环境下的单点登录提供了可借鉴的经验,具有很好的推广应用价值。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:ERP/MES/OA复杂异构应用环境下的单点登录设计与实现
本文网址:http://www.toberp.com/html/consultation/1082009659.html