统一登录认证的研发运维集成系统及其登录认证方法转让专利

申请号 : CN201911341476.0

文献号 : CN111274569A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 岳才杰胡岩峰刘亮陆茜茜陶家顺周梓泽高玮徽许浩

申请人 : 中国科学院电子学研究所苏州研究院

摘要 :

本发明公开了一种统一登录认证的研发运维集成系统,包括登录模块、统一认证模块、集成显示模块、分级认证模块,登录模块用于提供CAS单点登录的统一入口;统一认证模块用于对登录用户的合法性和权限进行一级认证,为认证合法的用户分配访问令牌,供其查看权限范围内的研发运维分系统;集成显示模块用于向一级认证合法的用户展示与其权限范围对应的研发运维分系统;分级认证模块集成在各分系统内,用于对分系统登录用户的合法性和权限进行二级认证,供研发运维分系统向二级认证合法的用户授权对应的功能。本发明认证用户登录一次即可使用多个应用系统,减少了频繁切换应用系统的时间,减轻了系统服务器的负担,同时提高了系统使用的效率和安全性。

权利要求 :

1.统一登录认证的研发运维集成系统,其特征在于,包括登录模块、统一认证模块、集成显示模块、分级认证模块,其中登录模块用于提供CAS单点登录的统一入口;统一认证模块用于对登录用户的合法性和权限进行一级认证,为认证合法的用户分配访问令牌,供其查看权限范围内的研发运维分系统;集成显示模块用于向一级认证合法的用户展示与其权限范围对应的研发运维分系统;分级认证模块集成在各分系统内,用于对分系统登录用户的合法性和权限进行二级认证,供研发运维分系统向二级认证合法的用户授权对应的功能。

2.根据权利要求1所述的统一登录认证的研发运维集成系统,其特征在于,所述统一认证模块基于LDAP实现用户的组织与管理,包括数据存储模块、数据加密模块、属性标记模块,其中数据存储模块用于存储研发运维系统的用户属性信息;数据加密模块用于加密存储用户认证密码;属性标记模块用于定义角色归类和用户类型,实现组织单元访问权限和用户本身权限的设置。

3.根据权利要求2所述的统一登录认证的研发运维集成系统,其特征在于,所述数据存储模块以树状结构存储信息,基本数据单元条目的格式为:ou=test,uid=user1,dc=info,dc=cn,其中dc,即domainControl,主要在目录中描述系统所在的域;o,即organization,主要在目录中描述不同的组织或部门,ou,即organizationUnit,主要在目录中主要用于描述统一的组织单元;uid,即userId,主要在目录中标识不同的系统用户或账户。

4.根据权利要求2所述的统一登录认证的研发运维集成系统,其特征在于,所述属性标记模块对集成的分系统类型进行归类整合,定义不同的组织单元对应不同的角色归类,同时定义属性标记用户类型UserType,实现用户本身权限的设置,具体如下表所示:表1 角色归类表

ou类别 说明 分系统查看权限

admin 系统管理员 全部分系统

config 配置管理员 持续集成、版本管理、静态分析分系统

developer 开发人员 持续集成、版本管理、问题追踪分系统test 测试人员 测试管理、问题追踪分系统

表2 用户权限表

用户类型(UserType) 类型说明 权限说明

devAdmin 开发团队负责人 成员的增删改查

testAdmin 测试团队负责人 成员的增删改查

configAdmin 配管团队负责人 成员的增删改查

5.根据权利要求1所述的统一登录认证的研发运维集成系统,其特征在于,所述分级认证模块包括登录用户分系统权限自动处理模块、认证用户与分系统本地用户关联模块,其中用户映射模块用于将统一认证的用户与研发运维分系统用户进行映射,实现用户的统一集成;认证用户与分系统本地用户关联模块用于将统一认证用户与分系统用户进行映射,用户映射表结构如下:表3 用户映射表结构表

USERNAME SYSTEM LOCALACCOUNT

User1 静态分析分系统 zhangs

User1 版本管理分系统 lis

User1 持续集成分系统 wangw

… … …

其中USERNAME和SYSTEM作为主键,USERNAME为单点认证的用户名,SYSTEM为统一集成的各分系统名称,LOCALACCOUNT为分系统对应用户名,当持有合法的ST的用户User1要访问分系统时,分系统向统一认证模块获取该用户的身份,以此作为凭证在用户映射表中找到对应的本地账号,如果信息正确则为用户授权访问系统资源。

