微服务架构中的授权方法

时间:2020-05-27 21:07:36

标签: architecture authorization microservices

我正在寻求解决微服务环境中的授权问题。我有一个网关服务和14个底层微服务。我正在使用IdentityServer4进行身份验证和资源授权。然后,我在每个单独的服务中使用基于策略的授权。这在大多数情况下都可以正常工作,但是...

所有微服务都将需要检查某些请求的复杂授权规则。想象一下Facebook检查您和资源所有者是否是连接。该信息可以通过“连接服务”提供,我正在考虑如何最好地解决它:

1:在网关级别执行一次。让网关调用“连接服务”,并使所有服务假定请求已针对此特定方案授权。这将使授权从服务级别上移,并将失去一些灵活性,但避免重复。尽管不确定是否要赋予网关额外的责任

2:将授权保持在服务级别,让每个微服务称为“连接服务”,这将创建重复并使得系统更加混乱。听起来不太好

3:当连接更改时,让“连接服务”在所有其他服务都订阅的主题上发布一条消息,让这些服务保留其自己的现有连接记录。复制在这里听起来很糟糕,但是好处是授权被保留在服务级别,并且还有性能上的好处-没有延迟。

请让我知道是否有一种标准方法可以解决我可以模仿的大型体系结构,或者是否有更好的方法。

0 个答案:

没有答案