网关 鉴权 RBAC
时间: 2023-09-02 16:13:39 浏览: 399
RBAC(Role-Based Access Control)是一种常用的权限控制模型,它由用户、角色和权限三个主体组成。用户属于某个角色,而角色具有某些权限。在网关层的鉴权过程中,使用了RBAC模型来对用户进行授权,判断其是否具有访问权限。\[2\]
在网关层的处理中,首先会进行身份认证,解析JWT中的角色ID(RoleId),然后根据该角色ID从Redis缓存中获取对应的角色权限。接下来,通过调用RbacFilter函数来验证用户是否具有访问权限。该函数会根据传入的角色ID和方法名,从Redis中读取相应的权限信息进行验证。如果验证通过,则用户具有访问权限;否则,返回错误信息。\[1\]\[3\]
整个RBAC鉴权的流程如下:
1. 增加RBAC的数据表和结构体,用于存储角色和权限的关联信息。
2. 将角色权限信息存储到Redis缓存中,并定时任务定期刷新权限缓存。
3. 网关层的身份认证后,解析JWT中的角色ID,获取Redis缓存中的角色权限。
4. 调用RbacFilter函数进行权限验证,判断用户是否具有对应权限。
通过以上步骤,网关可以对用户进行鉴权,根据RBAC模型来控制用户的访问权限。这样可以确保不同用户只能访问其具有权限的资源,提高系统的安全性和可控性。
#### 引用[.reference_title]
- *1* *2* *3* [基于go-micro微服务的实战-Gateway网关层的鉴权-rbac(六)](https://blog.csdn.net/toegg/article/details/127281211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文