微服务 OAuth 2.0 范围实现

Micro Services OAuth2.0 Scope implementation

对于 OAuth 2.0 实施,实施此类方案的最佳方式是什么。

我的后端是微服务架构设计的。

我有客户端“Mobile”,它将调用 ServiceA。

我可以将“ScopeA”范围添加到“移动”客户端,这很好。

那么假设明天 ServiceA 将调用 ServiceB 的授权端点来完成请求。

我的问题是

哪个选项是正确的

  1. 当 ServiceA 开始调用 ServiceB 时,我应该将 ServiceB 范围添加到移动客户端
    • 我的意思是将 'Mobile' 客户端访问令牌传播到令牌中具有所有必需范围的所有微服务。
  2. ServiceA 应该获取自己的访问令牌来调用 ServiceB,而不是使用移动客户端访问令牌来调用 ServiceB。

对于第二个选项,我们将丢失主题信息等信息。

这里有多种选择。一种选择是在 ServiceA 和 ServiceB 之间使用 client credientials flow。在请求中,您可以将用户详细信息作为普通请求参数传递。

这种方法的优点是,即使用户未登录,ServiceA 也可以独立于用户是否登录与 ServiceB 联系。例如,ServiceA 可能需要向 ServiceB 执行一些后台请求。

另一个更高级的选项是委托身份验证,您可以在this文章

中阅读相关内容