微服务 OAuth 2.0 范围实现
Posted
技术标签:
【中文标题】微服务 OAuth 2.0 范围实现【英文标题】:Micro Services OAuth2.0 Scope implementation 【发布时间】:2020-12-30 16:52:19 【问题描述】:对于 OAuth 2.0 实施,实施此类方案的最佳方式是什么。
我的后端是在微服务架构中设计的。
我有客户端“Mobile”,它将调用 ServiceA。
我可以将“ScopeA”范围添加到“Mobile”客户端,这很好。
那么我们假设明天ServiceA将调用ServiceB的授权端点来完成请求。
我的问题是
哪个选项是对的
-
当 ServiceA 开始调用 ServiceB 时,我应该将 ServiceB 范围添加到移动客户端
我的意思是将“移动”客户端访问令牌传播到令牌中具有所有必需范围的所有微服务。
ServiceA 应该获取自己的访问令牌来调用 ServiceB,而不是使用移动客户端访问令牌来调用 ServiceB。
对于第二个选项,我们将丢失主题信息等信息。
【问题讨论】:
【参考方案1】:这里有几个选项。一种选择是在 ServiceA 和 ServiceB 之间使用client credientials flow。在请求中,您可以将用户详细信息作为普通请求参数传递。
这种方法的优点是,即使用户没有登录,ServiceA 也可以独立地联系 ServiceB,而不管用户是否登录。例如,ServiceA 可能需要对 ServiceB 做一些后台请求。
另一个更高级的选项是委派身份验证,您可以在 this 文章中了解它
【讨论】:
委托身份验证是我正在寻找的。谢谢以上是关于微服务 OAuth 2.0 范围实现的主要内容,如果未能解决你的问题,请参考以下文章
OAuth 2.0实现分布式认证授权-注册中心Eureaka搭建