单点登录技术在军事信息系统中的应用研究

2017-07-15 13:39姚刚齐玉东董庆超司维超
智能计算机与应用 2017年3期

姚刚 齐玉东 董庆超 司维超

摘要:随着军队信息化工作的进行,越来越多的军事信息系统被开发出来,如何更好地管理各个系统的用户和权限已成为一个重要的研究课题。单点登录技术可以实现一次登录,访问所有授权的系统。在分析了军事信息系统的现状和现有单点登录技术的特点基础上,得出了适合于军事信息系统的单点登录技术。针对某军事信息系统,总结其单点登录需求,给出了总体方案和系统组成,设计了权限管理、用户身份映射等关键模块,并给出了具体实现方法。实践表明,单点登录技术的应用将会大大提高工作效率,促进信息化工作的进行。

关键词:单点登录;军事信息系统;CAS

0引言

随着军队信息化工作的展开和推进,部队人员在工作中会应用接触越来越多的信息系统。这对于用户和管理员都造成了一定的实践操作困扰:用户如果要登录多个系统,不仅要面对多个登录界面,可能还要记忆不同的用户名和口令:而管理员则需要维护各个系统中的用户,保持用户的一致性。同时,频繁的输入密码对于安全性也带来了潜在的风险。因此,迫切需要一种技术来解决登录效率和安全性问题。单点登录技术(SS0,Single Sign-On),即用户只需要登录一次就可以访问网络中所有相互信任的系统。这种登录技术是开发应用系统的一种趋势,其设计关键是所有的系统共享一个身份认证信息,实现一次登录,访问所有授权系统。

1军事信息系统现状

随着军队信息化进程的日趋深入,部队各业务部门产生了多个信息系统。在长期的应用过程中,形成了各自独立的用户库和认证方法,并且访问机制、编程语言不统一。重点表现在以下2个方面:

1)多个应用需要多个客户端。由于军队的信息化是一个循序渐进的过程,不同的应用系统出现的时期也各有差异,而且还有许多都是C/S模式的系统,从而使一台电脑上需要安装多个客户端才能应用各个系统:

2)操作复杂且成本高。对于用户来说,同一用户可能要兼顾处理多个应用系统,因此在登录多个系统时要输入不同的用户名和口令。对于管理员来说,管理员则要管理和维护各个系统的数据库。

综上分析可知,要实现单点登录的研发设计,需要满足以下功能:

1)将所有应用系统的人口集成到浏览器中,从而免去多个客户端的安裝:

2)提供统一身份管理和单点登录。将现有的应用系统的用户规划组织为统一性质,完成统一的用户认证。在统一用户的基础上,实现单点登录功能。在统一用户登录到某一应用系统(通常是门户站点)后,当需要访问其他应用系统时,不必再次登录就可以直接进入应用系统。

2单点登录技术概述

目前,单点登录的技术可以分为开源和商用两种模式。使用较多的开源单点登录框架包括Yale CAS、Open SSO、Jsecuriy、Shibboleth等,各个框架各有特点。同样,市场上也存在有单点登录产品,包括Net Passport、Liberty等单点登录系统。上述单点登录的应用技术和实现手段均能够初步解决重复登录的问题,但是目前仍呈现出诸多有待完善的缺点。而本文研究核心则设定为其与军事信息系统的结合,充分考虑贴合部队的任务需求,同事也着重关注并引入了系统安全性、易用性、经济性等方面因素。Passport单点登录系统和Liberty单点登录系统中负责身份认证的服务器由国外公司控制,用户身份和系统的保密性及安全性受到威胁,不适合作为结合的对象系统。开源登录框架中Open SSO、Jsecuriy、Shibboleth的适用范围较窄且部署相对复杂,而CAS单点登录系统(Central Authentication Service)部署简单、成本经济,支持多种平台应用,安全可靠,因此本文研究即将CAS与军事信息系统进行了结合。

CAS作为较为成熟的框架,是Yale大学研发的免费开源框架,并且已经创建了诸多商业框架的应用实例。从CAS的结构体系看,CAS包括2部分:CAS Server和CAS Client。其中,Server将重点执行对用户的认证工作,需要独立部署,而其要处理的用户相关信息包括用户名/密码等凭证。Client则用于分析处理对客户端受保护资源的访问请求,当需要对请求方提交身份认证时,即重定向到CAS Server进行认证。CAS Client需要与受保护的客户端应用部署在一起,以Filter方式保护相应的资源,过滤从客户端发送的每一个Web请求,并且CAS Client会分析HTTP请求中是否包含请求Service Ticket,如果没有,则说明该用户还未经过认证;于是CAS Client会重定向用户请求到CAS Server,并传递Service(要访问的目的资源地址)。

3应用实例

3.1需求分析

