CN112532599A - 一种动态鉴权方法、装置、电子设备和存储介质 - Google Patents
一种动态鉴权方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN112532599A CN112532599A CN202011304485.5A CN202011304485A CN112532599A CN 112532599 A CN112532599 A CN 112532599A CN 202011304485 A CN202011304485 A CN 202011304485A CN 112532599 A CN112532599 A CN 112532599A
- Authority
- CN
- China
- Prior art keywords
- token
- authority
- identity
- authentication
- identity token
- 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.)
- Granted
Links
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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
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)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种动态鉴权方法、装置、电子设备和存储介质,用以解决现有的基于零信任安全架构的分布式系统的动态鉴权方法对认证鉴权中心造成过大压力以及对系统造成响应时间延迟过大的问题。所述动态鉴权方法,包括:认证鉴权中心接收安全网关发送的鉴权请求,鉴权请求中携带有终端代理发送给安全网关的业务请求,所述业务请求中包含用户信息;根据用户信息对用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌;将身份令牌和权限令牌发送至安全网关,由安全网关发送至终端代理,以使终端代理再次发送业务请求时携带身份令牌和权限令牌,使得业务请求流经的每一节点根据身份令牌对用户进行身份认证以及根据权限令牌对用户进行鉴权。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种动态鉴权方法、装置、电子设备和存储介质。
背景技术
基于UEBA(User and Entity Behavior Analytics,用户实体行为分析)、零信任安全架构、SDP(Software Defined Perimeter,软件定义边界)架构等的分布式系统,基于用户行为分析、风险准入策略等实现持续自适应的认证和授权。
上述分布式系统当前实现动态鉴权的通常方法是:在用户发起业务请求时,该业务请求所流经的分布式系统中的相关节点中的每一节点都将向认证鉴权中心发起鉴权请求,由认证鉴权中心实时收集用户的行为习惯、地理位置、所处终端、网络环境等信息,利用预先定义的策略模型及算法进行实时运算,评估当前的业务请求是否得到授权,然而,由于用户的每个操作,会向服务端发起多个业务请求,如果每一请求在流经每一节点时都进行一次权限动态评估,将会对认证鉴权中心造成过大压力,且对系统造成响应时间延迟过大的问题。
例如,图1所示为在基于零信任安全架构的分布式系统下的一个典型的部署场景,当用户通过终端代理对业务系统进行业务请求时,终端代理通过安全网关访问到单点门户,由单点门户转发业务请求到应用代理,应用代理再访问到业务系统,将业务请求发送给业务系统,其中,在每一节点的访问都必需是可信的,即需要安全认证和鉴权,常规的实现方式是:终端代理将业务请求发送至安全网关,安全网关将业务请求转发至认证鉴权中心,由认证鉴权中心对用户身份进行认证,当用户身份认证通过后,认证鉴权中心将向终端代理下发的身份令牌发送至安全网关,由安全网关发送给终端代理,终端代理在后续的访问中将该身份令牌携带在业务请求中,当业务请求流经到其它节点上时,除了对身份令牌进行校验外,还需将当前的业务请求转发至认证鉴权中心进行实时的权限评估,如果允许访问当前节点,才将该业务请求放行至下一节点,由于业务请求需要经过若干个独立的节点,每个节点都需要确保业务请求经过了合法的认证和鉴权,如果每个节点都向认证鉴权中心请求一次动态的鉴权,经过多个节点的延时迭加,将对系统整体响应时间造成较大影响。
发明内容
为了解决现有的基于零信任安全架构的分布式系统的动态鉴权方法对认证鉴权中心造成过大压力以及对系统造成响应时间延迟过大的问题,本发明实施例提供了一种动态鉴权方法、装置、电子设备和存储介质。
第一方面,本发明实施例提供了一种认证鉴权中心侧实施的动态鉴权方法,包括:
认证鉴权中心接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息;
根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌;
将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
本发明实施例提供的上述动态鉴权方法中,认证鉴权中心接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息,认证鉴权中心根据所述用户信息对所述用户进行身份认证和权限认证,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌,将所述身份令牌和所述权限令牌发送至所述安全网关,所述安全网关将所述身份令牌和所述权限令牌返回给所述终端代理,当所述终端代理再次发生业务请求时,将所述身份令牌和所述权限令牌携带在业务请求中,携带了所述身份令牌和权限令牌的业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证,以及根据所述权限令牌对所述用户进行鉴权,相比于现有技术,本发明实施例提供的动态鉴权方法,认证鉴权中心向终端代理下发身份令牌时还下发权限令牌,终端代理发送业务请求时,将身份令牌和权限令牌携带在业务请求中,该业务请求流经的节点接收到该业务请求时,无需再次向认证鉴权中心发送鉴权请求对用户进行动态鉴权,而是可以直接根据业务请求中携带的权限令牌对用户进行动态鉴权,从而避免了对认证鉴权中心造成过大压力,以及节约了系统响应时间。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌中的载荷中至少包括权限令牌标识、所述身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值。
本发明实施例中,设置权限令牌的有效期比身份认证令牌的有效期短,以满足基于零信任安全架构的分布式系统对动态权限评估的要求。
可选地,在对所述用户进行权限评估之前,还包括:
确定所述业务请求流经的每一节点;
根据所述用户信息对所述用户进行权限评估,具体包括:
根据所述用户信息和存储的所述每一节点的权限信息,确定所述用户针对每一节点的权限评估结果。
本发明实施例中,认证鉴权中心预先存储其管辖下的分布式系统的各节点的权限信息,当确定业务请求流经的每一节点后,根据用户信息和存储的所述每一节点的权限信息,得到用户针对每一节点的权限评估结果。
第二方面,本发明实施例提供了一种节点侧实施的动态鉴权方法,包括:
任一节点接收业务请求,所述业务请求中携带有用户信息;
当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
本发明实施例提供的上述动态鉴权方法中,当任一节点接收到携带有用户信息的业务请求时,先判定所述业务请求中是否包含身份令牌和权限令牌,当确定所述业务请求中包含有身份令牌和权限令牌时,根据身份令牌对用户进行身份认证,并根据权限令牌对用户进行鉴权,相比于现有技术,由于当携带了身份令牌和权限令牌的业务请求流经的节点接收到该业务请求时,无需再次向认证鉴权中心发送鉴权请求对用户进行动态鉴权,而是可以直接根据业务请求中携带的权限令牌对用户进行动态鉴权,从而避免了对认证鉴权中心造成过大压力,以及节约了系统响应时间。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌的载荷中至少包括权限令牌标识、身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述权限评估结果是认证鉴权中心预先对所述用户进行权限评估后获得的,所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值;
根据所述权限令牌对所述用户进行鉴权,具体包括:
所述节点通过所述权限令牌的头部中声明的签名算法对所述权限令牌的头部和载荷利用预设密钥进行签名,获得所述权限令牌的第一签名;
将所述第一签名和所述权限令牌的签名进行比对,获得比对结果;
当确定所述比对结果为一致、且当前时间未超过所述权限令牌的过期时间、且所述权限令牌的载荷中的身份令牌标识与所述身份令牌的载荷中的身份令牌标识相同时,从所述权限令牌的载荷的权限评估结果中获取所述用户针对所述节点的权限评估结果;
根据所述节点的权限评估结果对所述用户进行权限控制。
本发明实施例中,身份令牌和权限令牌均为JWT令牌,权限令牌的载荷中不仅包括权限令牌标识,还包括身份令牌标识,将权限令牌与用户身份建立关联,权限令牌的载荷中还包括权限评估结果,所述权限评估结果是认证鉴权中心预先对所述用户进行权限评估后获得的,并设置权限令牌的有效期比身份认证令牌的有效期短,以满足基于零信任安全架构的分布式系统对动态权限评估的要求。当节点接收到业务请求后,通过权限令牌的头部中声明的签名算法对权限令牌的头部和载荷利用预先约定的密钥进行签名,获得权限令牌的第一签名,并将获得的第一签名和权限令牌中的签名进行比对,如果这两个签名相同,并且权限令牌在有效期内、且权限令牌的载荷中的身份令牌标识与身份令牌的载荷中的身份令牌标识相同时,从权限令牌的载荷的权限评估结果中获取用户针对该节点的权限评估结果,根据该节点的权限评估结果对所述用户进行权限控制,从而实现在节点处直接完成对用户的动态鉴权。
第三方面,本发明实施例提供了一种认证鉴权中心侧实施的动态鉴权装置,包括:
接收单元,用于接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息;
令牌生成单元,用于根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌;
发送单元,用于将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌中的载荷中至少包括权限令牌标识、所述身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值。
可选地,所述装置,还包括:
确定单元,用于在对所述用户进行权限评估之前,确定所述业务请求流经的每一节点;
所述令牌生成单元,具体用于根据所述用户信息和存储的所述每一节点的权限信息,确定所述用户针对每一节点的权限评估结果。
本发明提供的认证鉴权中心侧实施的动态鉴权装置的技术效果可以参见上述第一方面或第一方面的各个实现方式的技术效果,此处不再赘述。
第四方面,本发明实施例提供了一种节点侧实施的动态鉴权装置,包括:
接收单元,用于任一节点接收业务请求,所述业务请求中携带有用户信息;
认证与鉴权单元,当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌的载荷中至少包括权限令牌标识、身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述权限评估结果是认证鉴权中心预先对所述用户进行权限评估后获得的,所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值;
所述认证与鉴权单元,具体用于所述节点通过所述权限令牌的头部中声明的签名算法对所述权限令牌的头部和载荷利用预设密钥进行签名,获得所述权限令牌的第一签名;将所述第一签名和所述权限令牌的签名进行比对,获得比对结果;当确定所述比对结果为一致、且当前时间未超过所述权限令牌的过期时间、且所述权限令牌的载荷中的身份令牌标识与所述身份令牌的载荷中的身份令牌标识相同时,从所述权限令牌的载荷的权限评估结果中获取所述用户针对所述节点的权限评估结果;根据所述节点的权限评估结果对所述用户进行权限控制。
本发明提供的节点侧实施的动态鉴权装置的技术效果可以参见上述第二方面或第二方面的各个实现方式的技术效果,此处不再赘述。
第五方面,本发明实施例提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明所述的动态鉴权方法。
第六方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明所述的动态鉴权方法中的步骤。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为现有的基于零信任安全架构的分布式系统的一个应用场景示意图;
图2为本发明实施例提供的动态鉴权方法的一个应用场景示意图;
图3为本发明实施例提供的动态鉴权方法的实施流程示意图;
图4为本发明实施例中,对用户进行身份认证的实施流程示意图;
图5为本发明实施例中,对用户进行鉴权的实施流程示意图;
图6为本发明实施例提供的认证鉴权中心侧实施的动态鉴权方法的实施流程示意图;
图7为本发明实施例提供的认证鉴权中心侧实施的动态鉴权装置的结构示意图;
图8为本发明实施例提供的节点侧实施的动态鉴权方法的实施流程示意图;
图9为本发明实施例提供的节点侧实施的动态鉴权装置的结构示意图;
图10为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为了解决现有的基于零信任安全架构的分布式系统的动态鉴权方法对认证鉴权中心造成过大压力以及对系统造成响应时间延迟过大的问题,本发明实施例提供了一种动态鉴权方法、装置、电子设备和存储介质。
以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
首先参考图2,其为本发明实施例提供的动态鉴权方法的一个应用场景示意图,其为基于零信任安全架构的分布式系统的一个典型部署场景,用户通过终端设备安装的终端代理向安全网关发送业务请求,安全网关先判断业务请求中是否携带有身份令牌和权限令牌,如未携带身份令牌和权限令牌,则向认证鉴权中心发送鉴权请求,所述鉴权请求中携带有所述业务请求,所述业务请求中包含用户信息,认证鉴权中心根据所述用户信息对用户进行身份认证生成身份令牌,并且,认证鉴权中心预先存储其管辖下的分布式系统的各节点的权限信息,当确定业务请求流经的每一节点后,根据用户信息和存储的所述每一节点的权限信息,得到用户针对每一节点的权限评估结果,并生成权限令牌,身份令牌和权限令牌均为JWT令牌(JSON Web Token,JSON网络令牌)(JWT是为了在网络应用环境间传递声明而执行的一种基于RFC 7519的开放数据标准,它使用JSON(JavaScript Object Notation)格式的数据在应用之间安全地传输信息,该信息可以被验证和信任,因为它是数字签名的,该Token被设计为紧凑且安全的,特别适用于分布式站点的单点登录场景,该Token也可直接被用于认证,也可被加密)。
进而,认证鉴权中心将身份令牌和权限令牌返回给安全网关,由安全网关发送至终端代理,当终端代理再次发生业务请求时,将身份令牌和权限令牌携带在业务请求中发送给安全网关,安全网关从权限令牌的载荷中包含的权限评估结果中获取用户针对所述安全网关的权限评估结果,根据获取的用户针对所述安全网关的权限评估结果对用户进行权限控制,如果终端代理有权限访问所述安全网关,则对该业务请求进行放行,由安全网关发送给下一节点单点门户,单点门户以同样的方式对用户进行权限控制,当单点登录成功后,再由单点门户将所述业务请求发送给下一节点应用代理,如果有权限访问所述应用代理,则由应用代理将所述业务请求发送给下一节点业务系统,当业务系统判断该用户有权限登录该业务系统,则根据所述业务请求将请求的数据返回给所述终端代理。
需要说明的是,本发明实施例中的基于零信任安全架构的分布式系统中的节点可以为任意的网络节点,不限于图2的应用场景,本申请仅以图2的应用场景为例进行说明。
下面结合图2的应用场景,参考图3-图5来描述根据本发明示例性实施方式的动态鉴权方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
如图3所示,其为本发明实施例提供的动态鉴权方法的实施流程示意图,可以包括以下步骤:
S11、终端代理向安全网关发送业务请求。
具体实施时,用户通过安装在终端上的终端代理向安全网关发送业务请求,所述业务请求中包含用户信息,其中,用户信息可以但不限于包括以下信息:用户所请求的业务所属的应用的登录账号及密码信息、用户身份信息、用户使用的所述终端的标识和IP(Internet Protocol,网际互连协议)地址、用户的行为习惯信息、用户所属的地理位置与网络环境信息等。
S12、安全网关确定所述业务请求中是否包含身份令牌和权限令牌,如果是,则执行步骤S18,如果否,则执行步骤S13。
S13、安全网关向认证鉴权中心发送鉴权请求。
具体实施时,当所述业务请求中不包含身份令牌和权限令牌时,安全网关向认证鉴权中心发送鉴权请求,所述鉴权请求中携带有所述业务请求。
S14、认证鉴权中心根据所述业务请求中包含的用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌。
具体实施时,认证鉴权中心根据业务请求中包含的用户信息对所述用户进行身份认证,生成身份令牌,以及根据所述用户信息对所述用户进行权限评估,生成权限令牌,所述身份令牌和所述权限令牌为JWT令牌,可以分别称为JWT身份令牌和JWT权限令牌。
具体地,认证鉴权中心根据用户身份信息对所述用户进行身份认证,得到身份认证结果,并生成JWT身份令牌,所述身份令牌的载荷中至少包括身份令牌标识(即身份令牌的唯一标识)、身份令牌的签发时间和身份令牌的过期时间。JWT身份令牌由三部分组成:第一部分为头部(Header),第二部分为载荷(Payload),第三部分为签名(Signature),各部分所包含的字段及其内容的含义如表1所示:
表1
如表1中所示,JWT身份令牌由三段信息构成,即Header、Payload和Signature,将这三段信息文本用.连接一起就构成了JWT字符串。其中,Header中承载两部分信息:声明身份令牌的类型,即JWT,以及声明签名的算法,可以使用但不限于HMAC-SM3(基于国产散列函数标准的哈希运算消息认证码算法),HMAC-SM3是使用SM3算法对明文进行摘要得到的结果和一个密钥做为输入,生成一个消息摘要做为输出的消息认证码算法,还可以使用其它任意可用的签名算法,例如HMAC SHA256(基于SHA256的哈希运算消息认证码算法),HMACSHA256是使用SHA256算法(Secure Hash Algorithm,安全散列算法-256)对明文进行摘要得到的结果和一个密钥做为输入,生成一个消息摘要做为输出的消息认证码算法,本发明实施例对此不作限定。将头部进行base64(基于64个可打印字符来表示二进制数据的加密算法)加密,构成JWT的第一部分。
Payload是存放有效信息的地方,这些有效信息包含三个部分:标准中注册的声明、公共的声明和私有的声明,其中,标准中注册的声明包括:iss:声明身份令牌的签发者,sub:声明身份令牌所面向的用户,aud:声明接收身份令牌的一方,exp:声明身份令牌的过期时间,nbf:定义在什么时间之前,该身份令牌是不可用的,iat:声明身份令牌的签发时间,jti:声明身份令牌的唯一标识。公共的声明可以添加任何的信息,一般添加用户的相关信息或其他业务需要的必要信息,但不建议添加敏感信息,因为该部分在客户端可解密。私有的声明是提供者和消费者所共同定义的声明,一般不建议存放敏感信息,因为base64是对称解密的,意味着该部分信息可以归类为明文信息。将载荷进行base64加密,得到JWT的第二部分。
Signature是对前两个部分(Header和Payload)的签名,防止数据篡改,即:将base64加密后的Header和base64加密后的Payload使用.连接组成的字符串,通过Header中声明的签名算法(即HMAC-SM3),使用共享密钥secret作为算法中需要使用到的密钥,签名后得到的字符串,构成JWT的第三部分,secret是认证鉴权中心本地存储且与消费者共同拥有的共享密钥,用来进行JWT的签发和JWT的验证。其具体代码表示如下:
//javascript
var encodedString=base64UrlEncode(hearder)+’.’+base64UrlEncode(payload);
var signature=HMAC SM3(encodedString,’secret’);//
进而,将JWT的这三个部分用.连接成一个字符串,构成最终的身份令牌。
具体实施时,认证鉴权中心根据用户信息对所述用户进行权限评估,得到权限评估结果,生成JWT权限令牌,其中,所述权限令牌中的载荷中至少包括权限令牌标识、所述身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果。
具体地,JWT权限令牌与JWT身份令牌一样由三部分组成:第一部分为头部(Header),第二部分为载荷(Payload),第三部分为签名(Signature),各部分所包含的字段及其内容的含义如表2所示:
表2
如表2中所示,JWT权限令牌由三段信息构成,即Header、Payload和Signature,将这三段信息文本用.连接一起就构成了JWT字符串。其中,Header中承载两部分信息:声明权限令牌的类型,即JWT-P(这里用JWT-P表示JWT权限令牌,仅用于和身份令牌进行区别,身份令牌和权限令牌的类型本质上都是JWT令牌),以及声明签名的算法,可以使用但不限于HMAC-SM3,还可以使用其它任意可用的签名算法,例如HMAC SHA256,本发明实施例对此不作限定。将头部进行base64加密,构成JWT的第一部分。
Payload存放的有效信息可以包含标准中注册的声明,而无需携带公共的声明和私有的声明,其中,标准中注册的声明可以包括:exp:声明权限令牌的过期时间,nbf:定义在什么时间之前,该权限令牌是不可用的,iat:声明权限令牌的签发时间,jtip:声明权限令牌的唯一标识,jti:声明身份令牌的唯一标识,evaluate results:声明权限评估结果。在权限令牌的载荷里加入身份令牌的唯一标识,以使的身份令牌标识和权限令牌标识建立对应关系,并且,令身份令牌的过期时间和身份令牌的签发时间的差值大于权限令牌的过期时间和权限令牌的签发时间的差值,也就是身份令牌的有效时间应大于权限令牌的有效期,以满足基于零信任安全架构的分布式系统对动态权限评估的要求,上述各时间可以根据需要自行设定,本发明实施例对此不作限定。并且,在权限令牌的载荷中加入权限评估结果。将载荷进行base64加密,得到JWT的第二部分。
其中,所述权限评估结果包括用户针对所述业务请求流经的每一节点的权限评估结果,在具体实施时,认证鉴权中心确定所述业务请求流经的每一节点,根据所述用户信息和本地存储的所述每一节点的权限信息,确定所述用户针对每一节点的权限评估结果。
具体实施时,认证鉴权中心预先存储其管辖的分布式系统各节点的权限信息。认证鉴权中心根据用户行为习惯信息、用户所属的地理位置、用户所使用的终端的标识、IP地址、网络环境信息,结合本地存储的所述业务请求流经的每一节点的权限信息,确定所述用户分别针对所述每一节点的权限评估结果。
本发明实施例中采用的权限定义方式可以包括但不限于以下几种方式:访问控制列表(Access Control Lists,ACL)、角色(role)、菜单(menu)(模块)、URL(UniformResource Locator,统一资源定位符)以及数据操作方式等。各节点可以根据自身所处的环节和作用选取合适的权限定义方式进行权限控制。如客户端代理、安全网关以及单点门户适用ACL方式,应用代理适用菜单(模块)或URL方式,业务系统适用菜单(模块)、URL以及数据操作方式等。
假设认证鉴权中心本地存储的权限信息如下:
“acl”:
http:secret.example.com/meeting AND corp_virtual
http:secret.example.com/
http:*.example.com/
http://oa.example.com/todolist read
http://oa.example.com/usermanager read modify
ip tcp:10.10.2.0/24
ip tcp:10.10.0.0/16
ip udp:10.10.2.0/24:53
ip tcp:192.168.11.2:23
ip*:0.0.0.0deny
“role”:
oa:admin
mail:user
“menu”:
oa:user role report
crm:portal notice
“url”:
bpm:/user/adduser/user/deluser
erp:/config/setrule/user/listuser
“oper”:
bpm:create delete modify
上述权限信息包括分别利用ACL方式、role方式、menu方式、url方式以及数据操作方式(oper)定义的权限信息。其中,利用ACL方式定义了可以访问的网址、目标地址、可支持的协议,其中目标地址记为业务系统的地址。利用role方式定义了可以访问的业务系统以及可以访问的角色,可以访问的业务系统包括:oa(Office Automation,办公自动化)系统、mail(邮箱)系统,可访问oa系统的角色为:admin(管理员),可以访问mail系统的角色为:user(用户)。利用menu方式定义了可以访问的业务系统以及可以访问的所述业务系统的菜单(或模块),可以访问的业务系统包括:oa系统和crm(Customer RelationshipManagement,客户关系管理)系统,可以访问的oa系统中的菜单(模块)为:user菜单(模块)、role菜单(模块)和report(报告)菜单(模块),可以访问的crm系统中的菜单(模块)为:portal(门户)菜单(模块)和notice(通知公告)菜单(模块)。利用URL方式定义了可以访问的业务系统和可以访问的所述业务系统的页面,可以访问的业务系统包括:bpm(BusinessProcess Management,业务流程管理)系统和erp(Enterprise Resource Planning,企业资源计划)系统,可以访问的bpm系统中的页面为:user页面下的adduser(添加用户)页面,以及user页面下的deluser(删除用户)页面,可以访问的erp系统中的页面为:config(配置)页面下的setrule(设置规则)页面,以及user页面下的listuser(用户列表)页面。利用数据操作方式(oper)定义了可以访问的业务系统以及在所述业务系统中可以采用的数据操作方式,可以访问的业务系统包括:bpm系统,在bpm系统中可以采用的数据操作方式包括:create(创建)、delete(删除)、modify(修改)。
假设用户请求访问的目标地址(即请求访问的业务系统的地址)为10.10.2.0/24,支持的协议为TCP(TCP,Transmission Control Protocol,传输控制协议)/IP,则将该目标地址与支持的协议与上述证鉴权中心存储的权限信息中“acl”列表下的权限信息进行匹配,与其中的“ip tcp:10.10.2.0/24”匹配上,则进一步根据用户信息,如用户所处的地理位置等信息判断该用户是否有权限访问该目标地址对应的业务系统,如果有权限访问,则当业务请求流经业务系统前的各个节点且身份认证通过时,对其进行放行,将所述业务请求转发至下一节点,而无需再向认证鉴权中心发送鉴权请求。认证鉴权中心确定所述用户分别针对确定的所述业务请求流经的所述每一节点的权限评估结果,将权限评估结果存储于权限令牌的载荷的evaluate results字段(即评估结果字段)中,evaluate results字段采用JSON格式。
一个评估结果格式示例如下:
Signature是对前两个部分(Header和Payload)的签名,即:将base64加密后的Header和base64加密后的Payload使用.连接组成的字符串,通过Header中声明的签名算法(即HMAC-SM3),使用共享密钥secret作为算法中需要使用到的密钥,签名后得到的字符串,构成JWT的第三部分,secret是认证鉴权中心本地存储且与消费者共同拥有的共享密钥,用来进行JWT的签发和JWT的验证。进而,将JWT的这三个部分用.连接成一个字符串,构成最终的权限令牌。
S15、认证鉴权中心将所述身份令牌和所述权限令牌发送至安全网关。
S16、安全网关将所述身份令牌和所述权限令牌发送至终端代理。
S17、终端代理将所述身份令牌和所述权限令牌携带在业务请求中发送给安全网关。
具体实施时,当终端代理接收到所述身份令牌和所述权限令牌后,再次向安全网关发送业务请求时将所述身份令牌和所述权限令牌携带在业务请求中发送,直至所述权限令牌过期时,再次由认证鉴权中心为其重新分配权限令牌。
S18、安全网关根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,当身份认证和鉴权均通过时,执行步骤S19,当身份认证和鉴权有任一未通过时,则执行步骤S110。
具体实施时,安全网关根据所述身份令牌验证所述用户身份,并根据所述权限令牌对所述用户进行鉴权。
具体地,通过如图4所示的流程对用户进行身份认证,可以包括以下步骤:
S21、安全网关通过身份令牌的头部中声明的签名算法对所述身份令牌的头部和载荷利用预设密钥进行签名,获得所述身份令牌的第一签名。
具体实施时,预设密钥即为认证鉴权中心本地存储且与消费者共同拥有的共享密钥secret。
具体地,安全网关将base64加密后的身份令牌的头部+“.”+base64加密后的身份令牌的载荷,利用共享密钥secret通过身份令牌的头部中声明的签名算法进行签名,将签名后得到的字符串,记为身份令牌的第一签名。
例如,在表1中身份令牌的头部的alg字段中声明的签名算法为HMAC-SM3算法,则安全网关从身份令牌中提取头部(即身份令牌的第一部分)和身份令牌的载荷(即身份令牌的第二部分),将base64加密后的身份令牌的头部+“.”+base64加密后的身份令牌的载荷,利用共享密钥secret通过HMAC-SM3算法进行签名,得到身份令牌的第一签名。
S22、将所述身份令牌的第一签名和所述身份令牌的签名进行比对,获得比对结果。
具体实施时,从身份令牌中提取签名(即身份令牌的第三部分),将获得的身份令牌的第一签名和身份令牌中的签名进行比对,获得比对结果。
S23、当确定所述比对结果为一致、且当前时间未超过所述身份令牌的过期时间,从所述身份令牌的载荷中提取用户的身份信息,根据所述身份信息对用户进行身份认证。
具体实施时,当确定身份令牌的第一签名和身份令牌中的签名一致,且当前时间未超过身份令牌的过期时间时,从身份令牌的载荷的公共声明中提取用户的相关信息,获得用户的身份信息,根据所述身份信息对用户进行身份认证。
通过如图5所示的流程对用户进行鉴权,可以包括以下步骤:
S31、安全网关通过权限令牌的头部中声明的签名算法对所述权限令牌的头部和载荷利用预设密钥进行签名,获得所述权限令牌的第一签名。
具体实施时,预设密钥即为认证鉴权中心本地存储且与消费者共同拥有的共享密钥secret。安全网关将base64加密后的权限令牌的头部+“.”+base64加密后的权限令牌的载荷,利用共享密钥secret通过权限令牌的头部中声明的签名算法进行签名,将签名后得到的字符串,记为权限令牌的第一签名。
例如,在表2中权限令牌的头部的alg字段中声明的签名算法为HMAC-SM3算法,则安全网关从权限令牌中提取头部(即权限令牌的第一部分)和权限令牌的载荷(即权限令牌的第二部分),将base64加密后的权限令牌的头部+“.”+base64加密后的权限令牌的载荷,利用共享密钥secret通过HMAC-SM3算法进行签名,得到权限令牌的第一签名。
S32、将所述权限令牌的第一签名和所述权限令牌的签名进行比对,获得比对结果。
具体实施时,从权限令牌中提取签名(即权限令牌的第三部分),将获得的权限令牌的第一签名和权限令牌中的签名进行比对,获得比对结果。
S33、当确定所述比对结果为一致、且当前时间未超过所述权限令牌的过期时间、且所述权限令牌的载荷中的身份令牌标识与所述身份令牌的载荷中的身份令牌标识相同时,从所述权限令牌的载荷的权限评估结果中获取所述用户针对所述安全网关的权限评估结果。
具体实施时,当确定权限令牌的第一签名和身份令牌中的签名一致、且权限令牌的载荷中的身份令牌标识与身份令牌的载荷中的身份令牌标识相同时,从权限令牌的载荷的权限评估结果中获取所述用户针对所述安全网关的权限评估结果。
S34、根据所述安全网关的权限评估结果对所述用户进行权限控制。
具体实施时,根据所述用户针对所述安全网关的权限评估结果对所述用户进行权限控制。
例如,所述用户针对所述安全网关的权限评估结果为:Permit,即允许所述用户访问所述安全网关,则同时当身份认证通过时,所述安全网关对所述业务请求进行放行。
S19、安全网关将所述业务请求发送至下一节点。
具体实施时,当身份认证和鉴权均通过时,安全网关将所述业务请求发送至下一节点。
以图2的应用场景为例,则安全网关将所述业务请求发送至单点门户,单点门户再根据和安全网关同样的方式根据所述业务请求中携带的所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,当身份认证和鉴权均通过后,用户从单点门户登录,单点门户并将所述业务请求发送至下一节点:应用代理,基于同样的方式,当应用代理对用户的身份认证和鉴权均通过后,将所述业务请求发送至下一节点:所述业务请求对应的业务系统,所述业务系统基于同样的方式对用户的身份认证和鉴权均通过后,向终端代理返回响应消息,响应消息传输过程如下:业务系统→应用代理→安全网关→终端代理,由于用户已从单点门户成功登录,返回响应消息时无需再次经过单点门户。
S110、安全网关向终端代理返回请求失败响应。
具体实施时,身份认证和鉴权如有任一未通过,安全网关则向终端代理返回请求失败响应。
本发明实施例提供的动态鉴权方法中,认证鉴权中心接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息,认证鉴权中心根据所述用户信息对所述用户进行身份认证和权限认证,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌,将所述身份令牌和所述权限令牌发送至所述安全网关,所述安全网关将所述身份令牌和所述权限令牌返回给所述终端代理,当所述终端代理再次发生业务请求时,将所述身份令牌和所述权限令牌携带在业务请求中,携带了所述身份令牌和权限令牌的业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证,以及根据所述权限令牌对所述用户进行鉴权,相比于现有技术,本发明实施例提供的动态鉴权方法,认证鉴权中心向终端代理下发身份令牌时还下发权限令牌,终端代理发送业务请求时,将身份令牌和权限令牌携带在业务请求中,该业务请求流经的节点接收到该业务请求时,无需再次向认证鉴权中心发送鉴权请求对用户进行动态鉴权,而是可以直接根据业务请求中携带的权限令牌对用户进行动态鉴权,从而避免了对认证鉴权中心造成过大压力,以及节约了系统响应时间。
基于同一发明构思,本发明实施例还提供了一种认证鉴权中心侧实施的动态鉴权方法,由于上述认证鉴权中心侧实施的动态鉴权方法解决问题的原理与上述动态鉴权方法相似,因此上述认证鉴权中心侧实施的动态鉴权方法的实施可以参见上述动态鉴权方法的实施,重复之处不再赘述。
如图6所示,其为本发明实施例提供的认证鉴权中心侧实施的动态鉴权方法的实施流程示意图,所述动态鉴权方法应用于基于零信任安全架构的分布式系统,可以包括以下步骤:
S41、认证鉴权中心接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息。
S42、根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌。
S43、将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌中的载荷中至少包括权限令牌标识、所述身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值。
可选地,在对所述用户进行权限评估之前,还包括:
确定所述业务请求流经的每一节点;
根据所述用户信息对所述用户进行权限评估,具体包括:
根据所述用户信息和存储的所述每一节点的权限信息,确定所述用户针对每一节点的权限评估结果。
基于同一发明构思,本发明实施例还提供了一种认证鉴权中心侧实施的动态鉴权装置,由于上述认证鉴权中心侧实施的动态鉴权装置解决问题的原理与动态鉴权方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图7所示,其为本发明实施例提供的认证鉴权中心侧实施的动态鉴权装置的结构示意图,所述动态鉴权装置,应用于基于零信任安全架构的分布式系统,可以包括:
接收单元51,用于接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息;
令牌生成单元52,用于根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌;
发送单元53,用于将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌中的载荷中至少包括权限令牌标识、所述身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值。
可选地,所述装置,还包括:
确定单元,用于在对所述用户进行权限评估之前,确定所述业务请求流经的每一节点;
所述令牌生成单元52,具体用于根据所述用户信息和存储的所述每一节点的权限信息,确定所述用户针对每一节点的权限评估结果。
基于同一发明构思,本发明实施例还提供了一种节点侧实施的动态鉴权方法,由于上述节点侧实施的动态鉴权方法解决问题的原理与上述动态鉴权方法相似,因此上述节点侧实施的动态鉴权方法的实施可以参见上述动态鉴权方法的实施,重复之处不再赘述。
如图8所示,其为本发明实施例提供的节点侧实施的动态鉴权方法的实施流程示意图,所述动态鉴权方法应用于基于零信任安全架构的分布式系统,可以包括以下步骤:
S61、任一节点接收业务请求,所述业务请求中携带有用户信息。
S62、当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌的载荷中至少包括权限令牌标识、身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述权限评估结果是认证鉴权中心预先对所述用户进行权限评估后获得的,所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值;
根据所述权限令牌对所述用户进行鉴权,具体包括:
所述节点通过所述权限令牌的头部中声明的签名算法对所述权限令牌的头部和载荷利用预设密钥进行签名,获得所述权限令牌的第一签名;
将所述第一签名和所述权限令牌的签名进行比对,获得比对结果;
当确定所述比对结果为一致、且当前时间未超过所述权限令牌的过期时间、且所述权限令牌的载荷中的身份令牌标识与所述身份令牌的载荷中的身份令牌标识相同时,从所述权限令牌的载荷的权限评估结果中获取所述用户针对所述节点的权限评估结果;
根据所述节点的权限评估结果对所述用户进行权限控制。
基于同一发明构思,本发明实施例还提供了一种节点侧实施的动态鉴权装置,由于上述节点侧实施的动态鉴权装置解决问题的原理与动态鉴权方法相似,因此上述装置的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,其为本发明实施例提供的节点侧实施的动态鉴权装置的结构示意图,所述动态鉴权装置,应用于基于零信任安全架构的分布式系统,可以包括:
接收单元71,用于任一节点接收业务请求,所述业务请求中携带有用户信息;
认证与鉴权单元72,当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
较佳地,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌的载荷中至少包括权限令牌标识、身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述权限评估结果是认证鉴权中心预先对所述用户进行权限评估后获得的,所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值;
所述认证与鉴权单元72,具体用于所述节点通过所述权限令牌的头部中声明的签名算法对所述权限令牌的头部和载荷利用预设密钥进行签名,获得所述权限令牌的第一签名;将所述第一签名和所述权限令牌的签名进行比对,获得比对结果;当确定所述比对结果为一致、且当前时间未超过所述权限令牌的过期时间、且所述权限令牌的载荷中的身份令牌标识与所述身份令牌的载荷中的身份令牌标识相同时,从所述权限令牌的载荷的权限评估结果中获取所述用户针对所述节点的权限评估结果;根据所述节点的权限评估结果对所述用户进行权限控制。
基于同一技术构思,本发明实施例还提供了一种电子设备800,参照图10所示,电子设备800用于实施上述方法实施例记载的动态鉴权方法,该实施例的电子设备800可以包括:存储器801、处理器802以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如动态鉴权程序。所述处理器执行所述计算机程序时实现上述各个动态鉴权方法实施例中的步骤,例如图6所示的步骤S41。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如51。
本发明实施例中不限定上述存储器801、处理器802之间的具体连接介质。本申请实施例在图10中以存储器801、处理器802之间通过总线803连接,总线803在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线803可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器801可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器801也可以是非易失性存储器(non-volatilememory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器801可以是上述存储器的组合。
处理器802,用于实现如图6所示的一种认证鉴权中心侧实施的动态鉴权方法,包括:
所述处理器802,用于调用所述存储器801中存储的计算机程序执行如图6中所示的步骤S41、认证鉴权中心接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息,步骤S42、根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌,和步骤S43、将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
或者所述处理器802,还可以用于实现如图8所示的一种节点侧实施的动态鉴权方法,包括:
所述处理器802,用于调用所述存储器801中存储的计算机程序执行如图8中所示的步骤S61、任一节点接收业务请求,所述业务请求中携带有用户信息,和步骤S62、当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
本申请实施例还提供了一种计算机可读存储介质,存储为执行上述处理器所需执行的计算机可执行指令,其包含用于执行上述处理器所需执行的程序。
在一些可能的实施方式中,本发明提供的动态鉴权方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的动态鉴权方法中的步骤,例如,所述电子设备可以执行如图6中所示的步骤S41、认证鉴权中心接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息,步骤S42、根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌,和步骤S43、将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
或者所述电子设备还可以执行如图8中所示的步骤S61、任一节点接收业务请求,所述业务请求中携带有用户信息,和步骤S62、当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (12)
1.一种动态鉴权方法,其特征在于,包括:
认证鉴权中心接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息;
根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌;
将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
2.如权利要求1所述的方法,其特征在于,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌中的载荷中至少包括权限令牌标识、所述身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值。
3.如权利要求2所述的方法,其特征在于,在对所述用户进行权限评估之前,还包括:
确定所述业务请求流经的每一节点;
根据所述用户信息对所述用户进行权限评估,具体包括:
根据所述用户信息和存储的所述每一节点的权限信息,确定所述用户针对每一节点的权限评估结果。
4.一种动态鉴权方法,其特征在于,包括:
任一节点接收业务请求,所述业务请求中携带有用户信息;
当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
5.如权利要求4所述的方法,其特征在于,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌的载荷中至少包括权限令牌标识、身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述权限评估结果是认证鉴权中心预先对所述用户进行权限评估后获得的,所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值;
根据所述权限令牌对所述用户进行鉴权,具体包括:
所述节点通过所述权限令牌的头部中声明的签名算法对所述权限令牌的头部和载荷利用预设密钥进行签名,获得所述权限令牌的第一签名;
将所述第一签名和所述权限令牌的签名进行比对,获得比对结果;
当确定所述比对结果为一致、且当前时间未超过所述权限令牌的过期时间、且所述权限令牌的载荷中的身份令牌标识与所述身份令牌的载荷中的身份令牌标识相同时,从所述权限令牌的载荷的权限评估结果中获取所述用户针对所述节点的权限评估结果;
根据所述节点的权限评估结果对所述用户进行权限控制。
6.一种动态鉴权装置,其特征在于,包括:
接收单元,用于接收安全网关发送的鉴权请求,所述鉴权请求中携带有终端代理发送给所述安全网关的业务请求,所述业务请求中包含用户信息;
令牌生成单元,用于根据所述用户信息对所述用户进行身份认证和权限评估,并生成相应的身份令牌和权限令牌,所述身份令牌和所述权限令牌为JWT令牌;
发送单元,用于将所述身份令牌和所述权限令牌发送至所述安全网关,由所述安全网关发送至所述终端代理,以使所述终端代理再次发送业务请求时携带所述身份令牌和权限令牌,使得所述业务请求流经的每一节点根据所述身份令牌对所述用户进行身份认证以及根据所述权限令牌对所述用户进行鉴权。
7.如权利要求6所述的装置,其特征在于,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌中的载荷中至少包括权限令牌标识、所述身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值。
8.如权利要求7所述的装置,其特征在于,还包括:
确定单元,用于在对所述用户进行权限评估之前,确定所述业务请求流经的每一节点;
所述令牌生成单元,具体用于根据所述用户信息和存储的所述每一节点的权限信息,确定所述用户针对每一节点的权限评估结果。
9.一种动态鉴权装置,其特征在于,包括:
接收单元,用于任一节点接收业务请求,所述业务请求中携带有用户信息;
认证与鉴权单元,当确定所述业务请求中包含身份令牌和权限令牌时,根据所述身份令牌对所述用户进行身份认证,并根据所述权限令牌对所述用户进行鉴权,所述身份令牌和所述权限令牌为JWT令牌。
10.如权利要求9所述的装置,其特征在于,所述身份令牌的载荷中至少包括身份令牌标识、身份令牌的签发时间和身份令牌的过期时间,所述权限令牌的载荷中至少包括权限令牌标识、身份令牌标识、权限令牌签发时间、权限令牌的过期时间和权限评估结果;所述权限评估结果是认证鉴权中心预先对所述用户进行权限评估后获得的,所述身份令牌的过期时间和所述身份令牌的签发时间的差值大于所述权限令牌的过期时间和所述权限令牌的签发时间的差值;
所述认证与鉴权单元,具体用于所述节点通过所述权限令牌的头部中声明的签名算法对所述权限令牌的头部和载荷利用预设密钥进行签名,获得所述权限令牌的第一签名;将所述第一签名和所述权限令牌的签名进行比对,获得比对结果;当确定所述比对结果为一致、且当前时间未超过所述权限令牌的过期时间、且所述权限令牌的载荷中的身份令牌标识与所述身份令牌的载荷中的身份令牌标识相同时,从所述权限令牌的载荷的权限评估结果中获取所述用户针对所述节点的权限评估结果;根据所述节点的权限评估结果对所述用户进行权限控制。
11.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1~5任一项所述的动态鉴权方法。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~5任一项所述的动态鉴权方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011304485.5A CN112532599B (zh) | 2020-11-19 | 2020-11-19 | 一种动态鉴权方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011304485.5A CN112532599B (zh) | 2020-11-19 | 2020-11-19 | 一种动态鉴权方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112532599A true CN112532599A (zh) | 2021-03-19 |
CN112532599B CN112532599B (zh) | 2023-04-18 |
Family
ID=74981326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011304485.5A Active CN112532599B (zh) | 2020-11-19 | 2020-11-19 | 一种动态鉴权方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112532599B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572738A (zh) * | 2021-06-29 | 2021-10-29 | 中孚安全技术有限公司 | 一种零信任网络架构及构建方法 |
CN113992402A (zh) * | 2021-10-27 | 2022-01-28 | 北京房江湖科技有限公司 | 一种基于零信任策略的访问控制方法、系统及介质 |
CN114500107A (zh) * | 2022-04-02 | 2022-05-13 | 公安部信息通信中心 | 一种跨平台的服务协同与鉴权系统 |
CN114745431A (zh) * | 2022-03-18 | 2022-07-12 | 上海道客网络科技有限公司 | 基于边车技术的无侵入式权限认证方法、系统、介质和设备 |
CN116192497A (zh) * | 2023-02-20 | 2023-05-30 | 大连理工大学 | 一种基于零信任体系的网络准入和用户认证的安全交互方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404392A (zh) * | 2011-11-10 | 2012-04-04 | 山东浪潮齐鲁软件产业股份有限公司 | 一种Web应用或网站集成登录的方法 |
US20140282918A1 (en) * | 2013-03-15 | 2014-09-18 | Cox Communications, Inc. | Federated services |
CN106161364A (zh) * | 2015-04-06 | 2016-11-23 | 上海比赞信息科技有限公司 | 一种基于移动终端的个人认证凭证管理方法及系统 |
CN106713367A (zh) * | 2017-03-02 | 2017-05-24 | 山东浪潮云服务信息科技有限公司 | 一种认证方法、认证平台、业务系统以及认证系统 |
US20170346810A1 (en) * | 2016-05-25 | 2017-11-30 | Canon Information And Imaging Solutions, Inc. | Devices, systems, and methods for zero-trust single sign-on |
CN109906453A (zh) * | 2016-10-19 | 2019-06-18 | 微软技术许可有限责任公司 | 建立用于有状态云服务的安全会话 |
CN110535851A (zh) * | 2019-08-27 | 2019-12-03 | 浪潮云信息技术有限公司 | 一种基于oauth2协议的用户认证系统 |
CN111030828A (zh) * | 2019-12-19 | 2020-04-17 | 中国电建集团华东勘测设计研究院有限公司 | 微服务架构下的权限控制方法、系统和访问令牌 |
CN111431838A (zh) * | 2019-01-09 | 2020-07-17 | 北京神州泰岳软件股份有限公司 | 一种集群中单点登录和注销的方法、装置及api网关 |
CN111447073A (zh) * | 2020-03-31 | 2020-07-24 | 河北大学 | 基于区块链与零知识证明的身份管理与认证系统及方法 |
CN111541656A (zh) * | 2020-04-09 | 2020-08-14 | 中央电视台 | 基于融合媒体云平台的身份认证方法及系统 |
CN111614458A (zh) * | 2020-05-27 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 网关jwt的生成方法、系统及存储介质 |
CN111914229A (zh) * | 2020-07-15 | 2020-11-10 | 中国民航信息网络股份有限公司 | 一种身份验证方法、装置、电子设备及存储介质 |
-
2020
- 2020-11-19 CN CN202011304485.5A patent/CN112532599B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102404392A (zh) * | 2011-11-10 | 2012-04-04 | 山东浪潮齐鲁软件产业股份有限公司 | 一种Web应用或网站集成登录的方法 |
US20140282918A1 (en) * | 2013-03-15 | 2014-09-18 | Cox Communications, Inc. | Federated services |
CN106161364A (zh) * | 2015-04-06 | 2016-11-23 | 上海比赞信息科技有限公司 | 一种基于移动终端的个人认证凭证管理方法及系统 |
US20170346810A1 (en) * | 2016-05-25 | 2017-11-30 | Canon Information And Imaging Solutions, Inc. | Devices, systems, and methods for zero-trust single sign-on |
CN109906453A (zh) * | 2016-10-19 | 2019-06-18 | 微软技术许可有限责任公司 | 建立用于有状态云服务的安全会话 |
CN106713367A (zh) * | 2017-03-02 | 2017-05-24 | 山东浪潮云服务信息科技有限公司 | 一种认证方法、认证平台、业务系统以及认证系统 |
CN111431838A (zh) * | 2019-01-09 | 2020-07-17 | 北京神州泰岳软件股份有限公司 | 一种集群中单点登录和注销的方法、装置及api网关 |
CN110535851A (zh) * | 2019-08-27 | 2019-12-03 | 浪潮云信息技术有限公司 | 一种基于oauth2协议的用户认证系统 |
CN111030828A (zh) * | 2019-12-19 | 2020-04-17 | 中国电建集团华东勘测设计研究院有限公司 | 微服务架构下的权限控制方法、系统和访问令牌 |
CN111447073A (zh) * | 2020-03-31 | 2020-07-24 | 河北大学 | 基于区块链与零知识证明的身份管理与认证系统及方法 |
CN111541656A (zh) * | 2020-04-09 | 2020-08-14 | 中央电视台 | 基于融合媒体云平台的身份认证方法及系统 |
CN111614458A (zh) * | 2020-05-27 | 2020-09-01 | 深圳壹账通智能科技有限公司 | 网关jwt的生成方法、系统及存储介质 |
CN111914229A (zh) * | 2020-07-15 | 2020-11-10 | 中国民航信息网络股份有限公司 | 一种身份验证方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
陈明峰: "《基于CORBA的安全代理研究及实现》" * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113572738A (zh) * | 2021-06-29 | 2021-10-29 | 中孚安全技术有限公司 | 一种零信任网络架构及构建方法 |
CN113992402A (zh) * | 2021-10-27 | 2022-01-28 | 北京房江湖科技有限公司 | 一种基于零信任策略的访问控制方法、系统及介质 |
CN113992402B (zh) * | 2021-10-27 | 2023-11-21 | 贝壳找房(北京)科技有限公司 | 一种基于零信任策略的访问控制方法、系统及介质 |
CN114745431A (zh) * | 2022-03-18 | 2022-07-12 | 上海道客网络科技有限公司 | 基于边车技术的无侵入式权限认证方法、系统、介质和设备 |
CN114745431B (zh) * | 2022-03-18 | 2023-09-29 | 上海道客网络科技有限公司 | 基于边车技术的无侵入式权限认证方法、系统、介质和设备 |
CN114500107A (zh) * | 2022-04-02 | 2022-05-13 | 公安部信息通信中心 | 一种跨平台的服务协同与鉴权系统 |
CN114500107B (zh) * | 2022-04-02 | 2022-06-17 | 公安部信息通信中心 | 一种跨平台的服务协同与鉴权系统 |
CN116192497A (zh) * | 2023-02-20 | 2023-05-30 | 大连理工大学 | 一种基于零信任体系的网络准入和用户认证的安全交互方法 |
CN116192497B (zh) * | 2023-02-20 | 2023-08-04 | 大连理工大学 | 一种基于零信任体系的网络准入和用户认证的安全交互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112532599B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757641B2 (en) | Decentralized data authentication | |
CN112532599B (zh) | 一种动态鉴权方法、装置、电子设备和存储介质 | |
KR101560440B1 (ko) | 안전한 동적 권한 위임을 위한 방법 및 장치 | |
JP4746266B2 (ja) | ネットワーク・ロケーション中のサブ・ロケーションについてのユーザの認証の方法およびシステム | |
US11841959B1 (en) | Systems and methods for requiring cryptographic data protection as a precondition of system access | |
AU2017225928A1 (en) | Systems and methods for distributed data sharing with asynchronous third-party attestation | |
CN103179134A (zh) | 基于Cookie的单点登录方法、系统及其应用服务器 | |
KR20060100920A (ko) | 웹 서비스를 위한 신뢰되는 제3자 인증 | |
CN112202705A (zh) | 一种数字验签生成和校验方法、系统 | |
JP5602165B2 (ja) | ネットワーク通信を保護する方法および装置 | |
CN111901346A (zh) | 一种身份认证系统 | |
CN114008968A (zh) | 用于计算环境中的许可授权的系统、方法和存储介质 | |
US20170104748A1 (en) | System and method for managing network access with a certificate having soft expiration | |
Pereira et al. | Formal analysis of the FIDO 1. x protocol | |
Liu et al. | A secure cookie scheme | |
Bichsel et al. | An architecture for privacy-ABCs | |
KR20090054774A (ko) | 분산 네트워크 환경에서의 통합 보안 관리 방법 | |
Hirsch et al. | Security and Privacy Considerations for the OASIS Security Assertion Markup Language (SAML) V2. 0 | |
Hirai et al. | Linking contexts from distinct data sources in zero trust federation | |
Arora et al. | Implementation of authentication and transaction security based on Kerberos | |
JP4219076B2 (ja) | 電子文書管理方法、電子文書管理システム及び記録媒体 | |
Mashima et al. | User-centric identity management architecture using credential-holding identity agents | |
Goel | Access Control and Authorization Techniques wrt Client Applications | |
Hosseyni et al. | Formal security analysis of the OpenID FAPI 2.0 Security Profile with FAPI 2.0 Message Signing, FAPI-CIBA, Dynamic Client Registration and Management: technical report | |
Malgaonkar et al. | Implementation of optimized Nymble system to enhance network security |
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 |