首页 > 解决方案 > 微服务解决方案中的 Azure Active Directory 代表流

问题描述

我有一个微服务解决方案,在微服务前面有一个 API 网关。我希望授权发生在微服务级别。我有一个 SPA 客户端,它使用隐式流来获取令牌并调用 API。在 API 中,我使用代理流来获取令牌以作为用户调用相关的微服务。所以对于微服务来说,它似乎是用户并且可以执行授权。

我的问题是,如果我不使用代表流程,我需要给 API 网关一个应用级别的权限来访问微服务。如果我提供 API 应用级服务到服务(客户端凭据授予流)功能,那么我将不得不依赖网关 API 来执行授权,这似乎是一个非常糟糕的主意。如果另一个 API 需要在类似的场景中调用我的,这也是一个非常糟糕的主意。

我的问题是:还有哪些其他方法可以让我将用户身份传递到微服务以便进行适当的授权?

我已经看到了在 Identity Server 中使用另一个标头的示例,但是由于 Identity Server 中缺少一些代表选项,我不会这样做。顺便说一句,我意识到我可以将用户身份作为字符串传递,但我会失去所有签名的令牌好处,这些好处提供了令牌未被篡改的确定性。

标签: oauthauthorizationazure-active-directorymicroservices

解决方案


推荐阅读