CN115150105A - 一种分布式图数据库中的身份认证方法和系统 - Google Patents

一种分布式图数据库中的身份认证方法和系统 Download PDF

Info

Publication number
CN115150105A
CN115150105A CN202211062882.5A CN202211062882A CN115150105A CN 115150105 A CN115150105 A CN 115150105A CN 202211062882 A CN202211062882 A CN 202211062882A CN 115150105 A CN115150105 A CN 115150105A
Authority
CN
China
Prior art keywords
ldap
client
authentication
computing node
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211062882.5A
Other languages
English (en)
Inventor
岳通
吴敏
王玉珏
叶小萌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Yueshu Technology Co ltd
Original Assignee
Hangzhou Yueshu Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Yueshu Technology Co ltd filed Critical Hangzhou Yueshu Technology Co ltd
Priority to CN202211062882.5A priority Critical patent/CN115150105A/zh
Publication of CN115150105A publication Critical patent/CN115150105A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种分布式图数据库中的身份认证方法,该方法包括:图数据库接收客户端的登录请求,并确定登录请求中客户端指定的计算节点;图数据库,通过计算节点向元数据管理节点发送查询请求,指示元数据管理节点判断是否存在与登录请求对应的影子用户,若是,通过计算节点,基于参数信息和用户名得到客户端的识别名,根据识别名和登录请求中的客户端密码生成LDAP认证请求,并将其发送至LDAP服务器;指示LDAP服务器,根据LDAP认证请求对客户端进行身份认证,并将认证结果返回至计算节点。通过本申请,解决了相关技术对图数据库中身份认证方法存在的维护复杂且安全性较差的问题,在针对复杂度高且数据量大的用户校验进行维护管理时更加高效方便,且具备更好的安全程度。

Description

