统一认证平台的选型及技术实现
2019-10-20曾喻
曾喻
摘 要:随着核电信息化程度越来越高,经过近几年持续建设,已基本建立了覆盖公司主要业务领域的信息系统,给企业的业务开展提供了大力支持。但与此同时,由于各业务系统分步实施,系统功能又相对独立,由于缺少基础技术组件的支撑,各系统平台都建立了单独的用户认证机制。随着系统越来越多,最终用户在访问不同系统时,都需要重新进行身份认证,需要输入不同的帐号和口令,不仅不方便,容易遗忘,还存在安全隐患。因此要建立统一认证平台,将各个系统的认证方式进行统一,使得员工通过统一的入口,访问各个系统,大大提高员工的工作效率。
关键词:CAS SAP PORTAL 统一认证
中图分类号:TP315 文献标识码:A 文章编号:1674-098X(2019)05(b)-0008-02
近年来,江苏核电有限公司高度重视信息化建设,经过近几年持续建设,已基本建立了覆盖公司主要业务领域的信息系统,给公司业务开展提供了大力支持。但与此同时,由于各业务系统分步实施,系统功能又相对独立,由于缺少基础技术组件的支撑,各系统平台都需要单独的用户认证,认证的机制也存在差异。用户在访问不同系统时,都需要重新进行身份认证,需要输入不同的帐号和口令,不仅不方便,容易遗忘,还存在安全隐患。因此要建立统一认证平台,将各个系统的认证方式进行统一,使得员工通过统一的入口,访问各个系统,大大提高员工的工作效率。
1 项目选型、设计及实现
1.1 建设目标
建立基于公司AD域的统一认证平台,使用登录票(Logon Ticket)或用户映射(User Mapping)方式为多个信息系统实现统一身份认证,主要包括:
单点登陆:用户以统一门户作为单一的登录入口,访问其它应用系统平台或业务功能。
单点注销:通过单一的退出操作,自动关闭已建立与后端多个应用系统服务器的会话连接,提高用户访问应系统的安全性。
会话管理:定义登陆后用户浏览器与身份认证服务之间连接的有效时长,可以配置相关管理规则,对“被保护资源”的使用进行强制重新认证。
帐号审计:根据审计需要,提供审计报表查询功能。操作日志:账号管理、账号映射管理和账号同步管理的所有操作,都需写入操作日志,并提供日志监控功能。
1.2 项目需求及现状分析
1.2.1 系统认证现状分析
分析江苏核电有限公司系统用户认证的现状,江苏核电认证方式主要有基于CAS的认证、基于SAP PORTAL的认证、系统自开发的认证。认证用户源主要包括AD域用户源、SAP ECC用户源、内部网员工薪资系统用户源及系统自开发的用户源。
1.3 统一认证平台选型分析
通过现状分析可以看出可选用的统一认证平台的实现方式分为两种:(1)基于SAP PORTAL登录票的单点登录;(2)基于认证系统(CAS)的单点登录。因为单点登录(SSO)的安全性问题比普通应用的安全性还要严重,所以首先从两种登录方式的安全性角度入手进行分析。
基于SAP PORTAL登录票的单点登录安全性分析。
(1)当web工程使用SAP登录票进行身份认证时,用户的登录票以非永久性cookie的方式存储在用户的web浏览器中,因此,在使用SSL(https)协议进行传输过程中,开发时需要保护登录票不被破坏或窃取。
(2)需标记登录票为安全的cookie,只有在在ssl(https)协议下,客户端浏览器才发送cookie,可以通过设置UME参数ume.logon.security.enforce_secure_cookie=true来实现。
(3)为了减少恶意用户使用登录票重复攻击,建议减少登录票的有效期,系统默认为8h,可以通过设置参数ume.admin.login.ticket_lifetime进行调整,這个调整需要重启服务,所以在更改此参数前,应做好规划。
基于认证系统(CAS)的单点登录的安全性分析。
(1)CAS认证包含两部分:CAS Server和CAS Client。CAS Server负责完成对用户的认证工作,CAS Client负责部署在客户端,当有对本地 Web 应用的受保护资源的访问请求,并且需要对请求方进行身份认证,Web应用不再接受任何的用户名密码等类似的 Credentials,而是重定向到CAS Server进行认证。
(2)TGC(cookie)的安全性:CAS通过SSL协议发送到客户端,信息被窃取难度非常大,确保CAS的安全性;指定TGC的有效期。
(3)CAS的Service Ticket只能使用一次,CAS协议规定,无论Service Ticket验证是否成功,CAS Server都会将服务端的缓存中清除该Ticket,从而可以确保一个Service Ticket 被使用两次。
(4)Service Ticket随机生成,且在一段时间内失效, 相关参数可以通过在web.xml中进行配置。
所以就两种登录方式的安全性而言,基于认证系统(CAS)的单点登录安全性要高于基于SAP PORTAL登录票的单点登录,项目决定使用CAS作为统一认证平台。
1.4 统一认证的技术实现及难点
整个设计思路分为4部分,CAS与SAP PORTAL的集成,CAS与JAVA类系统的集成,CAS与.net类系统的集成,CAS与MDM及ECM等平台系统集成,用户源方面则选用最大用户源AD域作为用户源,以员工号做为唯一的ID号。
基于CAS与JAVA类系统的集成,CAS与.net类系统的集成均有标准的接口规范,CAS与 ECM及主数据系统已经实现了集成,而SAP PORTAL使用自己的认证方式,如何实现SAP PORTAL与CAS两种认证方式之间的互信成为整个项目技术难点。
首先要解决SAP Portal的CAS认证。为了保证SAP Portal的版本的统一,我们不能直接在SAP Portal中部署CAS Client(需要修改标准组件),所以,我们增加一个CAS认证组件来部署CAS Client,用于实现CAS Server的认证,获取CAS当前登录账号信息。如何让SAP Portal信任CAS认证组件获取的CAS登录账号,需要在SAP Portal的认证组件中增加一個CAS登录模块,用于认证CAS认证组件获取的CAS登录账号。通过CAS登录模块登陆到SAP Portal后,需要一个页面重定向到SAP PORTAL。我们在KM中增加了一个重定向到SAP PORTAL的html(KM内容默认支持SAP Portal认证)。
关于单点登出的实现:用户点击登出,注销SAP Portal会话,重定向到CAS认证组件的登出页面,CAS认证组件的登出页面,清除CAS Session,并重定向到CAS Server的登出页面。
综上所述,通过在SAP Portal新增CAS Login Module组件及KM中增加了一个重定向到SAP PORTAL的html方式,实现了SAP Portal与CAS之前的互信。
2 结语
借助CAS认证系统作为统一认证平台,以AD作为唯一的用户源,统一了各个系统用户认证方式,大大减轻了用户运维的难度和新系统的接入成本。对用户而言,用户可以通过单一的登录页面访问各个系统处理工作任务,有效地促进应用系统内部资源有机的协同与统一,满足公司精细化管理的需要。
参考文献
[1] 张建伟.基于统一身份认证平台的局域网安全设计[J].计算机技术与发展,2019,29(1):124-129.
[2] 王强.文献共享平台中统一认证技术研究与实现[J].软件,2018,39(11):202-206.
[3] 陈兴伯,林宗祥,张云雯.基于数字化校园的统一认证平台需求分析设计[J].信息通信,2018(9):133-134.