6.根据权利要求1所述的统一登录认证的研发运维集成系统,其特征在于,所述集成显示模块通过Nginx反向代理实现跨域访问。

7.基于权利要求1-6任一项所述的研发运维集成系统的统一登录认证方法,其特征在于,包括如下步骤:通过登录模块提供的CAS单点登录统一入口输入账户和密码,并向统一认证模块发送请求;

统一认证模块对登录用户的合法性和权限进行一级认证,为认证合法的用户分配访问令牌,供其查看权限范围内的研发运维分系统;

集成显示模块向一级认证合法的用户展示与其权限范围对应的研发运维分系统,接收分系统选择指令;

研发运维分系统的分级认证模块对分系统登录用户的合法性和权限进行二级认证,为认证合法的用户分配本地令牌,向二级认证合法的用户授权对应的功能。

8.基于权利要求7所述的研发运维集成系统的统一登录认证方法,其特征在于,用户进入研发运维分系统后,当需要访问其他分系统时,分级认证模块通过本地令牌确认是否有访问待切换系统的权限,如果有,则直接切换分系统,否则登录用户的合法性和权限进行二级认证。

9.基于权利要求7所述的研发运维集成系统的统一登录认证方法,其特征在于,用户需要退出分系统时,在当前系统注销并清除本地令牌,用户再次访问其他分系统时,无法直接访问,需要通过分级认证模块重新进行身份认证。

说明书 :

统一登录认证的研发运维集成系统及其登录认证方法

技术领域

[0001] 本发明涉及软件开发与运维技术,具体涉及一种统一登录认证的研发运维集成系统及其登录认证方法。

背景技术

[0002] 随着软件开发运维技术的不断发展,逐步建立了各类信息应用系统。但各个应用系统的用户管理、系统登录自成体系,并且各系统的实现技术路线不一致,数据格式标准也不统一,难以进行有效集成和共享,缺乏统一集成框架,从而导致每个用户登录不同的系统需要切换不同的账户,且不能进行集中管理,给系统的使用和管理带来不便。单点登录是多系统集成的一个重要实践。单点登录使得多个应用系统共用一套用户体系和认证模式,简化了用户登录过程,显著提升用户工作效率,减轻管理员的管理工作,统一用户管理,实现高安全性的身份认证和管理,提升信息安全水平,一定程度上实现了应用系统的无缝链接和集成,满足企事业单位信息化发展和技术要求。
[0003] 实现单点登录的技术有很多,有基于经纪人、基于代理人、基于网关、基于Cookie及基于SAML等,针对不同架构系统使用不同的认证方式。杨华,毕永东等人提出一种基于单点登录的系统配置管理方法,参与配置方法的各个应用系统的用户认证登录信息集中存放在一个数据库或文件系统中,所有登录都由单点登录服务器负责验证,实现由单点登录服务器的统一管理。吴泓提出一种基于轻量级目录访问协议(Lightweight DirectoryAccess Protocol,LDAP)的统一身份库构建的单点登录系统实现方法,基于LDAP构建校园网业系统统一身份机制,整合校园网业务登录系统。
[0004] 然而,上述方法存在一定的缺点:(1)上述方法虽然统一了用户账号,但是在切换系统时仍然需要输入目标系统地址并进行登录才可以访问,没有统一的系统入口和展示框架,不能集中使用和管理;(2)没有对系统层面访问进行统一授权控制,缺少分级访问控制策略,不能细粒度的控制各个应用系统的登录权限;(3)没有将各应用系统的自身账户统筹管理,仍需要创建对应的授权账户或更改登录逻辑,使得多系统集成和使用不方便。

发明内容

