假设我们有一些微型服务(订单、交货、运输、.)在后端还有一个身份服务器,它对客户端进行身份验证并发出JWT令牌,所以所有的服务都不关心安全问题。
标识服务器告诉哪个用户具有“管理”、“客户”、“传递代理”、.
我希望将所有服务中的用户CUD操作限制在单个点上(我认为身份服务器是最好的选择)。有些城市和一些街道设置了限制。
例如,"Ali“可以访问
[ {"city-1":{"st-10","st-12" ... < n > ... "st-x"}}
,{"city-5":{"st-10","st-12" ... < n > ... "st-x"}}
..
..]假设这一点,当Ali请求从OrderService中发出“城中-10”的所有订单时,应该是403 Status Code或空结果。或者当Ali从getAllOrders()请求OrderService时,结果应该只包含在[ {"city-1":{"st-10","st-12" ... < n > ... "st-x"}} ,{"city-5":{"st-10","st-12" ... < n > ... "st-x"}} .. ..]中放置的订单。
解决这一问题的最佳做法是什么?将这类授权数据放入jwt令牌中有意义吗?还是保持jwt简单,让服务调用由标识服务通过给定令牌公开的api并获得用户访问权限?
或
也许你说这根本不是身份服务的职责!
所以请给我建议,让我知道你的经历。
谢谢
发布于 2022-12-01 14:33:30
你可以查一下OAuth。身份服务可以对客户端进行身份验证,并将授权范围放置在JWT令牌中,并且服务可以基于该范围授权请求。
https://stackoverflow.com/questions/74629954
复制相似问题