CN109413040B - 消息鉴权方法、设备、系统及计算机可读存储介质 - Google Patents
消息鉴权方法、设备、系统及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109413040B CN109413040B CN201811112425.6A CN201811112425A CN109413040B CN 109413040 B CN109413040 B CN 109413040B CN 201811112425 A CN201811112425 A CN 201811112425A CN 109413040 B CN109413040 B CN 109413040B
- Authority
- CN
- China
- Prior art keywords
- message
- client
- service
- production
- consumption
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000004519 manufacturing process Methods 0.000 claims abstract description 142
- 238000012795 verification Methods 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 15
- 238000013507 mapping Methods 0.000 claims description 12
- 238000009826 distribution Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种消息鉴权方法,该方法包括:接收消息生产/消费客户端发送的消息生产/消费请求;从消息生产/消费请求中提取消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;查询预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,得到与提取到的Topic名称对应的合法生产/消费客户端的IP地址集合,其中,不同的Topic名称用于标识不同的服务;判断提取到的消息生产/消费客户端的IP地址是否存在于合法生产/消费客户端的IP地址集合中;若是,则判定消息生产/消费客户端的消息鉴权通过。本发明还公开了一种消息鉴权设备、系统和一种计算机可读存储介质。本发明能够实现服务的精准分发。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及消息鉴权方法、设备、系统及计算机可读存储介质。
背景技术
随着互联网技术的不断发展,出现了各种各样的消息类业务。Producer-Consumer(生产者-消费者模型)是一种分布式消息订阅模型,该模型通过消息中间件对服务进行解耦,能够提高系统的吞吐量,使服务调用异步化。在Producer-Consumer模型中,分布式请求方将请求以消息的形式发送到特定Topic(主题)上,服务提供方通过订阅该Topic消息,能够实现请求方到服务提供方的服务调用。
在分布式消息订阅系统中,生产者和消费者能够生产或者消费其所请求的Topic消息,而分布式消息订阅系统中存在着大量不同的生产者和消费者,在此前提下,如何保证服务的精准分发是目前亟待解决的问题。
发明内容
本发明的主要目的在于提出一种消息鉴权方法、设备、系统及计算机可读存储介质,旨在实现服务的精准分发。
为实现上述目的,本发明提供一种消息鉴权方法,所述消息鉴权方法包括如下步骤:
接收消息生产/消费客户端发送的消息生产/消费请求;
从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;
查询预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,得到与提取到的所述Topic名称对应的合法生产/消费客户端的IP地址集合,其中,不同的Topic名称用于标识不同的服务;
判断提取到的所述消息生产/消费客户端的IP地址是否存在于所述合法生产/消费客户端的IP地址集合中;
若是,则判定所述消息生产/消费客户端的消息鉴权通过。
优选地,所述接收消息生产/消费客户端发送的消息生产/消费请求的步骤之前,还包括:
从访问控制列表服务ACL中获取Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系;
将获取到的所述Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系进行保存。
优选地,所述消息鉴权方法还包括:
定期从所述ACL中获取新的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系;
根据获取到的所述新的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,对本地保存的所述Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系进行更新。
优选地,所述从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称的步骤之前,还包括:
从所述消息生产/消费请求中提取用户名和密码信息;
将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL对所述用户名和密码信息进行校验并返回校验结果;
当接收到所述ACL返回的校验通过信息时,执行步骤:从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;
当接收到所述ACL返回的校验不通过信息时,拒绝所述消息生产/消费请求。
优选地,所述将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL对所述用户名和密码信息进行校验并返回校验结果的步骤包括:
将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL调用校验系统对所述用户名和密码信息进行验证并返回校验结果;
或者,将所述用户名和密码信息提交至访问控制列表服务ACL,以在所述ACL中验证所述用户名和密码信息并返回校验结果。
优选地,所述判定所述消息生产/消费客户端的消息鉴权通过的步骤之后,还包括:
当消息请求为消息生产请求时,从请求中获取待生产的消息内容,将所述待生产的消息内容写入对应的Topic中,并将写入是否成功的状态返回至所述消息生产客户端;
当消息请求为消息消费请求时,从请求中获取所述消息消费客户端订阅的Topic,获取待消费的消息内容,将所述待消费的消息内容返回至所述消息消费客户端。
此外,为实现上述目的,本发明还提供一种消息鉴权设备,所述消息鉴权设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息鉴权程序,所述消息鉴权程序被所述处理器执行时实现如上文所述的消息鉴权方法的步骤。
此外,为实现上述目的,本发明还提供一种消息鉴权系统,所述消息鉴权系统包括消息鉴权设备、与消息鉴权设备通信连接的ACL组件,以及与所述ACL组件通信连接的服务信息管理组件;其中,
所述消息鉴权设备为如上文所述的消息鉴权设备;
所述服务信息管理组件,用于获取客户端部署实例信息和服务治理数据信息,并将所述客户端部署实例信息和服务治理数据信息进行保存,所述客户端部署实例信息包括应用系统ID及应用系统对应的客户端IP地址,所述服务治理数据信息包括应用系统ID及服务ID,所述服务ID包括应用系统所允许请求的服务ID和应用系统所提供的服务ID;
所述ACL组件,用于定期获取所述客户端部署实例信息和服务治理数据信息,并将所述客户端部署实例信息中的客户端IP地址与所述服务治理数据信息中的服务ID通过应用系统ID进行关联,得到所述服务ID与客户端IP地址的映射关系;并将所述服务ID抽象为Topic名称后,将得到的Topic名称与客户端的IP地址进行关联,以得到Topic名称与客户端的IP地址集合之间的映射关系。
优选地,所述服务信息管理组件为:配置管理数据库或服务治理系统或配置管理数据库及服务治理系统的组合;
在所述服务信息管理组件为配置管理数据库及服务治理系统的组合时,所述配置管理数据库及服务治理系统分别与ACL组件通信连接;
所述配置管理数据库,用于获取客户端部署实例信息,并将所述客户端部署实例信息进行保存,所述客户端部署实例信息包括应用系统ID及应用系统对应的客户端IP地址;
所述服务治理系统,用于获取服务治理数据信息,并将所述服务治理数据信息进行保存,所述服务治理数据信息包括应用系统ID及服务ID,所述服务ID包括应用系统所允许请求的服务ID和应用系统所提供的服务ID。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有消息鉴权程序,所述消息鉴权程序被处理器执行时实现如上所述的消息鉴权方法的步骤。
本发明提出的消息鉴权方法,通过在接收到消息生产/消费客户端发送的消息生产/消费请求时,提取请求的IP地址和请求生产/消费的主题Topic名称,然后根据预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,对消息生产/消费客户端进行消息鉴权,保证了只有具备权限的客户端才能够生产或消费特定的Topic消息,而由于Topic是服务的标识,因此保证了基于特定服务的Topic消息只能由合法的客户端提供,并且只能由合法的客户端消费,从而实现了服务的精准分发。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图;
图2为本发明消息鉴权方法第一实施例的流程示意图;
图3为本发明实施例中Topic名称与合法生产/消费客户端的IP地址之间的对应关系的示意图;
图4为本发明消息鉴权方法第二实施例的流程示意图;
图5为本发明实施例中进行消息鉴权的场景示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:接收消息生产/消费客户端发送的消息生产/消费请求;从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;查询预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,得到与提取到的所述Topic名称对应的合法生产/消费客户端的IP地址集合,其中,不同的Topic名称用于标识不同的服务;判断提取到的所述消息生产/消费客户端的IP地址是否存在于所述合法生产/消费客户端的IP地址集合中;若是,则判定所述消息生产/消费客户端的消息鉴权通过。
在分布式消息订阅系统中,生产者和消费者能够生产或者消费其所请求的Topic消息,而分布式消息订阅系统中存在着大量不同的生产者和消费者,在此前提下,如何保证服务的精准分发是目前亟待解决的问题。
本发明提出的消息鉴权方法,通过在接收到消息生产/消费客户端发送的消息生产/消费请求时,提取请求的IP地址和请求生产/消费的主题Topic名称,然后根据预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,对消息生产/消费客户端进行消息鉴权,保证了只有具备权限的客户端才能够生产或消费特定的Topic消息,而由于Topic是服务的标识,因此保证了基于特定服务的Topic消息只能由合法的客户端提供,并且只能由合法的客户端消费,从而实现了服务的精准分发。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
本发明实施例消息鉴权设备可以是服务器、PC机、路由器或其他具备网络转发功能的设备。
如图1所示,该设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及消息鉴权程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的消息鉴权程序,并执行下述消息鉴权方法中的操作。
基于上述硬件结构,提出本发明消息鉴权方法实施例。
参照图2,图2为本发明消息鉴权方法第一实施例的流程示意图,所述方法包括:
步骤S10,接收消息生产/消费客户端发送的消息生产/消费请求;
随着互联网技术的不断发展,出现了各种各样的消息类业务,为提高系统的吞吐量,使服务调用异步化,利用消息中间件对服务进行解耦是常见的解决方式之一。
本实施例消息鉴权方法应用于Producer-Consumer(生产者-消费者模型)中的消息中间件,具体应用于消息中间件中的核心转发部件,该转发部件用于解耦客户端和服务端并实现客户端和服务端之间的消息转发。本实施例中,以转发部件为Broker为例进行说明。
在Producer-Consumer模型中,存在着生产者Producer和消费者Consumer两种角色,生产者产生数据并发送到Broker,消费者从Broker拉取数据进行处理。本实施例中,在消息生产/消费客户端需要生产/消费特定消息时,向Broker发送消息生产/消费请求,Broker接收该消息生产/消费客户端发送的消息生产/消费请求。
步骤S20,从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;
该步骤中,Broker对接收到的消息生产/消费请求进行解析,并提取其中携带的生产/消费客户端的IP地址和请求生产/消费的主题Topic名称。
步骤S30,查询预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,得到与提取到的所述Topic名称对应的合法生产/消费客户端的IP地址集合,其中,不同的Topic名称用于标识不同的服务;
该步骤中,Broker预先保存有Topic名称与合法生产/消费客户端的IP地址之间的对应关系,参照图3,图3为本发明实施例中Topic名称与合法生产/消费客户端的IP地址之间的对应关系的示意图,其中与主题T1对应的合法生产者的IP地址为168.10.3.1,合法消费者的IP地址为168.10.3.3,与主题T2对应的合法生产者的IP地址为168.10.3.2、168.10.3.5,合法消费者的IP地址为168.10.3.4。
Broker根据提取到的Topic名称查询该对应关系,可以得到与Topic名称对应的合法生产/消费客户端的IP地址集合。比如,当提取到消息生产请求中的Topic名称为T1时,可以得到与该T1对应的合法生产者的IP地址为168.10.3.1。
需要说明的是,在Topic名称与合法生产/消费客户端的IP地址之间的对应关系中,不同的Topic名称用于标识不同的服务,即Topic与服务之间为一一对应关系。具体实施时,每个服务可用唯一的服务ID标识,然后以服务ID为主体来命名Topic,例如,服务A的服务ID为12345678,则该服务对应的Topic可以命名为XXX-12345678-XXX(XXX标识其他拓展信息),只要确保服务ID是唯一的,也就能够保证服务对应的Topic是唯一的。
步骤S40,判断提取到的所述消息生产/消费客户端的IP地址是否存在于所述合法生产/消费客户端的IP地址集合中;
若是,则执行步骤S50,判定所述消息生产/消费客户端的消息鉴权通过。
Broker判断消息生产/消费客户端的IP地址是否存在于合法生产/消费客户端的IP地址集合中,若是,则说明对应的消息生产/消费客户端是合法的,此时判定所述消息生产/消费客户端的消息鉴权通过。
进一步地,在步骤S50之后,还可以包括:当消息请求为消息生产请求时,从请求中获取待生产的消息内容,将所述待生产的消息内容写入对应的Topic中,并将写入是否成功的状态返回至所述消息生产客户端;当消息请求为消息消费请求时,从请求中获取所述消息消费客户端订阅的Topic,获取待消费的消息内容,将所述待消费的消息内容返回至所述消息消费客户端。
具体地,若Broker接收到的是来自消息生产客户端的消息生产请求,则从请求中获取待生产的消息内容,消息鉴权通过后,即可将该待生产的消息内容写入对应的Topic中,并将写入是否成功的状态返回至所述消息生产客户端,其中,消息内容若写入成功,返回消息内容保存成功的提示信息,若消息内容写入失败,则返回写入失败的原因;若Broker接收到的是来自消息消费客户端的消息消费请求,则消息鉴权通过后,从请求中获取所述消息消费客户端订阅的Topic,并从Topic中获取待消费的消息内容返回至消息消费客户端。由此实现了消息鉴权通过后,客户端能够生产或者消费其所请求的Topic消息。
进一步地,若提取到的所述消息生产/消费客户端的IP地址不存在于所述合法生产/消费客户端的IP地址集合中,则说明消息生产/消费请求不合法,此时拒绝所述消息生产/消费请求,并向所述消息生产/消费客户端返回消息鉴权不通过的信息。
本实施例提出的消息鉴权方法,通过在接收到消息生产/消费客户端发送的消息生产/消费请求时,提取请求的IP地址和请求生产/消费的主题Topic名称,然后根据预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,对消息生产/消费客户端进行消息鉴权,保证了只有具备权限的客户端才能够生产或消费特定的Topic消息,而由于Topic是服务的标识,因此保证了基于特定服务的Topic消息只能由合法的客户端提供,并且只能由合法的客户端消费,从而实现了服务的精准分发。
进一步地,参照图4,图4为本发明消息鉴权方法第二实施例的流程示意图。基于上述图2所示的实施例,在步骤S10之前,还可以包括:
步骤S60,从访问控制列表服务ACL中获取Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系;
步骤S70,将获取到的所述Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系进行保存。
在本实施例中,为了让消息中间件只关注消息存储和转发,而不需要理解服务和Topic的业务联系,可以采用CMDB(Configuration Management database,配置管理数据库)、SGS(Service Government System,服务治理系统)和ACL(Access Control List,访问控制列表)组件来整合数据。其中,可选CMDB维护客户端部署实例数据和服务治理数据,也可选SGS维护客户端部署实例数据和服务治理数据。此外,还可选在CMDB维护客户端部署实例数据,所有应用系统(即客户端所属的应用系统)在投产前都需要在CMDB上注册该应用系统所有应用实例部署的IP,在SGS维护服务治理数据,所有应用系统(即客户端所属的应用系统)在投产前都需要在SGS上注册该应用系统能够请求的服务ID以及能够提供的服务ID。下文优选以CMDB维护客户端部署实例数据,SGS维护服务治理数据为例进行描述;在这种情况下,ACL组件完成数据整合,将CMDB中记录的应用实例及SGS中的服务请求、服务响应与Topic进行关联,转换为IP与Topic的映射关系,同时,ACL提供数据查询接口,允许Broker获取经过转换后的“IP-Topic”数据。
Broker可以定期从ACL中获取Topic名称与合法生产/消费客户端的IP地址之间的对应关系,并将获取到的对应关系进行保存,以为后续消息鉴权提供前提保证。
具体地,参照图5,图5为本发明实施例中进行消息鉴权的场景示意图,假设系统A在CMDB中注册了部署实例为168.10.3.1(Producer1),在SGS中注册了允许请求服务1,系统B注册了部署实例168.10.3.2(Producer2)和168.10.3.5(Producer3)且允许请求服务2;系统C注册了168.10.3.3(Consumer1)一个实例,且提供服务1;系统D注册了168.10.3.4(Consumer2)提供服务2;ACL从CMDB和SGS同步这些数据,整合得到服务1允许168.10.3.3提供服务,允许被168.10.3.1请求,服务2允许168.10.3.4提供服务,允许被168.10.3.2和168.10.3.5请求。
Broker定期从ACL查询上述数据,得到Topic“T1”的消息能被168.10.3.3消费,允许由168.10.3.1产生,Topic“T2”的消息能被168.10.3.4消费,允许由168.10.3.2和168.10.3.5产生。当Producer1发出产生T2的消息的请求时,Broker查询上述数据,发现168.10.3.1不在T2的合法生产者IP列表里,则拒绝该产生消息的请求,Producer1产生T2消息失败;同理,当Consuemr2发出消费T1的消息的请求时,Broker查询到168.10.3.4不在T1的合法消费者IP列表里,则拒绝该消费消息的请求。由此实现了对生产/消费客户端的服务鉴权,避免了非法客户端请求服务。
进一步地,所述消息鉴权方法还可以包括:定期从所述ACL中获取新的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系;根据获取到的所述新的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,对本地保存的所述Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系进行更新。
在本实施例中,Broker可以定期从ACL中获取新的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,获取到新的对应关系之后,将新的对应关系与本次预存的对应关系进行比较,若发现两个对应关系不匹配,说明ACL中的对应关系已经更新了,并由此对本地保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系进行更新,如此可以实现Broker本地数据的及时更新。
进一步地,基于本发明消息鉴权方法第一、第二实施例,提出本发明消息鉴权方法第三实施例。
本实施例中,在上述步骤S20之前,还可以包括:
从所述消息生产/消费请求中提取用户名和密码信息;将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL对所述用户名和密码信息进行校验并返回校验结果;
当接收到所述ACL返回的校验通过信息时,执行步骤S20:从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;
当接收到所述ACL返回的校验不通过信息时,拒绝所述消息生产/消费请求。
在本实施例中,ACL还可以提供验密服务,通过用户名和密码对消息生产/消费客户端进行合法性校验。具体地,当Broker接收到消息生产/消费客户端发送的消息生产/消费请求时,从该消息生产/消费请求中提取用户名和密码信息,然后将用户名和密码信息提交至ACL,以使ACL对进行校验并返回校验结果;当接收到ACL返回的校验通过信息时,说明当前接入的消息生产/消费客户端是合法的,此时进一步执行服务鉴权;当接收到ACL返回的校验不通过信息时,说明当前接入的消息生产/消费客户端是非法的,此时拒绝来自消息生产/消费客户端的消息生产/消费请求。
进一步地,上述将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL对所述用户名和密码信息进行校验并返回校验结果的步骤可以包括:将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL调用校验系统对所述用户名和密码信息进行验证并返回校验结果;或者,将所述用户名和密码信息提交至访问控制列表服务ACL,以在所述ACL中验证所述用户名和密码信息并返回校验结果。
本实施例中,验密功能的实现,可以由ACL独立实现,也可以经由统一的用户密码校验系统实现校验逻辑,ACL调用用户密码校验系统进行校验,具体实施时可灵活设置。
本实施例通过对消息生产/消费客户端进行验密,保证了消息的生产只由登记过的合法客户端产生,并且只由登记过的合法客户端消费,进一步提高了服务分发的精准性。
本发明还提供一种消息鉴权系统。
在本发明消息鉴权系统实施例中,该系统包括消息鉴权设备、与消息鉴权设备通信连接的ACL组件,以及与所述ACL组件通信连接的服务信息管理组件;其中,
所述消息鉴权设备为如上文所述的消息鉴权设备;
所述服务信息管理组件,用于获取客户端部署实例信息和服务治理数据信息,并将所述客户端部署实例信息和服务治理数据信息进行保存,所述客户端部署实例信息包括应用系统ID及应用系统对应的客户端IP地址,所述服务治理数据信息包括应用系统ID及服务ID,所述服务ID包括应用系统所允许请求的服务ID和应用系统所提供的服务ID;
所述ACL组件,用于定期获取所述客户端部署实例信息和服务治理数据信息,并将所述客户端部署实例信息中的客户端IP地址与所述服务治理数据信息中的服务ID通过应用系统ID进行关联,得到所述服务ID与客户端IP地址的映射关系;并将所述服务ID抽象为Topic名称后,将得到的Topic名称与客户端的IP地址进行关联,以得到Topic名称与客户端的IP地址集合之间的映射关系。
本实施例中,应用系统ID指的是用来唯一标识某个具体的业务系统的编号,比如说贷款系统有一个ID,存款系统一个ID。应用系统ID与客户端的关系:一个应用系统通常是会部署多个实例,也就是说,会有多个客户端,所以应用系统ID与客户端是一个一对多的关系。其中,所述服务信息管理组件可选为:配置管理数据库或服务治理系统。具体地,当服务信息管理组件为配置管理数据库或服务治理系统时,所述ACL组件定期从配置管理数据库或服务治理系统中获取所述客户端部署实例信息和服务治理数据信息,并将所述客户端部署实例信息中的客户端IP地址与所述服务治理数据信息中的服务ID通过应用系统ID进行关联,得到所述服务ID与客户端IP地址的映射关系,然后将服务ID抽象为Topic名称,之后将得到的Topic名称与客户端的IP地址进行关联,以得到Topic名称与客户端的IP地址集合之间的映射关系。
此外,所述服务信息管理组件还可选为配置管理数据库及服务治理系统的组合;
在所述服务信息管理组件为配置管理数据库及服务治理系统的组合时,所述配置管理数据库及服务治理系统分别与ACL组件通信连接;
所述配置管理数据库,用于获取客户端部署实例信息,并将所述客户端部署实例信息进行保存,所述客户端部署实例信息包括应用系统ID及应用系统对应的客户端IP地址;
所述服务治理系统,用于获取服务治理数据信息,并将所述服务治理数据信息进行保存,所述服务治理数据信息包括应用系统ID及服务ID,所述服务ID包括应用系统所允许请求的服务ID和应用系统所提供的服务ID。
应理解,当所述服务信息管理组件为配置管理数据库及服务治理系统的组合时,所述ACL组件定期从配置管理数据库中获取客户端部署实例信息,并将所述客户端部署实例信息进行保存,并定期从服务治理系统中获取服务治理数据信息,并将所述服务治理数据信息进行保存,之后,将所述客户端部署实例信息中的客户端IP地址与所述服务治理数据信息中的服务ID通过应用系统ID进行关联,得到所述服务ID与客户端IP地址的映射关系,然后将服务ID抽象为Topic名称,之后将得到的Topic名称与客户端的IP地址进行关联,以得到Topic名称与客户端的IP地址集合之间的映射关系。
在本实施例中,为了让消息中间件只关注消息存储和转发,而不需要理解服务和Topic的业务联系,采用服务信息管理组件和ACL(Access Control List,访问控制列表)组件来整合数据,其中服务信息管理组件可以为CMDB(Configuration Managementdatabase,配置管理数据库)、SGS(Service Government System,服务治理系统),或CMDB与SGS的组合。
其中,可选CMDB维护客户端部署实例数据和服务治理数据,也可选SGS维护客户端部署实例数据和服务治理数据。此外,还可选在CMDB维护客户端部署实例数据,所有应用系统(即客户端所属的应用系统)在投产前都需要在CMDB上注册该应用系统所有应用实例部署的IP,在SGS维护服务治理数据,所有应用系统(即客户端所属的应用系统)在投产前都需要在SGS上注册该应用系统能够请求的服务ID以及能够提供的服务ID。下文优选以CMDB维护客户端部署实例数据,SGS维护服务治理数据为例进行描述;在这种情况下,ACL组件完成数据整合,将CMDB中记录的应用实例及SGS中的服务请求、服务响应与Topic进行关联,转换为IP与Topic的映射关系,同时,ACL提供数据查询接口,允许Broker获取经过转换后的“IP-Topic”数据。
以消息中间件为Broker为例,Broker可以定期从ACL中获取Topic名称与合法生产/消费客户端的IP地址之间的对应关系,并将获取到的对应关系进行保存,以为后续消息鉴权提供前提保证。
具体地,参照图5,图5为本发明实施例中进行消息鉴权的场景示意图,假设系统A在CMDB中注册了部署实例为168.10.3.1(Producer1),在SGS中注册了允许请求服务1,系统B注册了部署实例168.10.3.2(Producer2)和168.10.3.5(Producer3)且允许请求服务2;系统C注册了168.10.3.3(Consumer1)一个实例,且提供服务1;系统D注册了168.10.3.4(Consumer2)提供服务2;ACL从CMDB和SGS同步这些数据,整合得到服务1允许168.10.3.3提供服务,允许被168.10.3.1请求,服务2允许168.10.3.4提供服务,允许被168.10.3.2和168.10.3.5请求。
Broker定期从ACL查询上述数据,得到Topic“T1”的消息能被168.10.3.3消费,允许由168.10.3.1产生,Topic“T2”的消息能被168.10.3.4消费,允许由168.10.3.2和168.10.3.5产生。当Producer1发出产生T2的消息的请求时,Broker查询上述数据,发现168.10.3.1不在T2的合法生产者IP列表里,则拒绝该产生消息的请求,Producer1产生T2消息失败;同理,当Consuemr2发出消费T1的消息的请求时,Broker查询到168.10.3.4不在T1的合法消费者IP列表里,则拒绝该消费消息的请求。由此实现了对生产/消费客户端的服务鉴权,避免了非法客户端请求服务。
消息中间件进行消息鉴权的具体方法可以参照上述消息鉴权方法实施例,此处不再赘述。
本发明还提供一种计算机可读存储介质。
本发明计算机可读存储介质上存储有消息鉴权程序,所述消息鉴权程序被处理器执行时实现如上所述的消息鉴权方法的步骤。
其中,在所述处理器上运行的消息鉴权程序被执行时所实现的方法可参照本发明消息鉴权方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种消息鉴权方法,其特征在于,所述消息鉴权方法包括如下步骤:
接收消息生产/消费客户端发送的消息生产/消费请求;
从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;
查询预先保存的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,得到与提取到的所述Topic名称对应的合法生产/消费客户端的IP地址集合,其中,不同的Topic名称用于标识不同的服务;
判断提取到的所述消息生产/消费客户端的IP地址是否存在于所述合法生产/消费客户端的IP地址集合中;
若是,则判定所述消息生产/消费客户端的消息鉴权通过。
2.如权利要求1所述的消息鉴权方法,其特征在于,所述接收消息生产/消费客户端发送的消息生产/消费请求的步骤之前,还包括:
从访问控制列表服务ACL中获取Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系;
将获取到的所述Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系进行保存。
3.如权利要求2所述的消息鉴权方法,其特征在于,所述消息鉴权方法还包括:
定期从所述ACL中获取新的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系;
根据获取到的所述新的Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系,对本地保存的所述Topic名称与合法生产/消费客户端的IP地址集合之间的对应关系进行更新。
4.如权利要求1至3中任一项所述的消息鉴权方法,其特征在于,所述从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称的步骤之前,还包括:
从所述消息生产/消费请求中提取用户名和密码信息;
将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL对所述用户名和密码信息进行校验并返回校验结果;
当接收到所述ACL返回的校验通过信息时,执行步骤:从所述消息生产/消费请求中提取所述消息生产/消费客户端的IP地址和请求生产/消费的主题Topic名称;
当接收到所述ACL返回的校验不通过信息时,拒绝所述消息生产/消费请求。
5.如权利要求4所述的消息鉴权方法,其特征在于,所述将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL对所述用户名和密码信息进行校验并返回校验结果的步骤包括:
将所述用户名和密码信息提交至访问控制列表服务ACL,以使所述ACL调用校验系统对所述用户名和密码信息进行验证并返回校验结果;
或者,将所述用户名和密码信息提交至访问控制列表服务ACL,以在所述ACL中验证所述用户名和密码信息并返回校验结果。
6.如权利要求1所述的消息鉴权方法,其特征在于,所述判定所述消息生产/消费客户端的消息鉴权通过的步骤之后,还包括:
当消息请求为消息生产请求时,从请求中获取待生产的消息内容,将所述待生产的消息内容写入对应的Topic中,并将写入是否成功的状态返回至消息生产客户端;
当消息请求为消息消费请求时,从请求中获取所述消息消费客户端订阅的Topic,获取待消费的消息内容,将所述待消费的消息内容返回至消息消费客户端。
7.一种消息鉴权设备,其特征在于,所述消息鉴权设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的消息鉴权程序,所述消息鉴权程序被所述处理器执行时实现如权利要求1-6任一项所述的消息鉴权方法。
8.一种消息鉴权系统,其特征在于,所述消息鉴权系统包括消息鉴权设备、与消息鉴权设备通信连接的ACL组件,以及与所述ACL组件通信连接的服务信息管理组件;其中,
所述消息鉴权设备为如权利要求7所述的消息鉴权设备;
所述服务信息管理组件,用于获取客户端部署实例信息和服务治理数据信息,并将所述客户端部署实例信息和服务治理数据信息进行保存,所述客户端部署实例信息包括应用系统ID及应用系统对应的客户端IP地址,所述服务治理数据信息包括应用系统ID及服务ID,所述服务ID包括应用系统所允许请求的服务ID和应用系统所提供的服务ID;
所述ACL组件,用于定期获取所述客户端部署实例信息和服务治理数据信息,并将所述客户端部署实例信息中的客户端IP地址与所述服务治理数据信息中的服务ID通过应用系统ID进行关联,得到所述服务ID与客户端IP地址的映射关系;并将所述服务ID抽象为Topic名称后,将得到的Topic名称与客户端的IP地址进行关联,以得到Topic名称与客户端的IP地址集合之间的映射关系。
9.如权利要求8所述的消息鉴权系统,其特征在于,所述服务信息管理组件为:配置管理数据库或服务治理系统或配置管理数据库及服务治理系统的组合;
在所述服务信息管理组件为配置管理数据库及服务治理系统的组合时,所述配置管理数据库及服务治理系统分别与ACL组件通信连接;
所述配置管理数据库,用于获取客户端部署实例信息,并将所述客户端部署实例信息进行保存,所述客户端部署实例信息包括应用系统ID及应用系统对应的客户端IP地址;
所述服务治理系统,用于获取服务治理数据信息,并将所述服务治理数据信息进行保存,所述服务治理数据信息包括应用系统ID及服务ID,所述服务ID包括应用系统所允许请求的服务ID和应用系统所提供的服务ID。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有消息鉴权程序,所述消息鉴权程序被处理器执行时实现如权利要求1至6中任一项所述的消息鉴权方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811112425.6A CN109413040B (zh) | 2018-09-21 | 2018-09-21 | 消息鉴权方法、设备、系统及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811112425.6A CN109413040B (zh) | 2018-09-21 | 2018-09-21 | 消息鉴权方法、设备、系统及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109413040A CN109413040A (zh) | 2019-03-01 |
CN109413040B true CN109413040B (zh) | 2020-12-18 |
Family
ID=65466330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811112425.6A Active CN109413040B (zh) | 2018-09-21 | 2018-09-21 | 消息鉴权方法、设备、系统及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109413040B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109711122B (zh) * | 2019-01-23 | 2021-04-30 | 北京奇艺世纪科技有限公司 | 一种权限管理方法、装置、系统、设备及可读存储介质 |
CN110753129A (zh) * | 2019-10-29 | 2020-02-04 | 深圳前海微众银行股份有限公司 | 消息传输方法、系统、装置、设备及计算机可读存储介质 |
CN111240867B (zh) * | 2020-01-21 | 2023-11-03 | 中移(杭州)信息技术有限公司 | 一种信息通讯系统及方法 |
CN111885203A (zh) * | 2020-08-04 | 2020-11-03 | 浪潮云信息技术股份公司 | 一种基于cmsp进行远程管理的方法 |
CN112039882B (zh) * | 2020-08-31 | 2023-04-07 | 广州鲁邦通物联网科技股份有限公司 | 一种消息传输处理方法、系统、设备及存储介质 |
CN112187785B (zh) * | 2020-09-25 | 2023-01-31 | 北京自如信息科技有限公司 | 消息处理方法、装置、电子设备和存储介质 |
CN113556357A (zh) * | 2021-07-30 | 2021-10-26 | 平安普惠企业管理有限公司 | 基于注册中心的鉴权方法、装置、设备及存储介质 |
CN114238505B (zh) * | 2021-12-15 | 2024-08-23 | 上海新炬网络信息技术股份有限公司 | 一种基于模型映射进行cmdb多元数据同步实现方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848236A (zh) * | 2010-05-06 | 2010-09-29 | 北京邮电大学 | 具有分布式网络架构的实时数据分发系统及其工作方法 |
CN104158816A (zh) * | 2014-08-25 | 2014-11-19 | 中国科学院声学研究所 | 认证方法、装置和服务器 |
CN104980441A (zh) * | 2015-06-26 | 2015-10-14 | 浪潮软件股份有限公司 | 一种实现租户鉴权机制的方法 |
CN106446050A (zh) * | 2016-08-31 | 2017-02-22 | 北京云纵信息技术有限公司 | 一种针对数据库的变化数据进行订阅的方法及系统 |
CN107431664A (zh) * | 2015-01-23 | 2017-12-01 | 电子湾有限公司 | 处理大容量网络数据 |
CN107438061A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 一种kafka客户端鉴权的方法和装置 |
CN108390881A (zh) * | 2018-02-27 | 2018-08-10 | 北京焦点新干线信息技术有限公司 | 一种分布式高并发实时消息推送方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10212120B2 (en) * | 2016-04-21 | 2019-02-19 | Confluent, Inc. | Distributed message queue stream verification |
US10484354B2 (en) * | 2017-02-15 | 2019-11-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Data owner restricted secure key distribution |
-
2018
- 2018-09-21 CN CN201811112425.6A patent/CN109413040B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848236A (zh) * | 2010-05-06 | 2010-09-29 | 北京邮电大学 | 具有分布式网络架构的实时数据分发系统及其工作方法 |
CN104158816A (zh) * | 2014-08-25 | 2014-11-19 | 中国科学院声学研究所 | 认证方法、装置和服务器 |
CN107431664A (zh) * | 2015-01-23 | 2017-12-01 | 电子湾有限公司 | 处理大容量网络数据 |
CN104980441A (zh) * | 2015-06-26 | 2015-10-14 | 浪潮软件股份有限公司 | 一种实现租户鉴权机制的方法 |
CN107438061A (zh) * | 2016-05-27 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 一种kafka客户端鉴权的方法和装置 |
CN106446050A (zh) * | 2016-08-31 | 2017-02-22 | 北京云纵信息技术有限公司 | 一种针对数据库的变化数据进行订阅的方法及系统 |
CN108390881A (zh) * | 2018-02-27 | 2018-08-10 | 北京焦点新干线信息技术有限公司 | 一种分布式高并发实时消息推送方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109413040A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109413040B (zh) | 消息鉴权方法、设备、系统及计算机可读存储介质 | |
US11336451B2 (en) | Cross-blockchain resource transmission | |
CN109561226B (zh) | 一种api混合多租户路由方法、系统和api网关 | |
US8918507B2 (en) | Dynamic grouping of enterprise assets | |
US8347378B2 (en) | Authentication for computer system management | |
US10742415B2 (en) | Method and apparatus for inter-blockchain transmission of authenticable message | |
US9544288B2 (en) | Messaging gateway | |
CN110765484B (zh) | 一种征信数据处理方法及电子设备 | |
US20110302631A1 (en) | Systems and methods for logging into an application on a second domain from a first domain in a multi-tenant database system environment | |
CN112788031B (zh) | 基于Envoy架构的微服务接口认证系统、方法及装置 | |
US8725857B2 (en) | Dynamic query services and methods | |
CN110224855B (zh) | 微服务实例的注册方法、装置、计算机设备及存储介质 | |
CN113271311B (zh) | 一种跨链网络中的数字身份管理方法及系统 | |
US11641356B2 (en) | Authorization apparatus, data server and communication system | |
WO2017101382A1 (zh) | 终端连接服务器的方法、终端及域名服务器 | |
EP3128715B1 (en) | Resource creation method and apparatus | |
CN114401319B (zh) | 一种请求处理方法、装置、服务器及存储介质 | |
CN116527632A (zh) | 内容分发网络回源请求的处理方法、装置、设备及介质 | |
WO2015117482A1 (zh) | 更新资源通告的方法、本地公共业务实体及系统 | |
US8689304B2 (en) | Multiple independent authentications for enhanced security | |
CN115801472B (zh) | 一种基于鉴权网关的权限管理方法及系统 | |
CN111147496B (zh) | 数据处理方法及装置 | |
CN110784551A (zh) | 基于多租户的数据处理方法、装置、设备和介质 | |
CN114675876B (zh) | 一种业务处理方法、装置、电子设备及存储介质 | |
CN114338788B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |