【发布时间】:2020-04-03 02:37:27
【问题描述】:
我们很少有 UI 使用的微服务。 Azure B2C 是我们的身份验证提供商。每个微服务 (API) 都需要一个访问令牌,并且需要与数据库对话以进行授权。此数据库具有基于角色的访问权限。
这就是今天的样子:
这样我们有两个问题:
- 由于 Azure B2C 不允许将多个资源的范围添加到一个访问令牌中,因此我们必须获取多个访问令牌。
- 我们现在处于 UI 需要调用两个或更多 API 才能在一页上显示数据的阶段。
我们想将 GraphQL 用作 API 网关。像这样的:
所有微服务都放置在私有 vnet 中,并且只允许 GraphQL API 与它们通信。 GraphQL 层处理所有身份验证和授权。
现在的问题是:
- 您认为这种方法有什么问题吗?
- 是否可以使用客户端和密钥在 GraphQL 层和其他 API 之间进行通信?或者 Azure B2C 中是否有一项规定可以在 GraphQL 层不请求单个访问令牌的情况下执行此验证?
- 向此添加 Azure API 管理有哪些额外优势(除了日志记录、分析、速率限制等)?我需要担心 SSL 终止吗?
【问题讨论】:
标签: node.js oauth-2.0 graphql microservices azure-ad-b2c