可处理复杂关系的身份管理系统及方法与流程

文档序号:17895178发布日期:2019-06-13 15:56阅读:527来源:国知局
可处理复杂关系的身份管理系统及方法与流程

本发明涉及一种可处理复杂关系的身份管理系统及方法,具体涉及一种利用图数据结构重新构建身份数据模型的身份管理系统及方法。



背景技术:

企业级身份管理系统为企业提供了统一的用户身份管理,包括从用户入职、调岗、离职产生的一系列组织机构管理、用户属性管理、信息系统帐号分配、认证因子管理、权限管理、帐号关闭、策略管理等。身份管理系统在数据层面上本质就是对组织机构、用户身份、信息系统帐号、资源、服务、数据等对象以及对象间关系的管理。身份数据所采用的存储技术、数据结构、身份数据模型直接决定了身份管理系统对复杂关系场景的处理能力。

如图1所示的身份数据模型图,现有身份管理系统,例如oracleidm、ibmtivolitim等,采用的存储技术是目录服务,例如ldap(轻量目录访问协议,lightweightdirectoryaccessprotocol)、activedirectory(活动目录)等,数据结构是树状目录结构。随着企业信息化的不断发展以及云、大数据等新技术的运用,基于树状目录结构的身份数据模型已经不能满足企业信息化发展的需求。在复杂的身份管理场景下,由于资源种类众多及数据组合众多,现有以角色授权的管理模式由于权限组合太多且无法及时动态调整,无法应对这种复杂场景的需求。用户能否访问某个应用、某种云资源、某种数据组合不是一个角色能够决定的,需要动态的根据用户属性、用户归属的部门及上级部门的属性、用户所属的用户组属性、用户与其他用户的关系(例如是否存在委托)及被访问资源、服务、数据的属性进行综合判断才能决定。实现这种基于多维度关联对象属性的动态访问控制,首先必须要求身份的数据存储及数据结构能够表达复杂的对象间关系并且能够支持对象灵活的属性管理。

现有技术由于采用树状目录结构,一个节点只能与唯一的父节点关联,只能表达简单的从属关系,无法表达复杂关系。例如:1.人员多归属关系,用户a在集团下的两家公司同时任职,在x公司任职总经理,在y公司任职财务总监;2.帐号共用关系,用户a与用户b都是系统q的管理员,他们需要共同使用系统q中的admin帐号;3.帐号委托关系,用户a未来一周要出差,需要将自己在系统p中的帐号a临时委托给用户b使用;4.云平台中复杂的运维管理关系,用户a是云平台的运维管理员,将用户a分配给m、n两个运维小组,m组可管理vm001、vm002、vm003三台虚拟机,n组是一个分时班组,a可在每天14:00-22:00点管理db001、db002两个数据库。

此外由于存储技术的限制,对象要增加/删除属性都必须要变动ldap的schema(数据库对象的集合),这种变更非常不灵活,在已经存储了大量数据的ldap中,变更执行时间长、性能消耗大,会影响当前运行系统的使用。鉴于现有技术中存在的上述问题,急需一种可处理复杂关系的身份管理系统及方法。



技术实现要素:

为了克服上述缺陷,本发明提供一种可处理复杂关系的身份管理系统及方法,能够管理具有复杂关系的身份数据。

本发明一方面提供一种可处理复杂关系的身份管理系统,包括:身份管理模块、身份数据管理模块、图数据库,其中,所述身份管理模块用于接收并解析身份管理操作指令,并向所述身份数据管理模块发送对应的身份数据操作指令;所述身份数据管理模块用于将身份数据操作指令解析为所述图数据库的操作指令,操作所述图数据库更新身份数据;所述图数据库用于以图数据结构构建身份数据模型及存储身份数据。

根据本发明的一实施方式,所述身份管理操作指令包括为用户创建身份、用户调岗、为用户分配信息系统帐号权限、将用户分配到一个运维小组、为用户分配云资源访问权限。

根据本发明的一实施方式,所述身份管理操作指令格式包括json或者xml。

根据本发明的一实施方式,所述图数据结构包括顶点和边,所述顶点表示一种对象类型、一个对象或者一组附加属性,所述边表示两个所述顶点之间的关系。

根据本发明的一实施方式,所述顶点包括身份提供者、用户类型、用户对象身份、岗位、部门、机构、用户组、服务提供者、资源类型、资源、服务类型、服务、操作类型、操作、动态权限、静态权限、帐号、共享帐号、委托帐号。

根据本发明的一实施方式,所述边包括用户对象身份-实例化-用户类型、身份提供者-提供-用户对象身份、机构-归属-机构、部门-归属-机构、岗位-归属-部门、用户对象身份-任职-岗位、帐号-归属-服务提供者、用户对象身份-拥有-帐号、用户对象身份-共用-共享帐号、用户对象身份-委托-委托帐号、委托帐号-委托给-用户、委托帐号-代表-帐号、用户对象身份-被赋予-属性标签。

根据本发明的一实施方式,所述图数据库的操作指令包括对所述顶点或者所述边的增、删、改、查操作。

根据本发明的一实施方式,所述身份数据的存储形式包括neo4j、janusgraph、apachetinkerpop、arangodb、orientdb或者hugegraph。

根据本发明的一实施方式,还包括运行态身份子视图生成模块,用于向所述图数据库发出图查询指令查询所述身份数据,并将所述身份数据的数据结构转换为其他系统需要的数据结构。

根据本发明的一实施方式,所述运行态身份子视图生成模块的工作过程包括:a.生成访问者的等效属性,从帐号顶点开始进行图遍历,获得赋予所述帐号的标签属性顶点、拥有所述帐号的用户实体身份顶点、提供用户身份的身份提供者顶点、赋予用户实体身份的标签属性顶点、用户任职的岗位顶点、岗位归属的部门顶点、部门归属的上级部门顶点,累加以上顶点的属性,生成运行态身份子视图中帐号的等效属性;b.生成受访者的等效属性,从操作顶点开始进行图遍历,获得所述操作顶点使用的服务顶点,所述服务顶点上赋予的属性标签顶点、服务访问的资源顶点、提供资源的服务提供者顶点,累加以上顶点的属性,生成所述运行态身份子视图中操作的等效属性;c.生成访问控制的等效策略,从所述操作顶点开始进行图遍历,获得所述操作顶点上的动态权限顶点,获得所述服务顶点上的动态权限顶点,获得所述资源顶点上的动态权限顶点,累加以上顶点中记录的访问控制策略,生成所述运行态身份子视图中的等效策略。

本发明另一方面还提供一种可处理复杂关系的身份管理方法,包括以下步骤:接收身份管理操作指令,将所述身份管理操作指令解析为身份数据操作指令;将所述身份数据操作指令解析为图数据库的操作指令;所述图数据库的操作指令操作图数据库更新图结构身份数据。

本发明的可处理复杂关系的身份管理系统及方法采用基于图数据结构的身份数据模型,可处理现有身份管理系统中无法处理的多种复杂关系,大幅提升企业级身份管理系统的管理能力。同时,通过运行态身份子视图生成模块按需将部分身份数据转换为树/表结构数据,还可提供给其他信息系统使用,提高了数据使用效率。

附图说明

图1是现有身份管理系统基于树状目录结构的身份数据模型图;

图2是本发明可处理复杂关系的身份管理系统示意图;

图3是本发明图数据结构处理复杂关系的示例一;

图4是本发明图数据结构处理复杂关系的示例一;

图5是本发明图数据结构处理复杂关系的示例一;

图6是本发明运行态身份子视图生成模块的工作过程示意图;

图7是本发明可处理复杂关系的身份管理方法步骤图。

具体实施方式

下面结合具体实施方式对本发明作详细说明。

本发明的可处理复杂关系的身份管理系统及方法,改变了身份管理系统中的存储技术及数据结构,采用图数据库存储技术替代原目录服务存储技术,采用图数据结构替代原树状目录结构。

现有身份管理系统采用目录服务存储身份数据,树状目录结构只能表达单归属关系,一个节点只能属于唯一的父节点,只能描述简单的归属关系,无法表达复杂关系。图数据库起源于欧拉图理论,图数据库以“图”这种数据结构存储和查询数据。图数据结构由顶点和边组成,图中两个任意顶点都可以通过边进行关联。图数据库的优势是可描述复杂的对象间关系,通过图查询可从一个顶点通过边快速遍历与其关联的其他顶点,由于存储结构的特点,图数据库中边的遍历性能要远远高于其他类型数据库,并且图数据库中的顶点属性可以动态扩展,不受现有数据影响。图数据库的这些优点非常适合于处理复杂的身份数据存储。