一种分布式图数据库中的身份认证方法和系统
技术领域
本申请涉及分布式图数据库领域,特别是涉及一种分布式图数据库中的身份认证方法和系统。
背景技术
随着大数据和人工智能的迅猛发展,超大规模关系网络逐步在社交推荐、风控、物联网、区块链、安防等领域被广泛使用,而作为所有这些应用的技术基石之一,分布式图数据库需要处理的数据量成几何状增长。
数据库系统安全有两个重要领域:身份认证和权限管理,前者要解决“系统里有没有这个人”的问题,后者要解决“他有没有权限执行某项操作”的问题。对于容纳千亿个顶点和万亿条边的图数据库集群而言,要实时保证数据的安全就需要在客户端和图数据库服务器建立连接之前,对客户端进行身份认证。
在相关技术中,图数据库中的身份认证,是图数据库服务器内部识别客户端身份的过程,并且由图数据库服务器,决定客户端应用是否被允许以请求的用户名来建立连接。
相关技术中在图数据库中实现客户端身份认证的方式,需要在图数据库中维护管理客户端的用户名及密码,在应对数据量较大且客户端信息分级分类复杂的情况时,配置及维护的过程步骤复杂且重复冗余,且由于图数据库作为一个综合管理平台,将用户密码置于其上安全性也较低。
目前,针对相关图数据库中身份认证方法存在的维护复杂且安全性较差的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种分布式图数据库中的身份认证方法、系统、计算机设备和计算机可读存储介质,以至少解决相关技术中维护成本复杂且安全性较差的问题。
第一方面,本申请实施例提供了一种分布式图数据库中的身份认证方法,其特征在于,通过LDAP服务器实现客户端身份认证,且所述图数据库的配置文件中设置有用于绑定LDAP服务器的参数信息,所述方法包括:
图数据库接收客户端的登录请求,并确定所述登录请求中客户端指定的计算节点;
所述图数据库,通过所述计算节点向元数据管理节点发送查询请求,指示所述元数据管理节点判断是否存在与所述登录请求对应的影子用户,若是,
通过所述计算节点,基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名,根据所述识别名和所述登录请求中的客户端密码生成LDAP认证请求,并将其发送至所述LDAP服务器;
指示所述LDAP服务器根据所述LDAP认证请求对客户端进行身份认证,并将认证结果返回至所述计算节点。
在其中一些实施例中,所述LDAP服务器根据所述LDAP认证请求对客户端进行身份认证,包括:
所述LDAP服务器,获取LDAP认证请求中包含的识别名和客户端密码;
通过将所述识别名和密码在LDAP目录树中进行匹配,判断本地是否存在与所述识别名和客户端密码对应的信息;
若是,返回认证成功信息至所述计算节点,若否,返回认证失败信息至所述计算节点。
在其中一些实施例中,通过LDAP简单绑定的情况下,基基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名包括:
通过所述计算节点,查询所述参数信息中是否配置有前置预设字符串和后置预设字符串,若是,
基于所述前置预设字符串、后置预设字符串和所述客户端用户名,生成所述客户端的识别名,
其中,所述前置预设字符串用于添加在所述用户名之前,所述后置预设字符串用于附加至所述客户端用户名之后。
在其中一些实施例中,通过LDAP搜索绑定的情况下,基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名包括:
通过所述计算节点,查询所述参数信息中是否配置有初始搜索用户名和初始搜索客户端密码,
若是,指示所述LDAP服务器进行指定初始搜索,包括:将所述初始搜索用户名和所述初始搜索客户端密码绑定至LDAP目录,并根据所述初始搜索用户名和所述初始搜索客户端密码,在所述LDAP目录树中进行初始搜索得到所述识别名;
若否,通过所述计算节点进行匿名绑定,并指示所述LDAP服务器中进行匿名绑定模式下的初始搜索,得到所述识别名。
在其中一些实施例中,通过LDAP搜索绑定的情况下,所述方法还包括:
所述计算节点,在所述初始搜索时与所述LDAP服务器建立第一次交互连接;
所述计算节点,在得到识别名根据识别名和客户端用户名生成LDAP认证请求之后,将LDAP认证请求发送至所述LDAP服务器之前,断开所述第一次交互连接;
重新与所述LDAP服务器建立第二次交互连接,并将所述LDAP认证请求发送至所述LDAP服务器,指示所述LDAP服务器根据所述LDAP认证请求对客户端进行身份认证。
在其中一些实施例中,所述图数据库接收客户端的登录请求之前,所述方法还包括:
在所述图数据库中,将具备登录资格的客户端设置为影子用户,并对其分配相应的权限;
在所述LDAP服务器中,按照LDAP目录格式保存所述具备登录资格的客户端的用户名和客户端密码。
在其中一些实施例中,所述图数据库是分布式图数据库Nebula Graph。
第二方面,本申请实施例提供了一种分布式图数据库中的身份认证系统,通过LDAP服务器实现客户端身份认证,且所述图数据库的配置文件中设置有用于绑定LDAP服务器的参数信息,所述系统包括:图数据库、客户端和LDAP服务器,其中:
所述图数据库用于,接收客户端的登录请求,并确定所述登录请求中所述客户端指定的计算节点,
以及,通过所述计算节点向元数据管理节点发送查询请求,指示所述元数据管理节点判断是否存在与所述登录请求对应的影子用户,若是,通过所述计算节点,基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名,根据所述识别名和所述登录请求中的客户端密码生成LDAP认证请求,并将其发送至所述LDAP服务器;
所述LDAP服务器用于,指示所述LDAP服务器根据所述LDAP认证请求对客户端进行身份认证,并将认证结果返回至所述计算节点。
第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的方法。
相比于相关技术,本申请实施例提供的一种分布式图数据库中的身份认证方法,通过图数据库接收客户端的登录请求,并确定登录请求中客户端指定的计算节点;通过计算节点向元数据管理节点发送查询请求,指示元数据管理节点判断是否存在与登录请求对应的影子用户,若是,通过计算节点,基于参数信息和登录请求中的用户名,得到客户端的识别名,根据识别名和登录请求中的客户端密码生成LDAP认证请求,并将其发送至LDAP服务器;指示LDAP服务器根据LDAP认证请求对客户端进行身份认证,并将认证结果返回至计算节点。解决了相关技术对图数据库中身份认证方法存在的维护复杂且安全性较差的问题,在针对复杂度高且数据量大的用户校验进行维护管理时更加高效方便,且具备更好的安全程度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种分布式图数据库中的身份认证方法的应用环境示意图;
图2是根据本申请实施例的一种分布式图数据库的身份认证方法的流程图;
图3是根据本申请实施例的一种构建Nebula Graph集群的示意图;
图4是根据本申请实施例的一种LDAP服务器的目录树的示意图;
图5是根据本申请实施例的一种基于LDAP简单绑定模式下的身份认证的示意图;
图6是根据本申请实施例的一种基于LDAP搜索绑定模式下的身份认证的示意图;
图7是根据本申请实施例的一种分布式图数据库的身份认证系统的结构框图;
图8是根据本申请实施例的电子设备的内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本申请提供的一种分布式图数据库中的身份认证方法,可以应用在如图1所示的应用环境中,图1是根据本申请实施例的一种分布式图数据库中的身份认证方法的应用环境示意图。如图1所示,用户可以通过客户端10向图数据库20发送登录请求,图数据库20接收该登录请求之后,将该登录请求移送至第三方服务-LDAP服务器30进行认证,并最后获得认证结果,决定是否允许客户端登录。
图数据库是一系列点和边的集合,其中,点表示“实体”,边表示“实体”之间的连接关系。图数据中的节点可以分为元数据管理节点(meta)、存储节点(storge)和计算节点(graph);进一步的,由计算节点、元数据管理节点、存储节点可以组成统一对外提供服务的单元Nebula Graph集群。
本申请提供了一种分布式图数据库的身份认证方法,基于LDAP服务器实现客户端身份认证,图数据库中的配置文件中设置有用于绑定LDAP服务器的参数信息。
图2是根据本申请实施例的一种分布式图数据库的身份认证方法的流程图,如图2所示,该流程包括如下步骤:
S201,图数据库接收客户端的登录请求,并确定登录请求中客户端指定的计算节点;
本实施例中,图数据库可以是常见的任意一种图数据库,例如Nebula Graph图数据库,其通过内部多个不同类型的节点组成的Nebula Graph集群对外部提供服务;
图3是根据本申请实施例的一种构建Nebula Graph集群的示意图,如图3所示,该集群由1个graph节点,3个meta节点,3个storage节点组成,
其中,由于元数据都存在meta节点的partition0上,并且raft group 里面由3个副本来保证元数据数据的高可用,因此共有3个meta节点。点和边的图数据有3个partition,每个partition有3副本,存在于3个storage节点上,且每个storage节点有一个partition的leader,不同机器上的同一个partition的副本构成了一个raft group。
当然,上述图3仅是举例说明了某一种具体的Nebula Graph集群架构,在实际应用时也可结合需求,对上述集群架构进行进一步的简化。应当理解,采用何种集群结构都应当属于本申请的保护范围,本领域技术人员也可以灵活设计其架构。
需要说明的是,客户端在发送登录请求之前,需要首先在图数据库中配置一些必要的参数信息,这些参数信息用于调用及绑定LDAP服务器;具体的,当采用不同搜索模式时,设置的具体参数信息也不相同。
进一步的,当Nebula Graph集群接收到该登录请求之后,将对该登录请求进行一系列处理,以验证发送该请求的客户端(用户)的身份是否可信。
集群会首先确定登录请求中由客户端指定的某个计算节点(graph),其中,计算节点是一种无状态的专用于计算的节点。本实施例中,通过该计算节点,可以对请求进行分配转发,以及处理一些与LDAP服务器和客户端的信息交互。
S202,图数据库,通过计算节点向元数据管理节点发送查询请求,指示元数据管理节点判断是否存在与登录请求对应的影子用户;
其中,用户的登录请求中包括用户名和用户密码(客户端密码),计算节点获得该账号和密码之后,首先会判断当前需要执行何种类型的认证。在本实施例中,由于集群中配置了参数,因此,计算节点将根据该配置参数,确定是否要进行LDAP认证,或者是需要执行其他类型的认证;
进一步的,计算节点将用户账号和用户密码发送至元数据管理节点(meta),由该元数据管理节点判断是否存在与登录请求对应的影子用户。需要说明的是,元数据管理节点是用于管理元数据的节点,其可以完成对用户信息的查询和匹配,具体的,元数据管理节点的leader节点判断与登录请求对应的影子用户是否存在。
需要理解的是,在图数据库中使用LDAP身份认证时,首先需要在图数据库中判断用户是否存在,只有用户存在,才能通过用户名和密码去LDAP服务进行认证,进而得到认证结果并将其返回给客户端。
上述过程中,由于图数据库不关心该用户的密码是什么,只关心该用户名是否存在,因此该类型用户被称为影子用户。进一步的,在LDAP身份认证完之后,需要使用影子用户操作图数据库,因此,在图数据库中需对该影子用户分配适当的权限。
S203,若是,通过计算节点,基于参数信息和登录请求中的用户名得到客户端的识别名,根据识别名和登录请求中的客户端密码生成LDAP认证请求,并将其发送至LDAP服务器;
LDAP全称为:轻量目录访问协议(lightweight directory access protocol),其中约定了客户端和服务端的通信方式;
本实施例中的LDAP服务器即为安装并配置了LDAP协议(的具体实现程序)的服务器,其主要通过“目录”提供服务,该目录具体是一个为查询、浏览和搜索而优化的专业分布式数据库,通常呈树状结构。
图4是根据本申请实施例的一种LDAP服务器的目录树的示意图,如图4所示,所有目录信息集可以表示为一个目录树,目录树中每个方框即对应一个条目,对LDAP的添加、删除、更改、检索都是以条目为基本对象。
进一步的,各条目在目录树中从根出发的绝对路径称为识别名(dn,distinguished name),其是条目的位移标识。通过dn的层次型语法结构,可以方便地标识出条目在目录树中的位置,从而进行检索。具体的,dn的字符串从左向右,各组成部分依次向根靠近。如图4所示,右下角条目的识别名为:uid=newton,ou=scientists,dc=example,dc=com。
进一步的,基于参数信息和用户名得到识别名可以分为多种方式,例如,在LDAP服务器采用简单绑定模式的情况,可以根据参数信息中的ldap_prefix、nebula client指定的用户名、ldap_suffix参数值直接构造一个识别名;在LDAP服务器采用搜索绑定的情况下,则基于参数信息,通过搜索匹配得到识别名。
S204,指示LDAP服务器根据LDAP认证请求对客户端进行身份认证,并将认证结果返回至计算节点。
其中,LDAP服务器进行身份认证的过程,即对上述LDAP认证请求进行匹配的过程,具体的,通过将识别名在目录树中进行逐级匹配,以判断是否存在对应的信息,若是,则判定认证成功,若否,则认定失败。
通过上述步骤S201至S204,相比较于相关技术中在图数据库内部进行用户身份认证的方法,本申请中,在图数据库识别用户为影子用户之后,通过第三方的LDAP服务器进行密码校验。在图数据库一侧,不需要单独维护一套用户密码,使用基于LDAP中心化账号管理系统进行统一身份认证,利用LDAP服务器中目录树特点、结构化特点等体系化的性质,针对用户信息复杂、数据量大的客户端数据,通过一些简单操作,即可方便高效地对用户账号和密码进行统一管理,从而使本申请方案,相比较于传统方式中需要在图数据库中进行繁琐复杂的用户信息维护,能够实现更高效、更便捷的用户信息管理;
进一步的,由于LDAP服务器基于开放的Internet标准,其可以支持跨平台的Internet协议,因此,只需要做简单的配置就可以与LDAP服务器做认证交互,从而大大降低重复开发和对接的成本。
最后,本申请中由于图数据库中不保存也不涉及对用户密码的处理,用户密码只保存至LDAP服务器中,进一步的,又因为LDAP服务器采用专门的目录访问协议且使用SSL或TLS建立连接,因此,本申请中的账户密码管理系统比现有管理方式也更加安全可靠。
在其中一些实施例中,在图数据库接收客户端的登录请求之前,在图数据库中,将待登录的客户端对应的用户设置为影子用户,并对其分配相应的权限;
在LDAP服务器中,按照LDAP目录格式保存具备权限的客户端的用户名和客户端密码。
进一步的,在通过简单绑定模式的情况下,需要配置的参数信息包括:
auth_type=ldap:使用LDAP身份认证;
ldap_server:要连接的 LDAP 服务器的名称或IP地址,多个服务器时用空格分隔;
ldap_port :LDAP服务器上要连接的端口号;
ldap_scheme:LDAP使用的schema,默认是ldap;
ldap_prefix:在形成dn以绑定到LDAP服务器时,要添加到用户名前面的字符串;
ldap_suffix:形成dn以绑定到LDAP服务器时要附加到用户名的字符串;
在采用搜索绑定模式的的情况下,配置的参数信息包括:
auth_type=ldap:使用LDAP身份认证;
ldap_server:要连接的 LDAP 服务器的名称或IP地址,多个服务器时用空格分隔;
ldap_port :LDAP服务器上要连接的端口号;
ldap_scheme:LDAP使用的schema,默认是ldap;
ldap_basedn:指定开始用户名搜索的基本目录;
ldap_binddn:指定执行搜索与绑定身份认证时执行初始搜索的用户名;
ldap_bindpasswd:执行搜索与绑定身份认证时执行初始搜索的用户名密码;
ldap_searchattribute:执行搜索与绑定身份认证时与搜索中用户名匹配的属性。如果未指定属性,则使用uid属性。
在其中一些实施例中,LDAP服务器根据LDAP认证请求对客户端进行身份认证,包括:
LDAP服务器,获取LDAP认证请求中包含的识别名和客户端密码;通过将识别名和密码在LDAP目录树中进行匹配,判断本地是否存在与识别名和客户端密码对应的信息;若是,返回认证成功信息至计算节点,若否,返回认证失败信息至计算节点。
在其中一些实施例中,通过LDAP简单绑定的情况下,基于参数信息和登录请求中的用户名得到客户端的识别名包括:
通过计算节点,查询参数信息中是否配置有前置预设字符串和后置预设字符串,其中,前置预设字符串即为上述ldap_prefix,后置预设字符串即为上述ldap_suffix;
若是,基于前置预设字符串、后置预设字符串和客户端的用户名,生成客户端的识别名,其中,前置预设字符串用于添加在用户名之前,后置预设字符串用于附加至客户端用户名之后。
在其中一些实施例中,过LDAP搜索绑定的情况下,基于参数信息和登录请求中的用户名得到客户端的识别名包括:
通过计算节点,查询参数信息中是否配置有初始搜索用户名和初始搜索客户端密码,即ldap_binddn和ldap_bindpasswd;
若是,与LDAP服务器进行指定初始搜索,包括:将初始搜索用户名和初始搜索客户端密码绑定至LDAP目录,并指示LDAP服务器根据初始搜索用户名和初始搜索客户端密码,在LDAP目录树中进行初始搜索得到识别名;
若否,计算节点通过匿名绑定,指示LDAP服务器中进行初始搜索,得到识别名。
图5是根据本申请实施例的一种基于LDAP简单绑定模式下的身份认证的示意图,需要说明的是,图5中假设Nebula Graph图数据库中已存在对应的影子用户,并且已分配了相应的权限,LDAP服务中也有对应的账户和密码。如图5所示,认证流程包括如下步骤:
1) 在Nebula Graph图数据库的配置文件中设置LDAP简单绑定模式的参数,启动Nebula Graph集群和LDAP服务集群。 用指定的用户名和密码,使用nebula client进行登录连接,nebula client会连接到一个指定的graph 计算节点,该graph计算节点会判断当前认证的类型(配置文件中设置为LDAP认证)。如果是LDAP认证,就走LDAP认证的逻辑,否则走其他认证方式。
2) graph计算节点去meta的leader节点判断对应的影子用户是否存在。
3) meta的leader节点去查找对应的影子用户是否存在,然后将结果返回给graph计算节点。
4)如果影子用户不存在,graph计算节点就直接返回认证失败;如果影子用户存在,graph计算节点就根据ldap_prefix参数值、nebula client指定的用户名、ldap_suffix参数值构造一个dn,然后使用dn和nebula client指定的 password去LDAP服务进行认证。
5)如果LDAP服务存在对应的dn和password,就往graph计算节点返回认证成功,否则往graph计算节点返回认证失败。
6)graph计算节点根据LDAP服务返回的信息,来判断给nebula client返回认证成功还是失败,nebula client收到graph计算节点返回的认证状态,如果是认证失败,直接报错,如果是认证成功,则使用创建的连接进行后续服务。
图6是根据本申请实施例的一种基于LDAP搜索绑定模式下的身份认证的示意图,需要说明的是,图6假设Nebula Graph图数据库中已存在对应的影子用户,并且已分配了相应的权限,LDAP服务中也有对应的账户和密码。如图6所示,认证流程包括如下步骤
1) 在Nebula Graph图数据库的配置文件中设置LDAP搜索绑定模式的参数,启动Nebula Graph集群和LDAP服务集群。 用指定的用户名和密码,使用nebula client进行登录连接,nebula client会连接到一个指定的graph 计算节点,该graph计算节点会判断当前认证的类型(配置文件中设置为LDAP认证)。如果是LDAP认证,就走LDAP认证的逻辑,否则走其他认证方式。
2) graph计算节点去meta的leader节点判断对应的影子用户是否存在。
3) meta的leader节点去查找对应的影子用户是否存在,然后将结果返回给graph计算节点。
4)如果影子用户不存在,graph计算节点就直接返回认证失败。如果影子用户存在:判断参数信息中ldap_binddn和ldap_bindpasswd是否设置了值,若是,计算节点首先用一个固定的用户名(ldap_binddn)和密码(ldap_bindpasswd)绑定到LDAP目录,然后graph计算节点去LDAP服务执行用户尝试登录的初始搜索。
如果没有配置初始用户名和密码(ldap_binddn和ldap_bindpasswd),graph计算节点将去LDAP服务尝试一次匿名绑定到LDAP目录的初始搜索。搜索将在位于参数ldap_basedn的子树上被执行,并将尝试做一次参数ldap_searchattribute中指定属性的精确匹配。
5)LDAP服务器判断是否搜索到客户端对应的识别名,若否,返回认证失败信息至计算节点,若是,将搜索到的识别名返回至计算节点;
6)计算节点在接收到认证失败信息时,直接返回给客户端(nebula client)认证失败信息;计算节点在接收到认证成功信息时,断开第一次的交互连接,并利用LADP服务器返回的dn和客户端指定的password重新绑定到LDAP目录,再根据dn和用户密码生成LDAP认证请求,并发送至LDAP服务进行认证;
7)LDAP服务器将LDAP认证请求在目录书中进行匹配,如果LDAP服务存在对应的dn和password,就往graph计算节点返回认证成功,否则往graph计算节点返回认证失败。
8)graph计算节点根据LDAP服务返回的信息,来判断给nebula client返回认证成功还是失败,nebula client收到graph计算节点返回的认证状态,如果是认证失败,直接报错,如果是认证成功,则使用创建的连接进行后续服务。
本实施例还提供了一种分布式图数据库的身份认证系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图7是根据本申请实施例的一种分布式图数据库的身份认证系统的结构框图,该系统基于LDAP服务器实现客户端身份认证,且图数据库中的配置文件中设置用于绑定LDAP服务器的参数信息,如图7所示,该系统包括:图数据库20、客户端10和LDAP服务器30,其中:
图数据库20用于,接收客户端10的登录请求,并确定登录请求中客户端指定的计算节点;
以及,通过计算节点向元数据管理节点发送查询请求,指示元数据管理节点判断是否存在与登录请求对应的影子用户,若是,
通过计算节点,基于参数信息和登录请求中的用户名得到客户端10的识别名,根据识别名和登录请求中的客户端密码生成LDAP认证请求,并将其发送至LDAP服务器30;
LDAP服务器30用于,根据LDAP认证请求对客户端10进行身份认证,并将认证结果返回至计算节点。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图数据库中的身份认证方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,图8是根据本申请实施例的电子设备的内部结构示意图,如图8所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图8所示。该电子设备包括通过内部总线连接的处理器、网络接口、内存储器和非易失性存储器,其中,该非易失性存储器存储有操作系统、计算机程序和数据库。处理器用于提供计算和控制能力,网络接口用于与外部的终端通过网络连接通信,内存储器用于为操作系统和计算机程序的运行提供环境,计算机程序被处理器执行时以实现一种图数据库中的身份认证方法,数据库用于存储数据。
本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种分布式图数据库中的身份认证方法,其特征在于,通过LDAP服务器实现客户端身份认证,且所述图数据库的配置文件中设置有用于绑定LDAP服务器的参数信息,所述方法包括:
图数据库接收客户端的登录请求,并确定所述登录请求中客户端指定的计算节点;
所述图数据库,通过所述计算节点向元数据管理节点发送查询请求,指示所述元数据管理节点判断是否存在与所述登录请求对应的影子用户,若是,
通过所述计算节点,基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名,根据所述识别名和所述登录请求中的客户端密码生成LDAP认证请求,并将其发送至所述LDAP服务器;
指示所述LDAP服务器,根据所述LDAP认证请求对客户端进行身份认证,并将认证结果返回至所述计算节点。
2.根据权利要求1所述的方法,其特征在于,所述LDAP服务器根据所述LDAP认证请求对客户端进行身份认证,包括:
所述LDAP服务器,获取LDAP认证请求中包含的识别名和客户端密码;
通过将所述识别名和密码在LDAP目录树中进行匹配,判断本地是否存在与所述识别名和客户端密码对应的信息;
若是,返回认证成功信息至所述计算节点,若否,返回认证失败信息至所述计算节点。
3.根据权利要求1所述的方法,其特征在于,通过LDAP简单绑定的情况下,基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名包括:
通过所述计算节点,查询所述参数信息中是否配置有前置预设字符串和后置预设字符串,若是,
基于所述前置预设字符串、后置预设字符串和所述客户端用户名,生成所述客户端的识别名,
其中,所述前置预设字符串用于添加在所述用户名之前,所述后置预设字符串用于附加至所述客户端用户名之后。
4.根据权利要求2所述的方法,其特征在于,通过LDAP搜索绑定的情况下,基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名包括:
通过所述计算节点,查询所述参数信息中是否配置有初始搜索用户名和初始搜索客户端密码,
若是,指示所述LDAP服务器进行指定初始搜索,包括:将所述初始搜索用户名和所述初始搜索客户端密码绑定至LDAP目录,并根据所述初始搜索用户名和所述初始搜索客户端密码,在所述LDAP目录树中进行初始搜索得到所述识别名;
若否,通过所述计算节点进行匿名绑定,并指示所述LDAP服务器中进行匿名绑定模式下的初始搜索,得到所述识别名。
5.根据权利要求4所述的方法,其特征在于,通过LDAP搜索绑定的情况下,所述方法还包括:
所述计算节点,在所述初始搜索时与所述LDAP服务器建立第一次交互连接;
所述计算节点,在得到识别名根据识别名和客户端用户名生成LDAP认证请求之后,将LDAP认证请求发送至所述LDAP服务器之前,断开所述第一次交互连接;
重新与所述LDAP服务器建立第二次交互连接,并将所述LDAP认证请求发送至所述LDAP服务器,指示所述LDAP服务器根据所述LDAP认证请求对客户端进行身份认证。
6.根据权利要求1所述的方法,其特征在于,所述图数据库接收客户端的登录请求之前,所述方法还包括:
在所述图数据库中,将具备登录资格的客户端设置为影子用户,并对其分配相应的权限;
在所述LDAP服务器中,按照LDAP目录格式保存所述具备登录资格的客户端的用户名和客户端密码。
7.根据权利要求1所述的方法,其特征在于,所述图数据库是分布式图数据库NebulaGraph。
8.一种分布式图数据库中的身份认证系统,其特征在于,通过LDAP服务器实现客户端身份认证,且所述图数据库的配置文件中设置有用于绑定LDAP服务器的参数信息,所述系统包括:图数据库、客户端和LDAP服务器,其中:
所述图数据库用于,接收客户端的登录请求,并确定所述登录请求中客户端指定的计算节点,
以及,通过所述计算节点向元数据管理节点发送查询请求,指示所述元数据管理节点判断是否存在与所述登录请求对应的影子用户,若是,通过所述计算节点,基于所述参数信息和所述登录请求中的用户名得到所述客户端的识别名,根据所述识别名和所述登录请求中的客户端密码生成LDAP认证请求,并将其发送至所述LDAP服务器;
所述LDAP服务器用于,指示所述LDAP服务器根据所述LDAP认证请求对客户端进行身份认证,并将认证结果返回至所述计算节点。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任一项所述的方法。
CN202211062882.5A 2022-09-01 2022-09-01 一种分布式图数据库中的身份认证方法和系统 Pending CN115150105A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211062882.5A CN115150105A (zh) 2022-09-01 2022-09-01 一种分布式图数据库中的身份认证方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211062882.5A CN115150105A (zh) 2022-09-01 2022-09-01 一种分布式图数据库中的身份认证方法和系统

