【发布时间】:2020-05-03 02:45:00
【问题描述】:
我有一个用户微服务。该微服务使用token authorization。现在它被 Web 应用程序使用。工作流程如下所示:
- 用户使用
AzureAd OpenIdConnect登录Web 应用程序; - Web 应用程序接收
access token(authorization code流); - Web 应用程序通过 HTTP 请求标头中的
access token从用户服务获取用户详细信息。
我还有一个没有用户上下文的守护程序微服务。我也想允许这个守护程序服务从用户服务中获取用户详细信息。对于这种情况,我将使用client credentials flow。
如何正确组织用户服务rest api?
我正在考虑这种方法:
- 用户数据可在此 URL
/users/{userId}/info获得; - 具有用户上下文的应用程序(即使用
authorization code流为特定用户颁发访问令牌)只能使用current user或current user是管理员的数据,并且可以使用其他用户的数据; - 没有
current user的守护程序应用程序(即使用client credentials流为应用程序本身颁发访问令牌)可以为任何用户读取数据。
此类情况的最佳做法是什么?
【问题讨论】:
标签: rest oauth-2.0 microservices access-token