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

鉴权方案

通用流程:

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,传递给后续微服务。

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值