Publications (1)

Publication Number Publication Date
CN115150105A true CN115150105A (zh) 2022-10-04

Family

ID=83416199

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211062882.5A Pending CN115150105A (zh) 2022-09-01 2022-09-01 一种分布式图数据库中的身份认证方法和系统

Country Status (1)

Country Link
CN (1) CN115150105A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117852005A (zh) * 2024-03-08 2024-04-09 杭州悦数科技有限公司 一种图数据库与客户端之间的安全校验方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940929A (zh) * 2005-09-26 2007-04-04 捷讯研究有限公司 Ldap到sql的数据库代理系统和方法
CN101931613A (zh) * 2009-06-23 2010-12-29 中兴通讯股份有限公司 集中认证方法和集中认证系统
US20150067809A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. User identity authentication and single sign on for multitenant environment
US9246906B1 (en) * 2013-02-27 2016-01-26 F5 Networks, Inc. Methods for providing secure access to network resources and devices thereof
CN106302425A (zh) * 2016-08-09 2017-01-04 浪潮(北京)电子信息产业有限公司 一种虚拟化系统节点间通信方法及其虚拟化系统
CN109815010A (zh) * 2018-12-29 2019-05-28 深圳供电局有限公司 一种云平台统一身份认证方法及系统
CN110753044A (zh) * 2019-10-12 2020-02-04 山东英信计算机技术有限公司 一种身份认证方法、系统、电子设备及存储介质
CN112118269A (zh) * 2020-10-16 2020-12-22 统信软件技术有限公司 一种身份认证方法、系统、计算设备及可读存储介质
CN112152977A (zh) * 2019-06-28 2020-12-29 双子星云端运算股份有限公司 异质云端平台认证与授权整合系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1940929A (zh) * 2005-09-26 2007-04-04 捷讯研究有限公司 Ldap到sql的数据库代理系统和方法
CN101931613A (zh) * 2009-06-23 2010-12-29 中兴通讯股份有限公司 集中认证方法和集中认证系统
US9246906B1 (en) * 2013-02-27 2016-01-26 F5 Networks, Inc. Methods for providing secure access to network resources and devices thereof
US20150067809A1 (en) * 2013-08-27 2015-03-05 Connectloud, Inc. User identity authentication and single sign on for multitenant environment
CN106302425A (zh) * 2016-08-09 2017-01-04 浪潮(北京)电子信息产业有限公司 一种虚拟化系统节点间通信方法及其虚拟化系统
CN109815010A (zh) * 2018-12-29 2019-05-28 深圳供电局有限公司 一种云平台统一身份认证方法及系统
CN112152977A (zh) * 2019-06-28 2020-12-29 双子星云端运算股份有限公司 异质云端平台认证与授权整合系统
CN110753044A (zh) * 2019-10-12 2020-02-04 山东英信计算机技术有限公司 一种身份认证方法、系统、电子设备及存储介质
CN112118269A (zh) * 2020-10-16 2020-12-22 统信软件技术有限公司 一种身份认证方法、系统、计算设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117852005A (zh) * 2024-03-08 2024-04-09 杭州悦数科技有限公司 一种图数据库与客户端之间的安全校验方法及系统
CN117852005B (zh) * 2024-03-08 2024-05-14 杭州悦数科技有限公司 一种图数据库与客户端之间的安全校验方法及系统

