1.一种基于用户属性的微服务统一权限控制方法,其特征在于,所述方法包括:步骤1,预先通过权限控制微服务存储用户属性信息;
步骤2,通过管理员选定需要授权的对象和所述对象对应的策略需求,根据所述对象和对应的策略需求,通过所述权限控制微服务创建对象的访问控制策略,并将所述访问控制策略存入数据库,实现权限动态配置;
步骤3,网关接收客户端发送的身份认证请求时,将所述身份认证请求转发给权限控制微服务,所述权限控制微服务验证用户属性信息后,生成唯一的鉴权认证令牌返回给所述客户端;
步骤4,所述客户端请求使用任意业务微服务的资源时,所述网关接收资源请求信息和鉴权认证令牌,并将所述资源请求信息和鉴权认证令牌转发给权限控制微服务,所述权限控制微服务通过解析资源请求信息和鉴权认证令牌中的鉴权参数,完成资源鉴权,鉴权成功后放行资源请求给所述业务微服务,所述业务微服务执行相应的操作并将结果返回给客户端。
2.根据权利要求1所述的一种基于用户属性的微服务统一权限控制方法,其特征在于,所述步骤1包括:
所述权限控制微服务通过不可逆加密算法将用户属性信息进行编码,将通过编码实现加密后的用户属性信息以字符串的形式存储在关系型数据库中,所述不可逆加密算法包括MD5算法和SHA算法。
3.根据权利要求2所述的一种基于用户属性的微服务统一权限控制方法,其特征在于,所述步骤2包括:
步骤2‑1,通过所述管理员选定需要授权的对象,根据所述对象和操作类型,确定所述对象对应的策略需求,所述策略需求包括用户属性信息和访问控制决策树;其中,确定所述用户属性信息即确定访问控制策略的关键属性,确定所述访问控制决策树即确定访问控制策略的决策方式;
所述确定对象对应的策略需求,包括:获取用户属性列表后,在所述用户属性列表中选择用户属性信息并指定访问控制决策树,向所述权限控制微服务申请创建访问控制策略;
所述访问控制决策树,即以树状结构表示属性与属性逻辑运算的逻辑结构,所述属性即用户属性信息,其中,每个所述属性表示某项用户具体特征,所述属性与属性逻辑运算包括AND、OR和NOT;
所述访问控制策略,即通过用户和角色的映射关系以及角色和资源的映射关系确定用户、角色和权限的映射关系,即基于RBAC模型设置的访问控制策略;所述权限控制微服务是访问控制策略的实现方式,采用分布式微服务和存储方式;
步骤2‑2,将每项所述用户具体特征对应的属性值集合带入访问控制决策树之后,由所述访问控制决策树的根节点输出判断结果;
所述判断结果包括true或者false;其中,所述判断结果为true表示访问控制策略中用户和角色的映射关系能启用,所述判断结果为false表示访问控制策略中用户和角色的映射关系不能启用;
步骤2‑3,所述权限控制微服务创建对象的访问控制策略,即完成对用户属性表、访问控制决策树、角色表和资源数据表的存储;所述用户属性表包括用户和对应的用户属性信息,所述角色表包括用户角色信息和用户唯一标识信息,所述资源数据表包括资源信息和权限信息;
同时,通过所述访问控制策略确定用户和角色的映射关系,以及角色和资源的映射关系,完成资源权限配置,即所述实现权限动态配置。
4.根据权利要求1所述的一种基于用户属性的微服务统一权限控制方法,其特征在于,所述步骤3包括:
步骤3‑1,当所述客户端请求认证身份时,向所述网关发送身份认证请求;
步骤3‑2,所述网关接收客户端发送的身份认证请求,并从所述身份认证请求中提取用户属性信息,转发所述用户属性信息给权限控制微服务;
步骤3‑3,所述权限控制微服务将用户属性信息与数据库中的用户属性信息进行比对,若确认所述用户属性信息无误,则生成唯一的鉴权认证令牌;
步骤3‑4,所述权限控制微服务将唯一的鉴权认证令牌返回给客户端。
5.根据权利要求1所述的一种基于用户属性的微服务统一权限控制方法,其特征在于,所述步骤4包括:
步骤4‑1,所述客户端请求使用任意业务微服务的资源时,所述网关接收客户端发送的鉴权认证令牌和资源请求信息,向所述权限控制微服务发送鉴权认证令牌和资源请求信息;
步骤4‑2,所述权限控制微服务接收网关发送的鉴权认证令牌和资源请求信息,提取鉴权参数;
步骤4‑3,所述权限控制微服务解析鉴权参数,查询与所述业务微服务相匹配的访问控制策略列表,进行资源鉴权,即确定所述资源请求信息中需要的资源与数据库中访问控制策略列表中所列举的资源是否一致;
步骤4‑4,若资源鉴权成功,所述权限控制微服务放行资源请求给业务微服务,所述业务微服务执行与资源请求信息相应的操作并将执行结果返回给客户端。
6.一种基于用户属性的微服务统一权限控制系统,其特征在于,所述系统包括:信息存储模块,用于预先通过权限控制微服务存储用户属性信息;
资源配置模块,用于通过管理员选定需要授权的对象和所述对象对应的策略需求,根据所述对象和对应的策略需求,通过所述权限控制微服务创建对象的访问控制策略,并将所述访问控制策略存入数据库,实现权限动态配置;
身份认证模块,用于通过网关接收客户端发送的身份认证请求时,将所述身份认证请求转发给权限控制微服务,所述权限控制微服务验证用户属性信息后,生成唯一的鉴权认证令牌返回给所述客户端;
资源鉴权模块,用于所述客户端请求使用任意业务微服务的资源时,所述网关接收资源请求信息和鉴权认证令牌,并将所述资源请求信息和鉴权认证令牌转发给权限控制微服务,所述权限控制微服务通过解析资源请求信息和鉴权认证令牌中的鉴权参数,完成资源鉴权,鉴权成功后放行资源请求给所述业务微服务,所述业务微服务执行相应的操作并将结果返回给客户端。
7.根据权利要求6所述的一种基于用户属性的微服务统一权限控制系统,其特征在于,所述信息存储模块包括:
信息编码单元,用于通过所述权限控制微服务通过不可逆加密算法将用户属性信息进行编码,将通过编码实现加密后的用户属性信息以字符串的形式存储在关系型数据库中,所述不可逆加密算法包括MD5算法和SHA算法。
8.根据权利要求6所述的一种基于用户属性的微服务统一权限控制系统,其特征在于,所述资源配置模块包括:
需求确定单元,用于通过所述管理员选定需要授权的对象,根据所述对象和操作类型,确定所述对象对应的策略需求,所述策略需求包括用户属性信息和访问控制决策树;其中,确定所述用户属性信息即确定访问控制策略的关键属性,确定所述访问控制决策树即确定访问控制策略的决策方式;
所述确定对象对应的策略需求,包括:获取用户属性列表后,在所述用户属性列表中选择用户属性信息并指定访问控制决策树,向所述权限控制微服务申请创建访问控制策略;
所述访问控制决策树,即以树状结构表示属性与属性逻辑运算的逻辑结构,所述属性即用户属性信息,其中,每个所述属性表示某项用户具体特征,所述属性与属性逻辑运算包括AND、OR和NOT;
所述访问控制策略,即通过用户和角色的映射关系以及角色和资源的映射关系确定用户、角色和权限的映射关系,即基于RBAC模型设置的访问控制策略;所述权限控制微服务是访问控制策略的实现方式,采用分布式微服务和存储方式;
关系判断单元,用于将每项所述用户具体特征对应的属性值集合带入访问控制决策树之后,由所述访问控制决策树的根节点输出判断结果;
所述判断结果包括true或者false;其中,所述判断结果为true表示访问控制策略中用户和角色的映射关系能启用,所述判断结果为false表示访问控制策略中用户和角色的映射关系不能启用;
策略创建单元,用于通过所述权限控制微服务创建对象的访问控制策略,即完成对用户属性表、访问控制决策树、角色表和资源数据表的存储;所述用户属性表包括用户和对应的用户属性信息,所述角色表包括用户角色信息和用户唯一标识信息,所述资源数据表包括资源信息和权限信息;
同时,通过所述访问控制策略确定用户和角色的映射关系,以及角色和资源的映射关系,完成资源权限配置,即所述实现权限动态配置。
9.根据权利要求6所述的一种基于用户属性的微服务统一权限控制系统,其特征在于,所述身份认证模块包括:
请求发送单元,用于当所述客户端请求认证身份时,向所述网关发送身份认证请求;
信息提取单元,用于通过所述网关接收客户端发送的身份认证请求,并从所述身份认证请求中提取用户属性信息,转发所述用户属性信息给权限控制微服务;
令牌生成单元,用于通过所述权限控制微服务将用户属性信息与数据库中的用户属性信息进行比对,若确认所述用户属性信息无误,则生成唯一的鉴权认证令牌;
令牌返回单元,用于通过所述权限控制微服务将唯一的鉴权认证令牌返回给客户端。
10.根据权利要求6所述的一种基于用户属性的微服务统一权限控制系统,其特征在于,所述资源鉴权模块包括:
资源请求单元,用于通过所述客户端请求使用任意业务微服务的资源时,所述网关接收客户端发送的鉴权认证令牌和资源请求信息,向所述权限控制微服务发送鉴权认证令牌和资源请求信息;
参数提取单元,用于通过所述权限控制微服务接收网关发送的鉴权认证令牌和资源请求信息,提取鉴权参数;
资源鉴权单元,用于通过所述权限控制微服务解析鉴权参数,查询与所述业务微服务相匹配的访问控制策略列表,进行资源鉴权,即确定所述资源请求信息中需要的资源与数据库中访问控制策略列表中所列举的资源是否一致;
资源放行单元,用于当资源鉴权成功时,所述权限控制微服务放行资源请求给业务微服务,所述业务微服务执行与资源请求信息相应的操作并将执行结果返回给客户端。