某军事项目研究需要涉及多个应用系统进行协同工作。部队人员需要接触多个信息系统的账号和密码,存在一定的安全隐患。实践发现,不同应用系统之间各自的特色功能、设计方案和开发技术均有所不同。此外,不同应用系统开发时间前后各异、耗时长短不一,各自建立有相互独立的用户数据库和用户认证体系,用户信息互不兼容、数据格式互不统一,导致各应用系统间信息关联困难,形成了犹如障碍的信息壁垒,难以达成信息共享,灵活办公。进一步地,细节问题可描述呈现在操作使用方面:访问不同应用系统需要依次登录,过程枯燥而繁杂,耗费精力,并且大量的账号和密码信息在输入时难免出错,进而影响效率。为此,将单点登录技术与该军事信息系统相互结合,在各应用系统的登录认证机制中引入单点登录技术,使用户仅通过一次身份认证,便能够获得所有应用系统的访问授权,实现“一次登录、全网漫游”。

3.2应用研究设计

3.2.1总体设计方案

为了实现用户的快速登录和访问,设计时通过信息门户的方式展示相关新闻和所有应用系统的人口。将门户的登录和各应用系统的人口集成在首页的显著位置。将CAS技术应用到现有系统,具体可分为2部分来展开研究设计:将多个应用系统与CAS Client部署整合到一起,为用户提供相应服务和资源:CAS Server与原有应用系统的用户登录数据库相互连接,负责用户身份信息的认证和管理。在实际的具体分析时,本文采用模块化的设计方案,将系统分为客户端和服务器两个相互耦合的模块,分别对应CAS单点登录系统中的CAS Client和CAS Server。并根据后续处理功能不同,客户端与服务器下将分别设有各自定制子模块。

3.2.2权限管理模块设计

在权限管理时,需要建立统一的用户登录数据库,技术设计实体主要包括有用户、角色、应用系统和权限。权限管理模块在整体上规定了用户所属角色、分配权限、验证用户访问权限。具体研发信息如下:

1)用户。即请求访问使用并获取本系统服务和资源的用户,是用户登录数据库的关键主体部分:

2)角色。本系统中,用户和角色两者是相互关联的,用户是具体客观存在的人,角色是用户在本系统中拥有的身份,如有的角色负责对用户的访问权限进行授权,而有的角色则只负责查看用户的访问权限;

3)应用系统。应用系统就是用户请求访问的服务和资源,为方便本系统实现单点登录的功能,根据不同应用系统的特点,在应用系统类的组织筹建上主要包含了应用系统的名称、域名、IP地址、端口等信息;

4)权限。权限是用户真实执行的操作,不同的操作对应不同的功能,分配给不同的角色,而用户根据分派角色的不同,则具备不同的权限。权限类的设计建立包含了用户可能执行的操作(通常指访问的应用系统)和角色的身份。

面向对象的数据库设计思想简化了用户数据库建立的研发内容,只需要创建实体,再根据实际情况录入用户信息。本系统优化推出的用户登录数据库中,综上4种实体类之间的关系基本为:用户与角色之间为依赖关系,权限分配给不同角色,从而用户也将访问不同的应用系统,实体关系模型可见于图1。

在系统中,采用角色和权限管理,从而方便对资源的访问,其中角色是权限的集合,权限是可以访问和执行的业务功能的集合。一个用户可拥有多个角色,同一角色可多次授予不同的操作员。一个角色可配有多个权限,对于特定资源的访问,不同的权限组合构成不同的角色。一个权限对应多个功能点和数据访问规则,同一功能点或数据访问控制规则可与多个权限形成互相关联。

3.2.3用户身份映射模块设计

在用户登录数据库中增加用户身份映射表,用于存储服务器与各个应用系统的用户身份映射关系,假设用户A在系统中用户身份映射关系如表1所示。

用户A在服务器登录后,访问应用系统A时,系统将根据其身份映射信息查询该用户在应用系统A中的身份信息A1,并进行访问控制;同样,访问应用系统B时,得到用户名为A2,对应用系统B进行访问控制。用户身份映射模块结构则如图2所示。

3.2.4系统工作流程设计

当在门户网站上进行单点登录时,首先需要对访问用户的身份信息予以审核认证,此过程中用户将提供个人身份证明(正确的账号和密码),若用户信息与数据库信息匹配则认证成功,系统发放相应票据并允许用户访问系统。根据用户登录时的状态,则可划分有首次登录系统和登录后访问其他应用系统。在此,将对其分别展开研究论述如下。

3.2.4.1首次登录流程

用户首次登录流程如图3所示。用户首次登录系统时,服务器需要对用户身份信息进行验证,主要登录流程的步骤内容可设计详解为:

1)用户通过浏览器访问客户端应用系统;

2)客户端接收用户的访问请求,将访问请求重定向至服务器,对用户身份验证,过程携带要访问资源的URL(统一资源定位符),以便认证通过后返回请求资源;

3)服务器判断当前用户状态为首次登录,为用户提供登录界面:

4)用户输入账号和密码,结果返回服务器;

