CN107733653B - 用户权限鉴定方法及系统和计算机设备 - Google Patents
用户权限鉴定方法及系统和计算机设备 Download PDFInfo
- Publication number
- CN107733653B CN107733653B CN201710931381.9A CN201710931381A CN107733653B CN 107733653 B CN107733653 B CN 107733653B CN 201710931381 A CN201710931381 A CN 201710931381A CN 107733653 B CN107733653 B CN 107733653B
- Authority
- CN
- China
- Prior art keywords
- token
- information
- user
- browser
- cookie
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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 involving a third party or a trusted authority
- H04L9/3213—Cryptographic 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 involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种用户权限鉴定方法及系统和计算机设备。其中,一种用户权限鉴定方法,包括:获取用户信息及用户权限资源信息,并存储到令牌信息中;对令牌信息进行加密,生成令牌;将令牌和令牌信息写入到浏览器的Cookie中;接收浏览器发送的请求;读取浏览器的Cookie中的当前令牌和当前令牌信息;根据当前令牌对浏览器的Cookie进行可信性验证。本发明提供用户权限鉴定方法,使得权限信息适合通过Cookie进行网络传递,从而彻底实现无状态化解决了存储在浏览器端的Cookie中可信问题,避免了相关技术中采用超大规模集群下会话复制带来的性能问题和集中式会话管理形成单点问题。
Description
技术领域
本发明涉及大数据技术领域,具体而言,涉及一种用户权限鉴定方法,一种用户权限鉴定系统,一种计算机设备,一种计算机可读存储介质。
背景技术
在web应用中一般使用http协议进行通信,由于http的无状态的特征,在鉴权的时候依赖会话(Session)机制:即将用户的登录状态和权限信息存储在会话中。
为了实现对应对大规模访问,必须实现应用的集群部署。要实现集群部署主要需要实现多台应用服务器之间会话统一。Tomcat、WEBLogic、WebSphere等多数主流web服务器都采用了session复制机制,session在服务器之间通过广播进行复制,适用于机器数量较少,网络流量较小的场景下,但在分布式环境下,随着节点数量的增加,其性能问题就暴露出来了,具体来说有以下几点:
在节点持续增多的情况下,session复制带来的性能损失会快速增加,特别是当session中保存了较大的对象,而且对象变化较快时,性能下降更加显著。这种特性使得web应用的水平扩展受到了限制。此外广播式复制到其余机器存在一定的廷时,会带来一定的网络开销。
另一种方案就是把会话集中起来管理。当用户访问不同节点时直接从数据库或者分布式缓存中获取会话信息,采用数据库或者分布式缓存来集中存储会话,加大数据库或者分布式缓存系统的负担,又形成新的单点。
相关技术的解决方案中将用户权限存储在服务器端的会话中,主要原因有两点:
1、信息存储在浏览器端的Cookie中不可信,易被篡改;
2、权限信息太大,在企业级系统中单个用户会有几百甚至上千种权限的资源权限,而Cookie的大小有限,并且大量的Cookie会影响传输速度。
因此,如何提出一种无状态、不利用会话来鉴定登录用户权限的方法及装置,成为目前亟待解决的技术问题。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的一方面在于提出了一种用户权限鉴定方法。
本发明的另一方面在于提出了一种用户权限鉴定系统。
本发明的再一方面在于提出了一种计算机设备。
本发明的又一方面在于提出了一种计算机可读存储介质。
有鉴于此,本发明的一方面,提出了一种用户权限鉴定方法,包括:获取用户信息及用户权限资源信息,并存储到令牌信息中;对令牌信息进行加密,生成令牌;将令牌和令牌信息写入到浏览器的Cookie中;接收浏览器发送的请求;读取浏览器的Cookie中的当前令牌和当前令牌信息;根据当前令牌对浏览器的Cookie进行可信性验证。
根据本发明的用户权限鉴定方法,在登录过程中,获取用户信息及用户权限资源信息,并存储到令牌信息中,通过对令牌信息进行加密,生成令牌,将令牌和令牌信息写入到浏览器的Cookie中,实现令牌的生成与分发,使得用户权限资源信息通过Cookie进行网络传递,每次浏览器发起请求,会将Cookie信息带到服务器端,通过读取Cookie中的当前令牌和当前令牌信息,并对当前令牌进行验证,解决了存储在浏览器端的Cookie中可信问题,同时,避免了相关技术中采用超大规模集群下会话复制带来的性能问题和集中式会话管理形成单点问题。
另外,根据本发明上述的用户权限鉴定方法,还可以具有如下附加的技术特征:
在上述技术方案中,优选地,获取用户信息及用户权限资源信息,并存储到令牌信息中的步骤,具体包括:将用户权限资源信息存储到布隆过滤器中;采用RLE算法对布隆过滤器进行压缩,并存储到令牌信息中。
在该技术方案中,布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合,BloomFilter存储1w种权限时仅需要5k的空间。RLE(Run Length Encoding)算法,是一个针对无损压缩的非常简单的算法,它用重复字节和重复的次数来简单描述来代替重复的字节,运算速度快。本发明的技术方案,通过布隆过滤器和RLE压缩算法,极大的压缩权限资源,使得权限信息适合通过浏览器的Cookie进行网络传递,从而彻底实现无状态化。
在上述任一技术方案中,优选地,还包括:在浏览器的Cookie可信的情况下,对当前令牌信息中的权限资源信息进行解压缩,得到权限资源信息集合;从浏览器发送的请求中获取对应的权限资源;判断权限资源是否在权限资源信息集合中;当判断结果为是时,则放行请求;当判断结果为否时,则返回第一错误页面。
在该技术方案中,在浏览器的Cookie可信的情况下,通过将当前令牌中的权限资源解压缩,得到权限资源信息集合,从请求信息中获取到对应的权限资源,鉴定该权限资源是否在用户权限资源信息集合中,如果该权限资源属于权限资源信息集合,则放行,如果不属于,则返回第一错误页面。通过本发明的技术方案,在Cookie可信的情况下,进一步对请求信息中的权限资源进行鉴定,避免了没有权限的资源被放行,提升系统安全性。
在上述任一技术方案中,优选地,根据当前令牌对浏览器的Cookie进行可信性验证的步骤,具体包括:判断当前令牌与令牌是否一致;若判断结果为不一致,则返回第二错误页面;若判断结果一致,则判定浏览器的Cookie可信。
在该技术方案中,通过判断当前令牌与令牌是否一致,来验证Cookie的可信性,若当前令牌与令牌一致,则证明Cookie中传递的令牌是可信的,若当前令牌与令牌不一致,则证明Cookie中传递的令牌是伪造的,返回第二错误页面。
在上述任一技术方案中,优选地,用户信息至少包括用户ID,以及以下任一项或其组合:登录系统时的时间戳,应用ID,租户code。
在该技术方案中,用户信息至少包括用户ID,同时还可以包括以下任一项或其组合:登录系统时的时间戳,应用ID,租户code,但不限于此。
在上述任一技术方案中,优选地,对令牌信息进行加密,生成令牌,具体为:采用HMAC算法对令牌信息进行加密。
在该技术方案中,HMAC算法是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥,通过HMAC算法对客户端存储的信息进行加密,解决了存储在浏览器端的Cookie中可信问题。
本发明的另一方面,提出了一种用户权限鉴定系统,包括:第一获取单元,用于获取用户信息及用户权限资源信息,并存储到令牌信息中;令牌处理单元,用于对令牌信息进行加密,生成令牌;令牌处理单元,还用于将令牌和令牌信息写入到浏览器的Cookie中;接收单元,用于接收浏览器发送的请求;读取单元,用于读取浏览器的Cookie中的当前令牌和当前令牌信息;可信性验证单元,用于根据当前令牌对浏览器的Cookie进行可信性验证。
根据本发明的用户权限鉴定系统,在登录过程中,获取用户信息及用户权限资源信息,并存储到令牌信息中,通过对令牌信息进行加密,生成令牌,将令牌和令牌信息写入到浏览器的Cookie中,实现令牌的生成与分发,使得用户权限资源信息通过Cookie进行网络传递,每次浏览器发起请求,会将Cookie信息带到服务器端,通过读取Cookie中的当前令牌和当前令牌信息,并对当前令牌进行验证,解决了存储在浏览器端的Cookie中可信问题,同时,避免了相关技术中采用超大规模集群下会话复制带来的性能问题和集中式会话管理形成单点问题。
在上述技术方案中,优选地,第一获取单元,具体包括:将用户权限资源信息存储到布隆过滤器中;采用RLE算法对布隆过滤器进行压缩,并存储到令牌信息中。
在该技术方案中,布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合,BloomFilter存储1w种权限时仅需要5k的空间。RLE(Run Length Encoding)算法,是一个针对无损压缩的非常简单的算法,它用重复字节和重复的次数来简单描述来代替重复的字节,运算速度快。本发明的技术方案,通过布隆过滤器和RLE压缩算法,极大的压缩权限资源,使得权限信息适合通过浏览器的Cookie进行网络传递,从而彻底实现无状态化。
在上述任一技术方案中,优选地,还包括:鉴权单元,用于在浏览器的Cookie可信的情况下,对当前令牌信息中的权限资源信息进行解压缩,得到权限资源信息集合;从浏览器发送的请求中获取对应的权限资源;判断权限资源是否在权限资源信息集合中;当判断结果为是时,则放行请求;当判断结果为否时,则返回第一错误页面。
在该技术方案中,在浏览器的Cookie可信的情况下,通过将当前令牌中的权限资源解压缩,得到权限资源信息集合,从请求信息中获取到对应的权限资源,鉴定该权限资源是否在用户权限资源信息集合中,如果该权限资源属于权限资源信息集合,则放行,如果不属于,则返回第一错误页面。通过本发明的技术方案,在Cookie可信的情况下,进一步对请求信息中的权限资源进行鉴定,避免了没有权限的资源被放行,提升系统安全性。
在上述任一技术方案中,优选地,可信性验证单元,具体用于:判断当前令牌与令牌是否一致;若判断结果为不一致,则返回第二错误页面;若判断结果一致,则判定浏览器的Cookie可信。
在该技术方案中,通过判断当前令牌与令牌是否一致,来验证Cookie的可信性,若当前令牌与令牌一致,则证明Cookie中传递的令牌是可信的,若当前令牌与令牌不一致,则证明Cookie中传递的令牌是伪造的,返回第二错误页面。
在上述任一技术方案中,优选地,用户信息至少包括用户ID,以及以下任一项或其组合:登录系统时的时间戳,应用ID,租户code。
在该技术方案中,用户信息至少包括用户ID,同时还可以包括以下任一项或其组合:登录系统时的时间戳,应用ID,租户code,但不限于此。
在上述任一技术方案中,优选地,对令牌信息进行加密,生成令牌,具体为:采用HMAC算法对令牌信息进行加密。
在该技术方案中,HMAC算法是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥,通过HMAC算法对客户端存储的信息进行加密,解决了存储在浏览器端的Cookie中可信问题。
本发明的再一方面,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器用于执行如上述技术方案中任一项方法的步骤。
根据本发明的计算机设备,其所包含的处理器用于执行如上述任一技术方案中用户权限鉴定方法的步骤,因而该计算机设备能够实现该用户权限鉴定方法的全部有益效果,在此不再赘述。
本发明的又一方面,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现了如上述技术方案中任一项方法的步骤。
根据本发明的计算机可读存储介质,其上存储的计算机程序被处理器执行时实现了如上述任一技术方案中用户权限鉴定方法的步骤,因而该计算机可读存储介质能够实现该用户权限鉴定方法的全部有益效果,在此不再赘述。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了根据本发明的一个实施例的用户权限鉴定方法的流程示意图;
图2示出了根据本发明的另一个实施例的用户权限鉴定方法的流程示意图;
图3示出了根据本发明的再一个实施例的用户权限鉴定方法的流程示意图;
图4示出了根据本发明的又一个实施例的用户权限鉴定方法的流程示意图;
图5示出了根据本发明的一个实施例的用户权限鉴定系统的示意框图;
图6示出了根据本发明的另一个实施例的用户权限鉴定系统的示意框图;
图7示出了根据本发明的一个具体实施例的用户权限鉴定方法的流程示意图;
图8示出了根据本发明的另一个具体实施例的用户权限鉴定方法的流程示意图;
图9示出了根据本发明的一个实施例的计算机设备的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
如图1所示,根据本发明的一个实施例的用户权限鉴定方法的流程示意图。其中,该用户权限鉴定方法,包括:
步骤102,获取用户信息及用户权限资源信息,并存储到令牌信息中;
步骤104,对令牌信息进行加密,生成令牌;
步骤106,将令牌和令牌信息写入到浏览器的Cookie中;
步骤108,接收浏览器发送的请求;
步骤110,读取浏览器的Cookie中的当前令牌和当前令牌信息;
步骤112,根据当前令牌对浏览器的Cookie进行可信性验证。
本发明提供户权限鉴定方法,在登录过程中,获取用户信息及用户权限资源信息,并存储到令牌信息中,通过对令牌信息进行加密,生成令牌,将令牌和令牌信息写入到浏览器的Cookie中,实现令牌的生成与分发,使得用户权限资源信息通过Cookie进行网络传递,每次浏览器发起请求,会将Cookie信息带到服务器端,通过读取Cookie中的当前令牌和当前令牌信息,并对当前令牌进行验证,解决了存储在浏览器端的Cookie中可信问题,同时,避免了相关技术中采用超大规模集群下会话复制带来的性能问题和集中式会话管理形成单点问题。
如图2所示,根据本发明的另一个实施例的用户权限鉴定方法的流程示意图。其中,该用户权限鉴定方法,包括:
步骤202,获取用户信息,并存储到令牌信息中;以及获取用户权限资源信息,将用户权限资源信息存储到布隆过滤器中,采用RLE算法对布隆过滤器进行压缩,并存储到令牌信息中;
步骤204,对令牌信息进行加密,生成令牌;
步骤206,将令牌和令牌信息写入到浏览器的Cookie中;
步骤208,接收浏览器发送的请求;
步骤210,读取浏览器的Cookie中的当前令牌和当前令牌信息;
步骤212,根据当前令牌对浏览器的Cookie进行可信性验证。
在该实施例中,布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合,BloomFilter存储1w种权限时仅需要5k的空间。RLE(Run Length Encoding)算法,是一个针对无损压缩的非常简单的算法,它用重复字节和重复的次数来简单描述来代替重复的字节,运算速度快。本发明的实施例,通过布隆过滤器和RLE压缩算法,极大的压缩权限资源,使得权限信息适合通过浏览器的Cookie进行网络传递,从而彻底实现无状态化。
如图3所示,根据本发明的再一个实施例的用户权限鉴定方法的流程示意图。其中,该用户权限鉴定方法,包括:
步骤302,获取用户信息,并存储到令牌信息中;以及获取用户权限资源信息,将用户权限资源信息存储到布隆过滤器中,采用RLE算法对布隆过滤器进行压缩,并存储到令牌信息中;
步骤304,对令牌信息进行加密,生成令牌;
步骤306,将令牌和令牌信息写入到浏览器的Cookie中;
步骤308,接收浏览器发送的请求;
步骤310,读取浏览器的Cookie中的当前令牌和当前令牌信息;
步骤312,根据当前令牌对浏览器的Cookie进行可信性验证;
步骤314,在浏览器的Cookie可信的情况下,对当前令牌信息中的权限资源信息进行解压缩,得到权限资源信息集合;
步骤316,从浏览器发送的请求中获取对应的权限资源,判断权限资源是否在权限资源信息集合中;
步骤318,当判断结果为是时,则放行请求;
步骤320,当判断结果为否时,则返回第一错误页面。
在该实施例中,在浏览器的Cookie可信的情况下,通过将当前令牌中的权限资源解压缩,得到权限资源信息集合,从请求信息中获取到对应的权限资源,鉴定该权限资源是否在用户权限资源信息集合中,如果该权限资源属于权限资源信息集合,则放行,如果不属于,则返回第一错误页面。通过本发明的实施例,在Cookie可信的情况下,进一步对请求信息中的权限资源进行鉴定,避免了没有权限的资源被放行,提升系统安全性。
如图4所示,根据本发明的又一个实施例的用户权限鉴定方法的流程示意图。其中,该用户权限鉴定方法,包括:
步骤402,获取用户信息,并存储到令牌信息中;以及获取用户权限资源信息,将用户权限资源信息存储到布隆过滤器中,采用RLE算法对布隆过滤器进行压缩,并存储到令牌信息中;
步骤404,对令牌信息进行加密,生成令牌;
步骤406,将令牌和令牌信息写入到浏览器的Cookie中;
步骤408,接收浏览器发送的请求;
步骤410,读取浏览器的Cookie中的当前令牌和当前令牌信息;
步骤412,判断当前令牌与令牌是否一致;
步骤414,若判断结果为不一致,则返回第二错误页面;
步骤416,若判断结果一致,则判定浏览器的Cookie可信;
步骤418,对当前令牌信息中的权限资源信息进行解压缩,得到权限资源信息集合;
步骤420,从浏览器发送的请求中获取对应的权限资源,判断权限资源是否在权限资源信息集合中;
步骤422,当判断结果为是时,则放行请求;
步骤424,当判断结果为否时,则返回第一错误页面。
在该实施例中,通过判断当前令牌与令牌是否一致,来验证Cookie的可信性,若当前令牌与令牌一致,则证明Cookie中传递的令牌是可信的,若当前令牌与令牌不一致,则证明Cookie中传递的令牌是伪造的,返回第二错误页面。
在上述任一实施例中,优选地,用户信息至少包括用户ID,以及以下任一项或其组合:登录系统时的时间戳,应用ID,租户code。
在该实施例中,用户信息至少包括用户ID,同时还可以包括以下任一项或其组合:登录系统时的时间戳,应用ID,租户code,但不限于此。
在上述任一实施例中,优选地,对令牌信息进行加密,生成令牌,具体为:采用HMAC算法对令牌信息进行加密。
在该实施例中,HMAC算法是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥,通过HMAC算法对客户端存储的信息进行加密,解决了存储在浏览器端的Cookie中可信问题。
如图5所示,根据本发明的一个实施例的用户权限鉴定系统的示意框图。其中,该用户权限鉴定系统500,包括:
第一获取单元502,用于获取用户信息及用户权限资源信息,并存储到令牌信息中;
令牌处理单元504,用于对令牌信息进行加密,生成令牌;
令牌处理单元504,还用于将令牌和令牌信息写入到浏览器的Cookie中;
接收单元506,用于接收浏览器发送的请求;
读取单元508,用于读取浏览器的Cookie中的当前令牌和当前令牌信息;
可信性验证单元510,用于根据当前令牌对浏览器的Cookie进行可信性验证。
本发明提供的用户权限鉴定系统,在登录过程中,获取用户信息及用户权限资源信息,并存储到令牌信息中,通过对令牌信息进行加密,生成令牌,将令牌和令牌信息写入到浏览器的Cookie中,实现令牌的生成与分发,使得用户权限资源信息通过Cookie进行网络传递,每次浏览器发起请求,会将Cookie信息带到服务器端,通过读取Cookie中的当前令牌和当前令牌信息,并对当前令牌进行验证,解决了存储在浏览器端的Cookie中可信问题,同时,避免了相关技术中采用超大规模集群下会话复制带来的性能问题和集中式会话管理形成单点问题。
在上述实施例中,优选地,第一获取单元502,具体包括:将用户权限资源信息存储到布隆过滤器中;采用RLE算法对布隆过滤器进行压缩,并存储到令牌信息中。
在该实施例中,布隆过滤器(Bloom Filter)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合,BloomFilter存储1w种权限时仅需要5k的空间。RLE(Run Length Encoding)算法,是一个针对无损压缩的非常简单的算法,它用重复字节和重复的次数来简单描述来代替重复的字节,运算速度快。本发明的实施例,通过布隆过滤器和RLE压缩算法,极大的压缩权限资源,使得权限信息适合通过浏览器的Cookie进行网络传递,从而彻底实现无状态化。
如图6所示,根据本发明的另一个实施例的用户权限鉴定系统的示意框图。其中,该用户权限鉴定系统600,包括:
第一获取单元602,用于获取用户信息,并存储到令牌信息中;以及获取用户权限资源信息,将用户权限资源信息存储到布隆过滤器中,采用RLE算法对布隆过滤器进行压缩,并存储到令牌信息中;
令牌处理单元604,用于对令牌信息进行加密,生成令牌;
令牌处理单元604,还用于将令牌和令牌信息写入到浏览器的Cookie中;
接收单元606,用于接收浏览器发送的请求;
读取单元608,用于读取浏览器的Cookie中的当前令牌和当前令牌信息;
可信性验证单元610,用于根据当前令牌对浏览器的Cookie进行可信性验证;
鉴权单元612,用于在浏览器的Cookie可信的情况下,对当前令牌信息中的权限资源信息进行解压缩,得到权限资源信息集合;从浏览器发送的请求中获取对应的权限资源;判断权限资源是否在权限资源信息集合中;当判断结果为是时,则放行请求;当判断结果为否时,则返回第一错误页面。
在该实施例中,在浏览器的Cookie可信的情况下,通过将当前令牌中的权限资源解压缩,得到权限资源信息集合,从请求信息中获取到对应的权限资源,鉴定该权限资源是否在用户权限资源信息集合中,如果该权限资源属于权限资源信息集合,则放行,如果不属于,则返回第一错误页面。通过本发明的实施例,在Cookie可信的情况下,进一步对请求信息中的权限资源进行鉴定,避免了没有权限的资源被放行,提升系统安全性。
在上述实施例中,优选地,可信性验证单元610,具体用于:判断当前令牌与令牌是否一致;若判断结果为不一致,则返回第二错误页面;若判断结果一致,则判定浏览器的Cookie可信。
在该实施例中,通过判断当前令牌与令牌是否一致,来验证Cookie的可信性,若当前令牌与令牌一致,则证明Cookie中传递的令牌是可信的,若当前令牌与令牌不一致,则证明Cookie中传递的令牌是伪造的,返回第二错误页面。
在上述任一实施例中,优选地,用户信息至少包括用户ID,以及以下任一项或其组合:登录系统时的时间戳,应用ID,租户code。
在该实施例中,用户信息至少包括用户ID,同时还可以包括以下任一项或其组合:登录系统时的时间戳,应用ID,租户code,但不限于此。
在上述任一实施例中,优选地,对令牌信息进行加密,生成令牌,具体为:采用HMAC算法对令牌信息进行加密。
在该实施例中,HMAC算法是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥,通过HMAC算法对客户端存储的信息进行加密,解决了存储在浏览器端的Cookie中可信问题。
具体实施例:
提出一种无状态&不利用会话来鉴定登录用户权限的装置。包括:布隆过滤器(Bloom Filter):Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合,Bloom Filter存储1w种权限时仅需要5k的空间;
秘钥,存储在应用服务器端,信息通过HMAC算法转换为密文过程中输入的参数;
权限管理器,实现令牌的创建、分发和鉴定,组成部分包括:
令牌(Token)在计算机身份认证中是令牌(临时)的意思,代表执行某些操作的权利的对象;
令牌信息(TokenParameter)用于标识Token中所包含的信息,比如用户ID,登录系统时的时间戳,应用ID,租户code等;
令牌处理器(TokenProcessor),TokenProcessor主要实现了如下几个功能:generateToken(TokenParameter tokenParam)生成Token;
getCookieFromTokenParameter(TokenParameter tp),根据令牌信息(TokenParameter)写入到浏览器的Cookie;
getTokenParameterFromCookie(Cookie[]cookies),从Cookie中还原令牌信息。
在该实施例中,通过哈希算法和Bloom Filter数据结构结合的方式存储用户认证信息,在登录过程中,处理过程如图7所示:
步骤702,获取用户的userId,存储到令牌信息TokenParameter中;
步骤704,获取到用户所有有权限的资源,将权限资源信息存储到Bloom Filter中;
过程如下:Bloom Filter是一个包含m位的位数组,每一位都置为0;
为了表达s={x1,x2,...,xn}这样一个n个权限资源的集合,Bloom Filter使用k个相互独立的哈希函数(Hash Function),它们分别将集合中的每个元素映射到{1,2,...,m}的范围中;对任意一个元素x,第i个哈希函数映射的位置hi(x)就会被置为1(1≤i≤k);
步骤706,通过RLE算法对Bloom Filter进行压缩并将压缩结果存储到TokenParameter装置中;
具体为:通过RLE算法对Bloom Filter进行压缩后形成字符串;
步骤708,TokenProcessor装置通过HMAC算法和秘钥将TokenParameter生成Token;
步骤710,TokenProcessor装置将Token和TokenParameter写入到浏览器的Cookie中。
在该实施例中,通过哈希算法和Bloom Filter数据结构结合的方式验证用户认证信息,每次浏览器发起请求,会将Cookie信息带到服务端,在请求到达业务逻辑之前,会被拦截器AuthFiler进行拦截,以验证Cookie的可信性。具体处理过程如图8所示:
步骤802,服务端读取Cookie信息;
步骤804,AuthFilter从Cookie取出当前令牌和当前令牌信息,并通过TokenProcessor装置处理,得到当前令牌TOKEN’;
步骤806,判断TOKEN’是否等于Token;
步骤808,若TOKEN’!=Token,则TokenParameter是伪造的,返回错误页面;
步骤810,若TOKEN’=Token,则证明浏览器中传递的当前令牌信息是可信的,则将当前令牌信息中的权限信息通过RLE解压缩,形成Bloom Filter结构;
步骤812,从请求信息获取到对应的权限资源y;
步骤814,鉴定此资源是否在用户有权限的资源集合中;
过程如下:对y应用k次哈希函数,如果所有hi(y)的位置都是1(1≤i≤k),那么我们就认为y是集合中的元素,否则就认为y不是集合中的元素;
步骤816,如果y属于用户有权限的资源集合,则放行;步骤818,如果不属于,则返回错误页面。
如图9所示,根据本发明的一个实施例的计算机设备的示意图。该计算机设备1包括存储器12、处理器14及存储在存储器12上并可在处理器14上运行的计算机程序,处理器14用于执行如上述实施例中任一项方法的步骤。
本发明提供的计算机设备,其所包含的处理器14用于执行如上述任一实施例中用户权限鉴定方法的步骤,因而该计算机设备能够实现该用户权限鉴定方法的全部有益效果,在此不再赘述。
本发明的又一方面,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现了如上述实施例中任一项方法的步骤。
本发明提供的计算机可读存储介质,其上存储的计算机程序被处理器执行时实现了如上述任一实施例中用户权限鉴定方法的步骤,因而该计算机可读存储介质能够实现该用户权限鉴定方法的全部有益效果,在此不再赘述。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种用户权限鉴定方法,其特征在于,包括:
获取用户信息及用户权限资源信息,并存储到令牌信息中;
对所述令牌信息进行加密,生成令牌;
将所述令牌和所述令牌信息写入到浏览器的Cookie中;
接收所述浏览器发送的请求;
读取所述浏览器的Cookie中的当前令牌和当前令牌信息;
根据所述当前令牌对所述浏览器的Cookie进行可信性验证;
所述获取用户信息及用户权限资源信息,并存储到令牌信息中的步骤,具体包括:
将所述用户权限资源信息存储到布隆过滤器中;
采用RLE算法对所述布隆过滤器进行压缩,并存储到所述令牌信息中;
通过RLE算法对所述布隆过滤器进行压缩后形成字符串。
2.根据权利要求1所述的用户权限鉴定方法,其特征在于,还包括:
在所述浏览器的Cookie可信的情况下,对所述当前令牌信息中的所述权限资源信息进行解压缩,得到权限资源信息集合;
从所述浏览器发送的请求中获取对应的权限资源;
判断所述权限资源是否在所述权限资源信息集合中;
当判断结果为是时,则放行所述请求;
当判断结果为否时,则返回第一错误页面。
3.根据权利要求1或2所述的用户权限鉴定方法,所述根据所述当前令牌对所述浏览器的Cookie进行可信性验证的步骤,具体包括:
判断所述当前令牌与所述令牌是否一致;
若判断结果为不一致,则返回第二错误页面;
若判断结果一致,则判定所述浏览器的Cookie可信。
4.根据权利要求3所述的用户权限鉴定方法,其特征在于,
所述用户信息至少包括用户ID,以及以下任一项或其组合:登录系统时的时间戳,应用ID,租户code。
5.根据权利要求3所述的用户权限鉴定方法,其特征在于,对所述令牌信息进行加密,生成令牌,具体为:
采用HMAC算法对所述令牌信息进行加密。
6.一种用户权限鉴定系统,其特征在于,包括:
第一获取单元,用于获取用户信息及用户权限资源信息,并存储到令牌信息中;
令牌处理单元,用于对所述令牌信息进行加密,生成令牌;
所述令牌处理单元,还用于将所述令牌和所述令牌信息写入到浏览器的Cookie中;
接收单元,用于接收所述浏览器发送的请求;
读取单元,用于读取所述浏览器的Cookie中的当前令牌和当前令牌信息;
可信性验证单元,用于根据所述当前令牌对所述浏览器的Cookie进行可信性验证;
所述第一获取单元,具体包括:
将所述用户权限资源信息存储到布隆过滤器中;
采用RLE算法对所述布隆过滤器进行压缩,并存储到所述令牌信息中;
通过RLE算法对所述布隆过滤器进行压缩后形成字符串。
7.根据权利要求6所述的用户权限鉴定系统,其特征在于,还包括:
鉴权单元,用于在所述浏览器的Cookie可信的情况下,对所述当前令牌信息中的所述权限资源信息进行解压缩,得到权限资源信息集合;
从所述浏览器发送的请求中获取对应的权限资源;
判断所述权限资源是否在所述权限资源信息集合中;
当判断结果为是时,则放行所述请求;
当判断结果为否时,则返回第一错误页面。
8.根据权利要求6或7所述的用户权限鉴定系统,所述可信性验证单元,具体用于:
判断所述当前令牌与所述令牌是否一致;
若判断结果为不一致,则返回第二错误页面;
若判断结果一致,则判定所述浏览器的Cookie可信。
9.根据权利要求8所述的用户权限鉴定系统,其特征在于,
所述用户信息至少包括用户ID,以及以下任一项或其组合:登录系统时的时间戳,应用ID,租户code。
10.根据权利要求8所述的用户权限鉴定系统,其特征在于,对所述令牌信息进行加密,生成令牌,具体为:
采用HMAC算法对所述令牌信息进行加密。
11.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器用于执行如权利要求1至5中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现了如权利要求1至5中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710931381.9A CN107733653B (zh) | 2017-10-09 | 2017-10-09 | 用户权限鉴定方法及系统和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710931381.9A CN107733653B (zh) | 2017-10-09 | 2017-10-09 | 用户权限鉴定方法及系统和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107733653A CN107733653A (zh) | 2018-02-23 |
CN107733653B true CN107733653B (zh) | 2021-04-02 |
Family
ID=61209778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710931381.9A Active CN107733653B (zh) | 2017-10-09 | 2017-10-09 | 用户权限鉴定方法及系统和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107733653B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110278176B (zh) * | 2018-03-14 | 2021-09-14 | 腾讯科技(深圳)有限公司 | 登录验证方法及登录服务器 |
CN109639674A (zh) * | 2018-12-11 | 2019-04-16 | 广州猎萌网络科技有限公司 | 一种访问安全控制方法 |
CN111740770B (zh) * | 2019-03-25 | 2022-12-02 | 北京京东乾石科技有限公司 | 一种通讯方法及系统 |
CN110198301B (zh) * | 2019-03-26 | 2021-12-14 | 腾讯科技(深圳)有限公司 | 一种服务数据获取方法、装置及设备 |
CN110493202B (zh) * | 2019-07-29 | 2021-11-02 | 深圳壹账通智能科技有限公司 | 登录令牌的生成及验证方法、装置和服务器 |
TWI726383B (zh) * | 2019-08-15 | 2021-05-01 | 互動資通股份有限公司 | 簡訊啟動網頁的身分辨識方法 |
CN112560003A (zh) * | 2019-09-25 | 2021-03-26 | 北京京东尚科信息技术有限公司 | 用户权限管理方法和装置 |
CN111064731B (zh) * | 2019-12-23 | 2022-02-15 | 绿盟科技集团股份有限公司 | 一种浏览器请求的访问权限的识别方法、识别装置及终端 |
CN113139170B (zh) * | 2020-01-17 | 2024-06-25 | 华为云计算技术有限公司 | 生成鉴权凭证和鉴权的方法、装置和设备 |
CN112612770B (zh) * | 2020-12-28 | 2024-05-14 | 深圳市科创思科技有限公司 | 一种分布式文件上传方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1812403A (zh) * | 2005-01-28 | 2006-08-02 | 广东省电信有限公司科学技术研究院 | 一种跨管理域实现身份认证的单点登录方法 |
CN102377788A (zh) * | 2011-12-13 | 2012-03-14 | 方正国际软件有限公司 | 单点登录系统及其单点登录方法 |
CN103188248A (zh) * | 2011-12-31 | 2013-07-03 | 卓望数码技术(深圳)有限公司 | 基于单点登录的身份认证系统及方法 |
CN104040523A (zh) * | 2011-08-04 | 2014-09-10 | 韦斯技术有限公司 | 促成基于网络过程调用的使用的客户端-服务器通讯系统与方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7930736B2 (en) * | 2006-01-13 | 2011-04-19 | Google, Inc. | Providing selective access to a web site |
US11954671B2 (en) * | 2015-04-27 | 2024-04-09 | Paypal, Inc. | Unified login across applications |
-
2017
- 2017-10-09 CN CN201710931381.9A patent/CN107733653B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1812403A (zh) * | 2005-01-28 | 2006-08-02 | 广东省电信有限公司科学技术研究院 | 一种跨管理域实现身份认证的单点登录方法 |
CN104040523A (zh) * | 2011-08-04 | 2014-09-10 | 韦斯技术有限公司 | 促成基于网络过程调用的使用的客户端-服务器通讯系统与方法 |
CN102377788A (zh) * | 2011-12-13 | 2012-03-14 | 方正国际软件有限公司 | 单点登录系统及其单点登录方法 |
CN103188248A (zh) * | 2011-12-31 | 2013-07-03 | 卓望数码技术(深圳)有限公司 | 基于单点登录的身份认证系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107733653A (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107733653B (zh) | 用户权限鉴定方法及系统和计算机设备 | |
CN111865920B (zh) | 一种网关认证和身份鉴权的平台及其方法 | |
CN111708991B (zh) | 服务的授权方法、装置、计算机设备和存储介质 | |
CN106850699B (zh) | 一种移动终端登录认证方法及系统 | |
CN113691502B (zh) | 通信方法、装置、网关服务器、客户端及存储介质 | |
CN111131336B (zh) | 多方授权场景下的资源访问方法、装置、设备及存储介质 | |
CN106713276B (zh) | 一种基于授权认证的数据获取方法及其系统 | |
CN109379192A (zh) | 一种登录验证处理方法、系统及装置 | |
US20160226829A1 (en) | Systems and methods for secure data exchange | |
CN107306246A (zh) | 基于访问密钥的数据获取方法 | |
CN113344222A (zh) | 一种基于区块链的安全可信的联邦学习机制 | |
CN111414647A (zh) | 一种基于区块链技术防篡改的数据共享系统及方法 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
CN115883154A (zh) | 访问凭证的颁发方法、基于区块链的数据访问方法及装置 | |
CN114499894A (zh) | 区块链网络中的文件存储、读取方法及存储读取系统 | |
CN115085999A (zh) | 身份验证方法、系统、计算机设备和存储介质 | |
CN115622812A (zh) | 基于区块链智能合约的数字身份验证方法及系统 | |
CN111988262B (zh) | 认证方法、装置及服务器、存储介质 | |
CN115208656A (zh) | 一种基于区块链和权限管理的供应链数据共享方法及系统 | |
CN113505353B (zh) | 一种认证方法、装置、设备和存储介质 | |
CN112783847B (zh) | 数据共享方法及装置 | |
CN113312576A (zh) | 一种页面跳转方法、系统及装置 | |
CN118114222A (zh) | 一种数据产品的认证方法、装置、系统、设备及介质 | |
CN112994882B (zh) | 基于区块链的鉴权方法、装置、介质及设备 | |
CN117118640A (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 |