本发明还提供了运行态身份子视图的转换模块,以满足各种场景及系统的运行时使用需求。由于目前的大部分应用无法直接使用图数据,为了能够将图数据库中的身份数据提供给其他信息系统使用,需要通过运行态身份子视图转换模块将部分身份数据转换为树/表等其他信息系统能够使用的数据结构,以此满足各种场景及系统的运行时使用需求。

图2是本发明可处理复杂关系的身份管理系统示意图。如图2所示,本发明的可处理复杂关系的身份管理系统包括:身份管理模块101、身份数据管理模块103、图数据库105。

身份管理模块101用于接收并解析身份管理操作指令,并向身份数据管理模块103发送对应的身份数据操作指令。身份管理模块101接收系统操作员通过人机交互接口发出的身份管理操作指令,或者通过其他信息系统调用身份管理系统的接口向身份管理系统发送的身份管理操作指令,将身份管理操作指令解析为身份数据操作指令并发送给身份数据管理模块103。身份管理操作指令可为业务操作指令,包括但不限于为用户创建身份、用户调岗、为用户分配信息系统帐号权限、将用户分配到一个运维小组、为用户分配云资源访问权限等。身份管理操作指令格式包括但不限于json、xml。json(javascriptobjectnotation)是一种轻量级的数据交换格式,它基于ecmascript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据,简洁和清晰的层次结构使得json成为理想的数据交换语言,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。xml是可扩展标记语言(标准通用标记语言的子集),是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然可扩展标记语言占用的空间比二进制数据要占用更多的空间,但可扩展标记语言极其简单易于掌握和使用。

身份数据管理模块103用于将身份数据操作指令解析为图数据库105的操作指令,操作图数据库105更新身份数据。身份数据管理模块103收到身份数据操作指令后,将身份数据操作指令解析为图数据库105的操作指令,并调用图数据库接口更新身份数据。

图数据库105用于以图数据结构构建身份数据模型及存储身份数据。本发明的关键是利用图数据结构构建身份数据模型,以达到处理描述关系的效果。图数据结构包括顶点和边,顶点包括但不限于:一种对象类型、一个对象或者一组附加属性,一条边表示两个顶点之间的关系。顶点包括但不限于:身份提供者、用户类型、用户对象身份、岗位、部门、机构、用户组、服务提供者、资源类型、资源、服务类型、服务、操作类型、操作、动态权限、静态权限、帐号、共享帐号、委托帐号等。边包括但不限于:用户对象身份-实例化-用户类型、身份提供者-提供-用户对象身份、机构-归属-机构、部门-归属-机构、岗位-归属-部门、用户对象身份-任职-岗位、帐号-归属-服务提供者、用户对象身份-拥有-帐号、用户对象身份-共用-共享帐号、用户对象身份-委托-委托帐号、委托帐号-委托给-用户、委托帐号-代表-帐号、用户对象身份-被赋予-属性标签等。图数据库的操作指令包括但不限于对图数据中顶点及边的增、删、改、查等操作。

图数据库105对身份数据的存储形式包括并不限于:neo4j、janusgraph、apachetinkerpop、arangodb、orientdb、hugegraph等,其中,neo4j是一个高性能的、nosql图形数据库,它将结构化数据存储在网络上而不是表中。apachetinkerpop是apache基金会旗下的一种开源的、与供应商无关的图形计算框架。arangodb是一个原生多模型数据库,兼有键/值对、图和文档数据库。janusgraph是基于属性图的模型。orientdb是兼具文档数据库的灵活性和图形数据库管理链接能力的可深层次扩展的文档-图形数据库管理系统。hugegraph系统支持的是属性图,即图中存储的主要数据是带属性的顶点和带属性的边。

以下是采用本发明的图数据结构处理复杂关系的3个示例。

图3是本发明图数据结构处理复杂关系的示例一。如图3所示,处理身份多归属关系。用户李四同时在一家大型企业下的两家公司任职,在分公司1的财务部任职财务总监,在分公司2任职总经理。图中“机构”及“部门”顶点代表公司的组织,“机构”及“部门”顶点间的“归属”边代表组织机构之间的层级关系,“用户实体身份”顶点代表用户李四,“岗位”顶点代表用户李四在机构及部门中的工作岗位,连接两个岗位的两条“任职”边代表李四在分公司1财务部任职财务总监,在分公司2任职总经理。