[0005] 本发明的目的在于提出一种统一登录认证的研发运维集成系统。
[0006] 实现本发明目的的技术解决方案为:一种统一登录认证的研发运维集成系统,包括登录模块、统一认证模块、集成显示模块、分级认证模块,其中登录模块用于提供CAS单点登录的统一入口;统一认证模块用于对登录用户的合法性和权限进行一级认证,为认证合法的用户分配访问令牌,供其查看权限范围内的研发运维分系统;集成显示模块用于向一级认证合法的用户展示与其权限范围对应的研发运维分系统;分级认证模块集成在各分系统内,用于对分系统登录用户的合法性和权限进行二级认证,供研发运维分系统向二级认证合法的用户授权对应的功能。
[0007] 所述统一认证模块基于LDAP实现用户的组织与管理,包括数据存储模块、数据加密模块、属性标记模块,其中数据存储模块用于存储研发运维系统的用户属性信息;数据加密模块用于加密存储用户认证密码;属性标记模块用于定义角色归类和用户类型,实现组织单元访问权限和用户本身权限的设置。
[0008] 所述数据存储模块以树状结构存储信息,基本数据单元条目的格式为:ou=test,uid=user1,dc=info,dc=cn,其中dc,即domainControl,主要在目录中描述系统所在的域;o,即organization,主要在目录中描述不同的组织或部门,ou,即organizationUnit,主要在目录中主要用于描述统一的组织单元;uid,即userId,主要在目录中标识不同的系统用户或账户。
[0009] 所述属性标记模块对集成的分系统类型进行归类整合,定义不同的组织单元对应不同的角色归类,同时定义属性标记用户类型UserType,实现用户本身权限的设置,具体如下表所示:
[0010] 表1角色归类表
[0011]ou类别 说明 分系统查看权限
admin 系统管理员 全部分系统
config 配置管理员 持续集成、版本管理、静态分析分系统
developer 开发人员 持续集成、版本管理、问题追踪分系统
test 测试人员 测试管理、问题追踪分系统
[0012] 表2用户权限表
[0013]
[0014]
[0015] 所述分级认证模块包括登录用户分系统权限自动处理模块、认证用户与分系统本地用户关联模块,其中用户映射模块用于将统一认证的用户与研发运维分系统用户进行映射,实现用户的统一集成;认证用户与分系统本地用户关联模块用于将统一认证用户与分系统用户进行映射,用户映射表结构如下:
[0016] 表3用户映射表结构表
[0017] USERNAME SYSTEM LOCALACCOUNTUser1 静态分析分系统 zhangs
User1 版本管理分系统 lis
User1 持续集成分系统 wangw
… … …
[0018] 其中USERNAME和SYSTEM作为主键,USERNAME为单点认证的用户名,SYSTEM为统一集成的各分系统名称,LOCALACCOUNT为分系统对应用户名,当持有合法的ST的用户User1要访问分系统时,分系统向统一认证模块获取该用户的身份,以此作为凭证在用户映射表中找到对应的本地账号,如果信息正确则为用户授权访问系统资源。
[0019] 所述集成显示模块通过Nginx反向代理实现跨域访问。
[0020] 基于上述研发运维集成系统的统一登录认证方法,包括如下步骤:
[0021] 通过登录模块提供的CAS单点登录统一入口输入账户和密码,并向统一认证模块发送请求;
[0022] 统一认证模块对登录用户的合法性和权限进行一级认证,为认证合法的用户分配访问令牌,供其查看权限范围内的研发运维分系统;
[0023] 集成显示模块向一级认证合法的用户展示与其权限范围对应的研发运维分系统,接收分系统选择指令;
[0024] 研发运维分系统的分级认证模块对分系统登录用户的合法性和权限进行二级认证,为认证合法的用户分配本地令牌,向二级认证合法的用户授权对应的功能。
[0025] 用户进入研发运维分系统后,当需要访问其他分系统时,分级认证模块通过本地令牌确认是否有访问待切换系统的权限,如果有,则直接切换分系统,否则登录用户的合法性和权限进行二级认证。
[0026] 用户需要退出分系统时,在当前系统注销并清除本地令牌,用户再次访问其他分系统时,无法直接访问,需要通过分级认证模块重新进行身份认证。
[0027] 本发明与现有技术相比,其显著优点为:1)将分散的研发运维系统整合在一起集中管理,形成“研发-运维”一体化协同应用体系,不同角色的用户只需关心和使用自己相关的应用系统功能即可;2)认证用户登录一次即可使用多个应用系统,不必重新登录,减少了频繁切换应用系统的时间,减轻了系统服务器的负担,同时提高了系统使用的效率和安全性;3)在不改变原系统账号体系的条件下,可以使用应用系统的内部账号进行登录,降低了应用系统单点登录改造的难度,使得单点登录在企业内更易于实现。

附图说明

[0028] 图1为本发明的整体架构图。
[0029] 图2为本发明分级权限用户权限控制策略。
[0030] 图3为本发明的系统集成展示框架图。
[0031] 图4是本发明的单点登录模型。

