每个人都要会的后端分布式鉴权方案

本文详细描述了通用的鉴权流程,涉及用户通过gateway访问服务时的token验证,包括RBAC和ABAC角色权限管理,以及JWT的使用与存储策略,强调了如何在保证性能和安全性的基础上进行权限控制和数据传输。
摘要由CSDN通过智能技术生成

鉴权方案

通用流程:

1. 用户通过gateway访问某服务

2. 如果该请求未携带token【无token该请求必须是登录,其他请求一定带token,可以在gateway中配置判断】,gateway先请求auth鉴权服务,然后auth根据用户名密码,返回用户的role角色和permission权限。----RBAC

3. 【选做】如果有需要,可以角色绑定规则,根据规则进行更细粒度鉴权。比如说,只允许9点到6点管理员登陆,或者是只允许某些IP登录。 推荐使用ABAC框架 LoopAuth ----ABAC

4. gateway收到权限时,可以储存或者不储存到gateway的redis中。储存的意义在于,后续访问的时候可以直接通过用户token获取对应jwt,这样不用访问auth服务,减少io。但是这样做的坏处在于,无法踢人下线,除非auth和gateway公用一个redis。如果不储存,每次访问都需要将用户token发送给auth服务,auth服务通过token返回具体信息给gateway,增加了网络io。将权限角色之类信息放到header中,用jwt发送给微服务。

5. 后续微服务返回前端的时候,请不要带上jwt,应该放回auth返回的token,auth应该储存token和jwt对应关系,大多数情况应该储存在redis中。

6. 后续每次都应该gateway/auth将用户token转化为jwt,传递给后续微服务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值