Similar Documents

Publication Publication Date Title
CN108650262B (zh) 一种基于微服务架构的云平台扩展方法及系统
CN109492380B (zh) 一种设备认证方法、装置及区块链节点
CN106815099B (zh) 鉴权系统和方法
US11856046B2 (en) Endpoint URL generation and management
BR112015027175B1 (pt) Método para sincronizar um conjunto de credenciais de senha entre um serviço de origem e um serviço alvo, e dispositivo de armazenamento legível por computador
CN108769186B (zh) 业务权限控制方法及装置
CN104735164A (zh) 一种保存文件信息的方法和装置
CN111177776A (zh) 多租户数据隔离方法与系统
CN110232265A (zh) 双重身份认证方法、装置及系统
CN111585786A (zh) 一种大数据集群免密搭建方法的实现
US9015790B2 (en) Integrating sudo rules with entities represented in an LDAP directory
CN114172700A (zh) 基于云平台结合域控服务器的统一认证系统及方法
CN115150105A (zh) 一种分布式图数据库中的身份认证方法和系统
CN113872990B (zh) 基于ssl协议的vpn网络证书认证方法、装置和计算机设备
CN114143090A (zh) 基于网络安全架构的防火墙部署方法、装置、设备及介质
CN111666509A (zh) 基于跨网络地理数据的云查询方法及系统
CN111367573B (zh) 设备登陆方法、装置、存储介质和计算机设备
JP6840505B2 (ja) システム、サービス提供装置、システムの制御方法およびプログラム
CN110730106B (zh) 基于树状结构的电子公文交换方法、装置和计算机设备
US11095436B2 (en) Key-based security for cloud services
CN111817860A (zh) 一种通信认证方法、装置、设备及存储介质
CN110515905A (zh) 一种路由的配置的方法、装置以及服务器
CN115277234B (zh) 一种基于物联网平台微服务的安全认证方法及系统
CN114239060B (zh) 数据获取方法、装置、电子设备及存储介质
CN114499835B (zh) 联盟链中的新增节点配置方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20221004