5)服务器通过用户认证模块,查询用户登录数据库,验证用户身份信息,若验证不通过,则访问失败,需要再次输入身份信息;若验證通过,则将登录账号发送到权限管理模块进行验证:

6)权限管理模块验证该用户是否有权限访问目标系统,通过查询用户数据库,验证用户权限,并返回查询结果给服务器:

7)若验证通过,生成并缓存sT验证票据(Service Ticket);反之则访问失败,重新登录;

8)携带服务器生成的sT票据,通过用户浏览器,访问客户端应用系统:

9)客户端请求服务器验证该sT的有效性,并将ST票据销毁。

综合以上设计步骤后,客户端应用系统将允许用户访问并提供请求资源和服务。

3.2.4.2登录后访问其他客户端应用系统流程

登录后访问其他客户端应用系统流程如图4所示。用户登录系统后再次访问其他应用系统时,无需再次进行身份信息认证,主要登录流程的步骤内容可设计详解为:

1)用户登录系统后,再次访问其他客户端应用系统;

2)客户端首先检查用户浏览器Cookie文件中是否存有sT票据,若不存在,则将访问请求重定向到服务器;

3)服务器从用户浏览器Cookie中获取TGC票据,并验证该TGC是否合法有效;

4)权限管理模块通过查询用户数据库,验证用户的权限,并返回结果给服务器;

5)服务器生成并缓存sT验证票据:

6)携带sT验证票据,访问客户端应用系统;

7)客户端请求服务器验证票据有效性,并销毁sT。

综合以上设计步骤后,客户端应用系统则允许用户免密码就可以提供请求资源和服务。

3.3单点登录技术的具体实现

3.3.1系统开发环境

完成单点登录技术的具体实现,首先需要对环境系统进行部署与配置。系统环境的建立过程中,需要用到的软件主要包括有:Tomcat 7.2(免费开源的WEB应用服务器);JDK6(JAVA的运行编辑环境);CAS Service版本CAS-Server-3.4.8-release;CAS Client版本CAS-Client-3.2.1-release;MYSQL数据库版本MYSQL-5.6.24-win32;MYSQL连接JDBC驱动版本MYSQL-connector-java-5.6-bin.jar。

3.3.2系统客户端模块的实现

本系统的设计主旨就是将军事信息系统各个应用系统和CAS Client二者相互结合部署,组成完整的单点登录系统的客户端部分。其核心思想是将需要的CAS Client相关配置文件(Portal Application Server)指定分发到各应用系统中,并对相关配置文件提供准确设定。该方案特点是两者同时部署在同一个服务器上,紧密结合,高度集成,操作管理融为一体、且快捷简便。用户访问客户端应用系统时,首先被身份认证过滤器拦截,检查用户浏览器Cookie中是否具有授权票据sT,若存在则允许访问,否则将重定向至服务器进行身份认证,通过认证后携带服务器生成票据重新访问,此时身份认证过滤器将允许访问操作。访问请求通过用户身份过滤器的允许后,将会被票据检验过滤器拦截。重定向至服务器检验授权票据是否有效,只有检验有效后方可实现应用系统访问。

3.3.3系统服务器模块的实现

根据某军事信息系统的工作现状:部分早期开发的应用系统内置的用户数据库信息比较完善,认证机制也比较健全;而部分新建应用系统的用户认证体系相对而言却并不完整。因此,本文着眼实际情况,将系统服务器的实现分为2类。一类是新建统一的用户登录数据库,与CAS Server连接,方便所有新建系统的用户注册和登录:另一类是将原有应用系统用户身份信息进行映射,建立用户身份信息映射模块,精简工作任务。用户登录时,服务器通过数据库连接驱动,在统一用户登录数据库中查询用户身份信息,并将结果返回服务器进行用户身份信息认证。因此要替换服务器原有的认证方式(CAS Server的原有认证机制),以用户登录数据库中的信息服务器作为新的认证方式,具体做法為:在服务器WEB-INF\lib配置文件中,编辑deployerConfigContext.xml文件,找到CAS Server认证方式的类并将其删除。系统服务器模块重点针对授权票据展开处理,用户成功登录后,服务器模块生成授权票据并导人浏览器Cookie中,验证客户端授权票据的有效性,当访问请求结束后销毁该票据。

3.4实施效果

单点登录技术应用于该军事信息系统后,用户在关联门户网站中依规输入其帐号和密码,系统会对合法性做出判定,对单点登录的代理程序发出请求并在各个应用服务器中对系统账户合法性进行判断,从而实现单点登录,对系统的功能和安全发挥了良好的保护作用。

4结束语

军事信息系统数量的日益增加将会使单点登录技术的应用范围也趋于广阔。本文在分析了现有单点登录技术和军事信息系统现状的基础上,研发提出了某军事信息系统单点登录技术的具体设计和实现方案,从而减少了用户记忆多个密码的麻烦,降低了密码遭遇窃取的风险。实践表明,单点登录技术不但能提高工作效率,而且能更好地保护系统和用户信息的安全。