具体实施方式

[0032] 下面结合附图和具体实施例,进一步说明本发明方案。
[0033] 如图1所示,统一登录认证的研发运维集成系统,包括登录模块、统一认证模块、集成显示模块、分级认证模块,其中登录模块用于提供CAS单点登录的统一入口;统一认证模块用于对登录用户的合法性和权限进行一级认证,为认证合法的用户分配访问令牌,供其查看权限范围内的研发运维分系统;集成显示模块用于向一级认证合法的用户展示与其权限范围对应的研发运维分系统;分级认证模块集成在各分系统内,用于对分系统登录用户的合法性和权限进行二级认证,供研发运维分系统向二级认证合法的用户授权对应的功能。
[0034] 进一步的,统一认证模块基于LDAP实现人员的组织与管理。轻量目录访问协议LDAP是运行于可靠传输协议之上的前端目录方式协议,是一种层次性数据库,按照树形结构组织信息。LDAP对浏览和查找目录及读取内容进行了专门的优化,具有非常好的读取数据能力,可以很好的处理大量用户并发访问,而目录结构也便于对人员的组织架构的管理。具体包括以下几个方面:
[0035] (1)数据模式和存储结构
[0036] 数据模式(Schema)定义了存储LDAP服务器中数据的基本类型。LDAP数据模式采用了面向对象的概念:基本数据单元条目(Entry)由属性类型及属性值构成,一个属性类型可以对应多个属性值。每个条目属于某个或多个对象类(Object class),每个对象类又由多个属性类组成,每个属性类有所对应的语法和匹配规则,可以描述研发运维系统用户属性信息。
[0037] LDAP服务器上的数据是以树状结构进行存储的,具体信息存储在条目(entry)的数据结构中。例如:entry(ou=test,uid=user1,dc=info,dc=cn),其中dc,即domainControl,主要在目录中描述系统所在的域(研发运维各应用系统所在的域);o,即organization,主要在目录中描述不同的组织或部门(例如:产品部、市场部等)ou,即organizationUnit,主要在目录中主要用于描述统一的组织单元(例如:研发组、测试组、管理组等);uid,即userId,主要在目录中标识不同的系统用户或账户。
[0038] (2)安全与性能
[0039] 安全性是单点登录的关键要素。多系统的认证密码保存在认证信息库LDAP中,能保证各应用系统的认证信息的安全不受威胁。LDAP可以选择多种加密方式对认证信息进行加密,用户名密码以加密字符串的方式存储在LDAP库中,外部程序与LDAP的连接通过LDAP提供的SASL安全验证。另外,用户名与密码的维护通过LDAP提供的接口进行修改,从而保证用户信息的安全性。
[0040] (3)自定义属性
[0041] 对集成的分系统类型进行归类整合,定义不同的组织单元对应不同的角色归类,同时定义属性标记用户类型UserType,实现用户本身权限的设置。具体如下表所示:
[0042]ou类别 说明 分系统查看权限
admin 系统管理员 全部分系统
config 配置管理员 持续集成、版本管理、静态分析分系统
developer 开发人员 持续集成、版本管理、问题追踪分系统
test 测试人员 测试管理、问题追踪分系统
[0043]用户类型(UserType) 类型说明 权限说明
devAdmin 开发团队负责人 成员的增删改查
testAdmin 测试团队负责人 成员的增删改查
configAdmin 配管团队负责人 成员的增删改查
[0044] LDAP的自定义属性可以实现用户的统一管理和授权,实现分项目、分团队、分类别管理,分系统按需访问,安全、管理便捷、结构清晰。
[0045] 统一认证模块通过登录模块拦截设定的URL,跳转到统一的登录入口页面。待登录成功后,返回真实的URL。而当前登录用户持有统一认证模块分配的访问令牌,可以查看权限范围内的应用系统。具体包括以下环节:
[0046] (1)认证插件集成
[0047] 为便于最小限度的更改原生的应用系统,采用插件扩展实现研发运维各应用系统的登录拦截。将插件安装至各系统插件目录中,重启服务启动插件,设置跳转的目标地址,其与认证模块的交互过程由认证插件完成。
[0048] (2)系统认证过程
[0049] 步骤1:用户输入要访问的研发运维应用系统的地址,发起HTTP请求,用户认证插件会分析HTTP请求中是否包含请求Service Ticket(ST),如果没有,则说明该用户是没有经过认证的,则进行步骤2;
[0050] 步骤2:将认证服务器的视图转到浏览器,呈献给用户;
[0051] 步骤3:用户输入个人用户名和密码,请求验证,认证插件将用户名和密码发送给CAS服务器重新验证;
[0052] 步骤4:如果用户提供了正确的认证信息,认证服务器随机产生一个相当长度、唯一、不可伪造的ST,并缓存以待将来验证,重定向到应用系统页面,否则返回步骤1;
[0053] 步骤5:应用系统的认证插件在得到Service和新产生的Ticket过后,与认证服务器进行身份核实,从而完成验证。
[0054] 进一步的,虽然各分系统集成LDAP账户体系基于CAS实现单点登录,但是在各系统分级授权时,仍然具备独立的权限管理体系,在进行用户管理和授权时需要将LDAP用户添加到自身的用户管理体系中,及其不方便。需要对各分系统进行用户登录修正,当用户登录后自动添加用户至对应授权的应用系统中。再者,采用基于用户映射的方法,解决多系统用户信息一致性问题,将LDAP用户与系统用户进行映射,不改变本地用户信息的基础下,实现用户的统一集成,确保了各应用系统用户信息的安全性。
[0055] 1)登录用户分系统权限自动处理
[0056] 已经经过认证登录到集成管理页面的同时,基于登录用户角色,对分系统的本地账户进行扫描,如果当前登录的用户分系统本地账户不存在则自动添加至分系统的本地用户授权管理系统中,设置对应的权限,便于后期操作。
[0057] 2)认证用户与分系统本地用户关联
[0058] 将LDAP认证用户与原始应用系统用户进行映射,采用原始系统的统一用户信息数据,并进行用户信息同步,建立用户映射表,表结构如下:
[0059]USERNAME SYSTEM LOCALACCOUNT
User1 静态分析分系统 zhangs
User1 版本管理分系统 lis
User1 持续集成分系统 wangw
… … …
[0060] 其中USERNAME和SYSTEM作为主键,USERNAME为单点认证的用户名,SYSTEM为统一集成的各分系统名称,LOCALACCOUNT为系统对应用户名。当持有合法的ST的用户User1要访问这些系统时,应用系统向CAS认证中心获取该用户的身份,以此作为凭证在用户映射表中找到对应的本地账号,如果信息正确则为用户授权访问系统资源。
[0061] 进一步的,所述集成显示模块使用iFrame框架进行不同系统集成,由于研发运维系统所在的域可能不同,在使用iFrame框架下进行不同系统的访问时,浏览器为了安全,禁止了不同域访问,此时会出现跨域访问问题。本发明通过Nginx反向代理实现跨域访问,只需要修改Nginx的配置即可解决跨域问题,支持所有浏览器,支持Session,不需要修改任何代码,并且不会影响服务器性能。例如,对某系统进行跨域集成访问的反向代理配置如下。
[0062]
[0063]
[0064] 实现上述统一登录认证的研发运维集成系统的具体方法为:
[0065] (1)对研发运维系统登录模块改造(通过扩展插件的形式),加入CAS认证功能,去除X-Frame Header保护机制(Nginx跨域访问);
[0066] (2)统一登录入口和集成框架,将各分系统访问地址嵌入集成显示框架中;
[0067] (3)在统一登录入口,输入账户和密码并向CAS认证服务器发送请求,判断该用户是否存在LDAP用户数据库中,如果存在,则登录成功,同时进行权限判断和应用系统过滤,进入系统集成管理主界面,否则重新登录;
[0068] (4)在系统统一管理主界面,选择授权访问的分系统,点击该分系统,用户通过客户端浏览器再次向CAS服务器发送认证请求;
[0069] (5)对当前访问用户进行服务权限认证,在用户认证成功后进入该系统,且为客户端浏览器设置一个本地令牌;若失败,返回步骤(3);
[0070] (6)用户可进行系统切换,当用户访问其他应用系统时,确认客户端浏览器已经通过本地令牌身份认证且授权访问该系统,则用户可以直接登录该应用系统;否则,返回步骤(4);
[0071] (7)如果用户需要退出系统时,可在当前业务进行系统注销并清除客户端浏览器中的本地令牌,此后用户再次访问其他应用系统时,无法直接访问,需要重新登录进行身份认证,返回步骤(3)。