图4是本发明图数据结构处理复杂关系的示例二。如图4所示,处理帐号委托关系。用户李四将他拥有的财务系统帐号临时委托给张三,并设置委托期限为3天。图中“服务提供者”顶点代表财务系统,“帐号”顶点代表财务系统中的一个帐号lisi,两个“用户实体身份”顶点代表李四和张三用户,连接“用户实体身份”和“帐号”顶点的拥有边代表李四拥有帐号lisi,委托帐号”顶点代表该帐号被委托及委托条件,“委托”及“委托给”边代表用户李四将帐号lisi委托给用户张三。

图5是本发明图数据结构处理复杂关系的示例三。如图5所示,处理多人共用一个帐号的关系。用户张三和李四共用一个财务系统的帐号。图中“服务提供者”顶点代表财务系统,“帐号”顶点代表财务系统中的一个帐号acc,“共享帐号”顶点代表acc帐号被作为共享帐号使用,两个“用户实体身份”顶点代表李四和张三用户,两条“共用”边代表李四和张三正在共用帐号acc。

本发明采用基于图数据结构的身份数据模型,可处理现有身份管理系统中无法处理的多种复杂关系,大幅提升了企业级身份管理系统的管理能力。

根据本发明的另一实施例,可处理复杂关系的身份管理系统还包括运行态身份子视图生成模块107,用于向图数据库105发出图查询指令查询身份数据,并将身份数据的数据结构转换为其他系统需要的数据结构。运行态身份子视图生成模块107通过图查询指令从图数据库105中获取身份数据,并将图结构的身份数据转换为树/表结构等其他信息系统能够使用的数据,将这些数据提供给其他信息系统使用,以满足各种场景及系统运行时的使用需求。

下面具体举例说明运行态身份子视图生成模块107的工作过程。图6是本发明运行态身份子视图生成模块的工作过程示意图。如图6所示,首先,生成访问者的等效属性。从config_admin帐号顶点开始进行图遍历,获得赋予帐号的标签属性顶点、拥有此帐号的用户实体身份顶点、提供用户身份的身份提供者顶点、赋予用户实体身份的标签属性顶点、用户任职的岗位顶点、岗位归属的部门顶点、部门归属的上级部门顶点。通过累加以上顶点的属性,生成运行态身份子视图中帐号的等效属性。

其次,生成受访者的等效属性。从操作顶点开始进行图遍历,获得其使用的服务顶点,服务顶点上赋予的属性标签顶点、服务访问的资源顶点、提供资源的服务提供者顶点。通过累加以上顶点的属性,生成运行态身份子视图中操作的等效属性。

第三,生成访问控制的等效策略。从操作顶点开始进行图遍历,获得操作顶点上的动态权限顶点,获得服务顶点上的动态权限顶点,获得资源顶点上的动态权限顶点。通过累加以上顶点中记录的访问控制策略,生成运行态身份子视图中的等效策略。

在任何顶点变更后,均可通过图遍历快速计算出运行态身份子视图中需要更新的等效数据,保证运行态身份子视图中数据的实时性和一致性。应用程序可直接使用表结构的运行态身份子视图数据,通过访问者属性、受访者属性以及访问控制策略进行动态的权限判断。通过运行态身份子视图生成模块107按需将身份数据转换为树/表结构数据,可提供给其他信息系统使用,提高了数据使用效率。

图7是本发明可处理复杂关系的身份管理方法步骤图。如图7所示,本发明还提供一种可处理复杂关系的身份管理方法,具体步骤如下:

步骤1:接收身份管理操作指令,将身份管理操作指令解析为身份数据操作指令。系统操作员可通过浏览器访问身份管理系统,向身份管理系统发送身份管理操作指令,或者可通过其他信息系统调用身份管理系统的接口,向身份管理系统发送身份管理操作指令。

步骤2:将身份数据操作指令解析为图数据库的操作指令。身份数据管理模块103收到身份数据操作指令后,将身份数据操作指令解析为图数据库105的操作指令,并调用图数据库接口更新身份数据。

步骤3:图数据库的操作指令操作图数据库更新图结构身份数据。图数据库105的操作指令包括但不限于对图数据中顶点及边的增、删、改、查等操作。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1