Spring Cloud Gateway 业务服务的接口授权校验一般是怎么做的呢?

发布于 2022-03-04 22:10:01 字数 160 浏览 821 评论 8

Gateway使用JWT作为Token的解决方案中,每个业务服务中如何做RBAC的授权校验?
一种方式是JWT的Payload中包含了“角色”或者“权限”等信息,但是Token会变大。
还有一种方式是业务服务通过JWT再去请求一次用户服务拿到“角色”或者“权限”等信息,但是网络请求会增加。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

酒几许 2022-03-11 06:10:30

我之前有一种做法就是通过自定义注解,在每个服务启动的时,将url作为key,value为授权校验参数,并且存余redis中,在gateway中通过url在redis中获取相应的校验参数

毁梦 2022-03-11 06:10:12

JWT 在这情况下,就变成伪无状态了,另外如果放 Payload 里边,也暴露系统内部的权限体系了。

少女情怀诗 2022-03-11 05:16:55

认证登录时加载权限数据到redis等分布式缓存中,jwt保存的是用户唯一,服务在每次到来的请求使用过滤,通过统一的权限API(HTTPS)拿到角色和权限,对于大型系统且权限维度细时这样实现,如果粒度粗,角色少,网关传递过去也未尝不

挽清梦 2022-03-11 02:16:28

框架内的实现方式就是jwt中包含用户角色及权限

归途 2022-03-11 00:39:50

按框架内已经设计好的鉴权方式走即可

spring-cloud-gateway + spring-cloud-oauth2 + spring-cloud-security

沦落红尘 2022-03-10 18:17:20

 登录把用户权限信息存redis,每个业务服务鉴权,从redis获取用户权限角色信息再判断

梅窗月明清似水 2022-03-10 09:09:28

GW 后面再放个数据库,redis,SQL 无所谓,看你需求,里面存储认证服务器认证过的信息,也可以直接存 jwt,然后发行个 token 给客户端。

秋意浓 2022-03-08 03:49:03

使用usertoken(用户权限)和datatoken(数据加密),基本简单的就可以
其他的要看具体的应用场景和具体需求

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文