权限认证方法、权限认证系统和计算机可读存储介质
技术领域
本发明涉及微服务构架技术领域,具体而言,涉及一种权限认证方法、权限认证系统和计算机可读存储介质。
背景技术
随着技术的发展和演变,后台应用系统逐步由单体应用转变为微服务架构。在单体应用中,用户的权限控制往往是基于Session来实现;而现在主流的微服务架构中,整个应用系统按功能拆分成许多个独立的子系统,每个子系统可以单独提供服务,基于Session复制,方法陈旧,服务越多,占用带宽越大,已不适用微服务架构。如何有效的实现微服务架构下的权限认证成为亟需解决的问题。
发明内容
本发明旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明的第一方面提供了一种权限认证方法。
本发明的第二方面提供了一种权限认证方法。
本发明的第三方面提供了一种权限认证系统。
本发明的第四方面提供了一种计算机可读存储介质。
为了实现上述目的,根据本发明的第一方面的技术方案,提供了一种权限认证方法,包括:接收终端发送的登录请求,对登录请求鉴权并根据鉴权结果生成权限令牌,向终端回传权限令牌;接收终端发送带有权限令牌的业务请求,根据权限令牌对业务请求进行鉴权,确定业务请求具有执行权限。
在该技术方案中,接收到终端发送的登录请求后对登录请求进行鉴权,根据对登录请求的鉴权结果确定是否向终端回传权限令牌,如果确认登录请求符合鉴权标准,则向终端回传权限令牌,并且向终端发送用于提示鉴权成功的信息;如果确认登录请求不符合鉴权标准,则不向终端回传权限令牌,并且向终端发送用于提示鉴权失败的信息,当终端接收到权限令牌后,可以向服务器发送带有权限令牌的业务请求,服务器根据发送带有权限令牌的业务请求再对是否能够执行业务请求进行鉴权。通过对用户的登录信息鉴权通过后向终端发送权限令牌,以使终端可以将带有权限令牌的业务请求发送至服务器进行执行业务以及调用数据的权限认证方式,高效的实现了微服务架构下的权限认证,从而不需要第三方框架这种复杂的权限控制,方便后续的权限功能的调整和扩展。
可以理解的是,权限令牌采用token令牌(临时令牌),并且权限令牌中并不包含用户信息,可以将用户信息与权限令牌的对应关系存储至服务器的本地服务区,在每次接收到带有权限令牌的业务请求,在本地中进行查找并根据查找结果对业务请求进行鉴权。
在上述任一技术方案中,对登录请求鉴权并根据鉴权结果生成权限令牌的步骤,具体包括:解析登录请求以确定用户信息;确定用户信息对应的权限等级,根据权限等级生成相应的权限令牌;将权限令牌与用户信息绑定,以建立权限令牌与用户信息的对应关系,将权限令牌与用户信息的对应关系存储在本地缓存区。
在该技术方案中,对终端发送的登录请求进行解析得到登录请求中的用户信息,其中,用户信息包括但不限于帐号和密码,用户信息对应的权限等级预存在服务器中,根据解析得到的用户信息确定权限等级,对不同的权限等级和不同的用户信息生成相应的权限令牌,将权限令牌与用户信息绑定,以得到权限令牌的与用户信息的对应关系,并将权限令牌与用户信息的对应关系存储在本地缓存区,实现了回传给终端的权限令牌中不需要存储有用户信息,当服务器接收到带有权限令牌的业务请求时,根据带有的权限令牌即可在本地缓存区中查询到权限令牌相应的用户信息,进而达到了减小权限令牌大小的作用,在鉴权过程中单用带宽很小,适用于微服务架构。
在上述任一技术方案中,根据权限令牌对业务请求进行鉴权的步骤,具体包括:确定权限令牌对应的业务范围;确定业务请求与业务范围的关系,根据业务请求与业务范围的关系,确定是否执行业务请求。
在该技术方案中,不同的权限令牌可以与不同的权限等级,不同的权限等级对应的不同的可执行的业务范围,即不同的权限令牌中可以对不同的业务范围进行授权。在接收到业务请求时,对权限令牌进行鉴权并确定可以执行的业务范围,再判断接收到的业务请求是否处于业务范围内,根据业务请求与权限令牌对应的业务范围的关系可以确定是否对业务请求进行执行。通过对业务请求中的权限令牌的分析鉴权,可以对业务请求进行鉴权,实现了从业务权限维度进行权限认证,提高了权限认证的准确性。
可以理解的是,也可以将权限令牌设置为可以执行所有的业务请求,在根据权限令牌对业务请求进行鉴权判断时,可以根据业务请求中带有权限令牌则确认可以执行该业务请求。即可以结合用户意愿和实际需求对权限令牌可以执行的业务请求进行自定义,实现了灵活的配置认证方案。
在上述任一技术方案中,确定是否执行业务请求的步骤,具体包括:业务请求处于业务范围内,确定业务请求具有执行权限,向终端回传请求成功信息;业务请求处于业务范围外,忽略业务请求并向终端回传请求失败信息。
在该技术方案中,当带有权限令牌的业务请求处于权限令牌对应的业务范围内时,则确定业务请求为可以授权状态,向终端回传请求成功信息,提示用户该业务请求可以执行;当带有权限令牌的业务请求未处于权限令牌对应的业务范围内时,则确定业务请求为不可授权状态,在确定不对该业务请求执行的同时,向用户回传请求失败信息,提示用户该业务请求不可以执行。
可以理解的是,还可以随着请求失败信息向用户提示用户信息对应的权限令牌的业务范围,以免用户再次发送的业务请求还是不在对应的业务范围内。
在上述任一技术方案中,业务请求具有执行权限,权限认证方法还包括:根据业务请求绑定有标识码,确定业务请求具有数据调用权限;业务请求具有执行权限和/或数据调用权限,执行业务请求。
在该技术方案中,通过鉴权后则确认该业务请求具有执行权限,则对该业务请求是否具有标识码进行检测,如果该业务请求具有标识码,则认为该业务请求为合法业务请求,确认该业务请求具有数据调用权限,在执行该业务请求时可以调用服务器中的其他资源数据;如果该业务请求不具有标识码,则认为该业务请求为非法业务请求,确认该业务请求不具有数据调用权限,在执行该业务请求时不可以调用服务器中的其他资源数据。并根据业务请求是否具有执行权限和/或是否具有数据调用权限判断是否执行业务请求。对业务请求设置的相应的鉴权条件,实现了从数据调用维度进行权限认证,提高了权限认证的准确性。
可以理解的是,当接收到的业务请求为用户通过终端发送来的则判断该业务请求是否具有执行权限,如果该业务请求具有执行权限则对该业务请求进行执行,否则不执行该业务请求;如果该业务请求为其他服务器端发来则判断该业务请求是否具有数据调用权限,如果该业务请求具有数据调用权限则对该业务请求进行执行,否则不执行该业务请求,实现了对业务请求的合法性进行鉴别,避免服务器执行非法业务请求。在接收到的业务请求为用户通过终端发送来的时,根据该业务请求既具有执行权限又具有数据调用权限,则执行该业务请求,其不具有任一个业务请求则部执行该业务请求。
在上述任一技术方案中,接收终端发送的登录请求的步骤之前,权限认证方法还包括:响应于设置指令生成业务请求对应的标识码,并将标识码与业务请求绑定,以建立标识码与业务请求的对应关系,将标识码与业务请求的对应关系存储在本地缓存区;其中,标识码包括业务信息和时间信息。
在该技术方案中,在服务器接收登录请求和业务指令之前,需要对服务器进行配置,在接收到设置指令之后对每个可以执行的业务请求生成相应的标识码,并将标识码也业务请求绑定,将标识码与业务请求的对应关系存储在本地缓存区,方便快速查询标识码对应的业务请求的信息。其中标识码包括业务信息和时间信息,业务信息可以为业务的具体名称代码等,时间信息为生成该标识码时的时间。通过对业务请求配置相应的标识码,实现了根据业务请求是否带有标识码确定该业务请求是否可以调用资源数据,在进行鉴权时接受到带有标识码的业务指令,可以在本地缓存区查询到业务请求信息,提高认证效率。
可以理解的是,本地缓存区为redis缓存(一种数据库)。
在上述任一技术方案中,接收终端发送的登录请求的步骤之前,还包括:响应于设置指令,设置用户信息与权限等级的对应关系。
在该技术方案中,在服务器接收登录请求和业务指令之前,需要对服务器进行配置,对用户信息与权限等级设置对应关系,通过获取到的登录请求中的用户信息可以确定该用户信息对应的权限等级,再根据权限等级生成相应的权限令牌。其中,用户信息与权限等级的对应关系可以根据用户意愿和实际需求进行配置。
根据本发明的第二方面的技术方案,提供了一种权限认证方法,包括:向服务器发送带有用户信息的登录请求,以使服务器对登录请求鉴权;接收服务器回传的权限令牌,向服务器发送带有权限令牌的业务请求;接收服务器回传的请求成功信息或请求失败信息。
在该技术方案中,终端在需要利用服务器执行业务请求时,需要先向服务器发送带有用户信息的登录请求。服务器对登录信息进行解析获取其中的用户信息,根据用户信息确定该用户信息的权限等级,根据权限等级将权限等级对应的权限令牌回传给终端。终端在接受到权限令牌则可以认为具有发送业务请求的权限,则向服务器发送业务请求时需要将权限令牌加载业务请求中;当终端未接收到权限令牌则可以认为不具有发送业务请求的权限。终端在接收到权限令牌后,可以向服务器发送带有权限令牌的业务请求。终端接收服务器回传的请求成功信息或请求失败信息。
根据本发明的第三方面的技术方案,提供了一种权限认证系统,包括:服务器,服务器包括服务器存储器、服务器处理器及存储在服务器存储器上并可在服务器处理器上运行的计算机程序;计算机程序被服务器处理器执行时实现如上述任一技术方案中的权限认证方法的步骤;终端,终端包括终端存储器、终端处理器及存储在终端存储器上并可在终端处理器上运行的计算机程序;计算机程序被终端处理器执行时实现如上述技术方案中权限认证方法的步骤。该权限认证系统具有上述任一技术方案的权限认证方法所具有的一切有益效果,在此不再赘述。
根据本发明的第四方面的技术方案,提供了一种计算机可读存储介质上存储有权限认证程序,权限认证程序被处理器执行时实现如上述任一项技术方案中的权限认证方法的步骤;或上述技术方案中的权限认证方法的步骤。因此该计算机存储介质具有上述任一技术方案的权限认证方法所具有的一切有益效果,在此不再赘述。
本发明的附加方面和优点将在下面的描述部分中给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了根据本发明的一个实施例的权限认证方法的流程示意图;
图2示出了根据本发明的另一个实施例的权限认证方法的流程示意图;
图3示出了根据本发明的再一个实施例的权限认证方法的流程示意图;
图4示出了根据本发明的又一个实施例的权限认证方法的流程示意图;
图5示出了根据本发明的又一个实施例的权限认证方法的流程示意图;
图6示出了根据本发明的一个具体实施例的权限认证方法的流程示意图;
图7示出了根据本发明的另一个具体实施例的权限认证的示意图;
图8示出了根据本发明的一个具体实施例的权限认证方法中的自定义身份认证的示意图;
图9示出了根据本发明的一个具体实施例的权限认证方法中的数据权限认证的示意图;
图10示出了根据本发明的一个具体实施例的权限认证方法中的微服务架构权限认证的示意图;
图11示出了根据本发明的一个实施例的权限认证系统的示意框图;
图12示出了根据本发明的一个实施例的服务器的示意框图;
图13示出了根据本发明的一个实施例的终端的示意框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
下面参照图1至图13描述根据本发明一个实施例的权限认证方法、权限认证系统和计算机可读存储介质。
实施例一:
如图1所示,本发明的一个实施例中,提供一种权限认证方法,包括:
步骤S102,接收终端发送的登录请求,对登录请求鉴权并根据鉴权结果生成权限令牌,向终端回传权限令牌;
步骤S104,接收终端发送带有权限令牌的业务请求,根据权限令牌对业务请求进行鉴权,确定业务请求具有执行权限。
在该实施例中,接收到终端发送的登录请求后对登录请求进行鉴权,根据对登录请求的鉴权结果确定是否向终端回传权限令牌,如果确认登录请求符合鉴权标准,则向终端回传权限令牌,并且向终端发送用于提示鉴权成功的信息;如果确认登录请求不符合鉴权标准,则不向终端回传权限令牌,并且向终端发送用于提示鉴权失败的信息,当终端接收到权限令牌后,可以向服务器发送带有权限令牌的业务请求,服务器根据发送带有权限令牌的业务请求再对是否能够执行业务请求进行鉴权。通过对用户的登录信息鉴权通过后向终端发送权限令牌,以使终端可以将带有权限令牌的业务请求发送至服务器进行执行业务以及调用数据的权限认证方式,高效的实现了微服务架构下的权限认证,从而不需要第三方框架这种复杂的权限控制,方便后续的权限功能的调整和扩展。
可以理解的是,权限令牌采用token令牌(临时令牌),并且权限令牌中并不包含用户信息,可以将用户信息与权限令牌的对应关系存储至服务器的本地服务区,在每次接收到带有权限令牌的业务请求,在本地中进行查找并根据查找结果对业务请求进行鉴权。
如图2所示,在上述任一实施例中,对登录请求鉴权并根据鉴权结果生成权限令牌的步骤,具体包括:
步骤S202,解析登录请求以确定用户信息;
步骤S204,确定用户信息对应的权限等级,根据权限等级生成相应的权限令牌;
步骤S206,将权限令牌与用户信息绑定,以建立权限令牌与用户信息的对应关系,将权限令牌与用户信息的对应关系存储在本地缓存区。
在该实施例中,对终端发送的登录请求进行解析得到登录请求中的用户信息,其中,用户信息包括但不限于帐号和密码,用户信息对应的权限等级预存在服务器中,根据解析得到的用户信息确定权限等级,对不同的权限等级和不同的用户信息生成相应的权限令牌,将权限令牌与用户信息绑定,以得到权限令牌的与用户信息的对应关系,并将权限令牌与用户信息的对应关系存储在本地缓存区,实现了回传给终端的权限令牌中不需要存储有用户信息,当服务器接收到带有权限令牌的业务请求时,根据带有的权限令牌即可在本地缓存区中查询到权限令牌相应的用户信息,进而达到了减小权限令牌大小的作用,在鉴权过程中单用带宽很小,适用于微服务架构。
如图3所示,在上述任一实施例中,根据权限令牌对业务请求进行鉴权的步骤,具体包括:
步骤S302,确定权限令牌对应的业务范围;
步骤S304,确定业务请求与业务范围的关系,根据业务请求与业务范围的关系,确定是否执行业务请求。
在该实施例中,不同的权限令牌可以与不同的权限等级,不同的权限等级对应的不同的可执行的业务范围,即不同的权限令牌中可以对不同的业务范围进行授权。在接收到业务请求时,对权限令牌进行鉴权并确定可以执行的业务范围,再判断接收到的业务请求是否处于业务范围内,根据业务请求与权限令牌对应的业务范围的关系可以确定是否对业务请求进行执行。通过对业务请求中的权限令牌的分析鉴权,可以对业务请求进行鉴权,实现了从业务权限维度进行权限认证,提高了权限认证的准确性。
可以理解的是,也可以将权限令牌设置为可以执行所有的业务请求,在根据权限令牌对业务请求进行鉴权判断时,可以根据业务请求中带有权限令牌则确认可以执行该业务请求。即可以结合用户意愿和实际需求对权限令牌可以执行的业务请求进行自定义,实现了灵活的配置认证方案。
在上述实施例中,根据业务请求与业务范围的关系,确定是否执行业务请求具体包括:业务请求处于业务范围内,确定业务请求具有执行权限,向终端回传请求成功信息;业务请求处于业务范围外,忽略业务请求并向终端回传请求失败信息。
在该实施例中,当带有权限令牌的业务请求处于权限令牌对应的业务范围内时,则确定业务请求为可以授权状态,向终端回传请求成功信息,提示用户该业务请求可以执行;当带有权限令牌的业务请求未处于权限令牌对应的业务范围内时,则确定业务请求为不可授权状态,在确定不对该业务请求执行的同时,向用户回传请求失败信息,提示用户该业务请求不可以执行。
可以理解的是,还可以随着请求失败信息向用户提示用户信息对应的权限令牌的业务范围,以免用户再次发送的业务请求还是不在对应的业务范围内。
实施例二:
如图4所示,本发明的一个实施例中,提供一种权限认证方法,包括:
步骤S402,接收终端发送的登录请求,对登录请求鉴权并根据鉴权结果生成权限令牌,向终端回传权限令牌;
步骤S404,接收终端发送带有权限令牌的业务请求,根据权限令牌对业务请求进行鉴权,确定业务请求具有执行权限;
步骤S406,根据业务请求绑定有标识码,确定业务请求具有数据调用权限;
步骤S408,业务请求具有执行权限和/或数据调用权限,执行业务请求。
在该实施例中,通过鉴权后则确认该业务请求具有执行权限,则对该业务请求是否具有标识码进行检测,如果该业务请求具有标识码,则认为该业务请求为合法业务请求,确认该业务请求具有数据调用权限,在执行该业务请求时可以调用服务器中的其他资源数据;如果该业务请求不具有标识码,则认为该业务请求为非法业务请求,确认该业务请求不具有数据调用权限,在执行该业务请求时不可以调用服务器中的其他资源数据。并根据业务请求是否具有执行权限和/或是否具有数据调用权限判断是否执行业务请求。对业务请求设置的相应的鉴权条件,实现了从数据调用维度进行权限认证,提高了权限认证的准确性。
可以理解的是,当接收到的业务请求为用户通过终端发送来的则判断该业务请求是否具有执行权限,如果该业务请求具有执行权限则对该业务请求进行执行,否则不执行该业务请求;如果该业务请求为其他服务器端发来则判断该业务请求是否具有数据调用权限,如果该业务请求具有数据调用权限则对该业务请求进行执行,否则不执行该业务请求,实现了对业务请求的合法性进行鉴别,避免服务器执行非法业务请求。在接收到的业务请求为用户通过终端发送来的时,根据该业务请求既具有执行权限又具有数据调用权限,则执行该业务请求,其不具有任一个业务请求则部执行该业务请求。
实施例三:
本发明的一个实施例中,提供一种权限认证方法,包括:响应于设置指令,设置用户信息与权限等级的对应关系权限认证方法还包括:响应于设置指令生成业务请求对应的标识码,并将标识码与业务请求绑定,以建立标识码与业务请求的对应关系,将标识码与业务请求的对应关系存储在本地缓存区;其中,标识码包括业务信息和时间信息。响应于设置指令,设置用户信息与权限等级的对应关系。
在该实施例中,在服务器接收登录请求和业务指令之前,需要对服务器进行配置,在接收到设置指令之后对每个可以执行的业务请求生成相应的标识码,并将标识码也业务请求绑定,将标识码与业务请求的对应关系存储在本地缓存区,方便快速查询标识码对应的业务请求的信息。其中标识码包括业务信息和时间信息,业务信息可以为业务的具体名称代码等,时间信息为生成该标识码时的时间。通过对业务请求配置相应的标识码,实现了根据业务请求是否带有标识码确定该业务请求是否可以调用资源数据,在进行鉴权时接受到带有标识码的业务指令,可以在本地缓存区查询到业务请求信息,提高认证效率。在服务器接收登录请求和业务指令之前,需要对服务器进行配置,对用户信息与权限等级设置对应关系,通过获取到的登录请求中的用户信息可以确定该用户信息对应的权限等级,再根据权限等级生成相应的权限令牌。其中,用户信息与权限等级的对应关系可以根据用户意愿和实际需求进行配置。
可以理解的是,本地缓存区为redis缓存(一种数据库)。
实施例四:
如图5所示,本发明的一个实施例中,提供一种权限认证方法,包括:
步骤S502,向服务器发送带有用户信息的登录请求,以使服务器对登录请求鉴权;
步骤S504,接收服务器回传的权限令牌,向服务器发送带有权限令牌的业务请求;
步骤S506,接收服务器回传的请求成功信息或请求失败信息。
在该实施例中,终端在需要利用服务器执行业务请求时,需要先向服务器发送带有用户信息的登录请求。服务器对登录信息进行解析获取其中的用户信息,根据用户信息确定该用户信息的权限等级,根据权限等级将权限等级对应的权限令牌回传给终端。终端在接受到权限令牌则可以认为具有发送业务请求的权限,则向服务器发送业务请求时需要将权限令牌加载业务请求中;当终端未接收到权限令牌则可以认为不具有发送业务请求的权限。终端在接收到权限令牌后,可以向服务器发送带有权限令牌的业务请求。终端接收服务器回传的请求成功信息或请求失败信息。
实施例五:
如图6所示,本发明的一个具体实施例中,提供一种权限认证方法,包括:
步骤S602,身份认证,终端发起登录请求,通过网关转发给服务器进行权限认证,认证通过返回给终端权限令牌;
步骤S604,权限认证,终端发起业务请求,携带权限令牌,通过网关转发给服务器进行鉴权操作,通过则继续转发给目标服务处理业务请求,最终成功返回给用户数据。
如图7所示,本发明的另一个具体实施例中,在终端需要向数据调用的服务器发送自动排版的业务请求,以使数据调用的服务器执行自动排版业务的情况下。具体为,终端通过网关发送登录请求至权限认证的服务器进行权限认证,其中网关的作用为转发登录请求,权限服务认证的服务器对登录请求中的用户信息进行鉴权,从而实现身份认证,并将鉴权结果返回给终端,其中权限认证的服务器向网关回传认证结果,网关再向终端转发认证结果。基于该用户信息被授权,终端向数据调用的服务器发送自动排版请求,经过网关将转发认证服务至权限认证的服务器进行权限认证,权限认证的服务器将认证结果返回给终端。如果认证不通过则反馈不能执行的错误信息;如果认证成功则确定接收到的自动排版的业务请求是否可以调用数据资源,如果可以调用则将排版请求转发至数据调用的服务器执行排版请求。数据调用的服务器将排版请求处理结果发送至网关,网关在转发排版结果至终端。
本发明的再一个具体实施例中,提供了权限认证方法中的自定义身份认证方法,权限认证采用token请求,权限令牌为token令牌,token令牌生成规则为32位md5(信息摘要算法)字符串,不含用户信息,终端登录或者授权通过后,服务器端内存和redis服务缓存token和用户信息,返回token信息给终端,终端下次访问服务只需在请求头携带该token信息,服务器收到终端的token走鉴权流程,认证成功或者失败返回给终端。
自定义权限认证,从服务权限、用户权限和数据权限三个维度处理。
如图8所示,本发明的再一个具体实施例中,提供了权限认证方法中的服务权限认证方法,业务请求的数据调用权限的验证,通过数据调用服务器2首先验证业务请求是否设置有标识码,业务请求有标识码则认为其具有数据调用权限,业务请求不具备标识码则认为其不具有数据调用权限,这样处理可以有效拦截非法的业务请求。
在该实施例中,标识码的生成规则为采用业务请求信息和注册时间信息的md5加密串,调用服务器中的注册服务,在服务器中保存标识码,同时将标识码缓存到redis缓存中,方便快速的查询业务请求,提高认证效率。
该实施例还提供了一种用户权限认证方法,用户权限的核心就是通过用户信息来控制用户的权限,不同的角色拥有不同的权限等级,每个权限等级定义指定的抽象资源,如菜单、服务接口操作等权限范围,服务器初始化或者权限刷新时会把权限等级对应的权限数据缓存到redis缓存中,方便快速的查询用户信息对应的权限范围。
具体为,数据调用的服务器1向权限认证的服务器发送注册服务,权限认证的服务器将登录请求中的用户信息存储在redis缓存中,数据调用的服务器1将带有服务标识码的业务请求发送至数据调用的服务器2,权限认证的服务器将认证结果发送至数据调用的服务器2,使业务请求可以调用数据调用的服务器2中的数据,数据调用的服务器2还与权限认证的服务器进行验证请求权限,如果具有权限则将业务请求以及数据调用请求发送至指定服务器中执行。
如图9所示,本发明的再一个具体实施例中,提供了权限认证方法中的数据权限认证方法,用户或者机构可以通过登录上传用户信息,每个用户信息除了拥有用户权限外,还可配置数据的权限范围,例如用户信息对数据是否拥有增删改的权限,不同用户信息对应的权限等级可设置不同的数据过滤条件,从而达到数据的过滤作用,数据权限具体可以设置为有数据是否有增删改权限或者数据查询范围的权限。这是一种非侵入式开发手段,让开发只关注具体业务层面。
用户数据过滤采用的是服务器设置拦截器装置,根据请求携带的token查出用户信息,再根据权限等级查出对应的权限范围,最后根据权限范围拼接查询条件。例如如机构管理员定义了权限范围是只查该机构下的业务数据,则查询接口会自动带上机构号过滤条件查询业务数据,从而实现业务数据过滤的目的。
如图10所示,提供了一种微服务架构权限的控制方法,包括:
网关层控制权限方法,网关控制权限主要针对服务器页面或者外系统访问平台,首先通过网关进行身份认证和权限认证,发出请求的服务器请求经过网关首先转发给权限认证的服务器,权限认证的会根据请求携带的token信息取redis缓存中取对应的用户信息,核实用户信息是否合法、是否有权限访问被访问的服务器接口,认证不通过则网关直接返回给发出请求的服务器提示权限非法,认证通过则返回给网关再转发给具体业务服务做业务处理,最终返回业务数据给发出请求的服务器。
业务服务层控制权限方法,业务服务控制权限主要是指业务请求和业务请求之间的权限控制,主要适用于内网环境,不经过网关,在业务请求之间的直连调用。这种场景也要进行权限认证。比如业务请求1不经过网关直接调用业务请求2的接口,业务请求1发送请求时也会携带token令牌信息,业务请求2接受业务服务1发来的请求首先进行权限认证,具体是根据token信息去redis服务中的用户信息是否合法,业务请求是否合法以及是否有权限访问接口,从而达到控制权限的目的。并且用户或者机构在完成验证后可以直接向数据库发送业务请求3,数据库可以直接根据业务请求3调用数据库中的数据。通过自定义微服务权限认证方式,方便高效的实现微服务架构下的权限认证问题,摒弃了springSecurity第三方框架(一种提供描述性安全访问解决方案的安全框架)这种复杂权限控制,方便后期的权限功能调整和扩展;采用redis缓存用户权限、服务权限和数据权限数据,方便快速的查询相关权限信息;多维度的权限校验保证的系统的安全可靠,为其他由单体应用转向微服务架构提供借鉴思路。
实施例六:
如图11所示,本发明的再一个实施例中,提供了一种权限认证系统100。包括:服务器120和终端140。
如图12所示,服务器120包括服务器存储器122、服务器处理器124及存储在服务器存储器122上并可在服务器处理器124上运行的计算机程序;计算机程序被服务器处理器124执行时实现如上述任一实施例中的权限认证方法的步骤。
如图13所示,终端140包括终端存储器142、终端处理器144及存储在终端存储器142上并可在终端处理器144上运行的计算机程序;计算机程序被终端处理器144执行时实现如上述技术方案中权限认证方法的步骤。该权限认证系统具有上述实施例中的的权限认证方法所具有的一切有益效果,在此不再赘述。
实施例七:
本发明的再一个实施例中,提供了一种计算机可读存储介质,计算机可读存储介质上存储有控制程序,控制程序被处理器执行时实现如上述任一实施例中的权限认证方法的步骤,或上述任一实施例中的权限认证方法的步骤。该计算机可读存储介质具有上述任一实施例中的权限认证方法所具有的一切有益效果,在此不再赘述。
在本发明中,术语“第一”、“第二”、“第三”仅用于描述的目的,而不能理解为指示或暗示相对重要性;术语“多个”则指两个或两个以上,除非另有明确的限定。术语“安装”、“相连”、“连接”、“固定”等术语均应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或一体地连接;“相连”可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的描述中,需要理解的是,术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或单元必须具有特定的方向、以特定的方位构造和操作,因此,不能理解为对本发明的限制。
在本说明书的描述中,术语“一个实施例”、“一个实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。