Azure active directory Azure API网关和身份验证

Azure active directory Azure API网关和身份验证,azure-active-directory,azure-api-management,Azure Active Directory,Azure Api Management,我们希望在Azure B2C模型中发布API,客户将使用我们的应用程序访问基于Docker Swarm的Azure容器服务发布的API。我们在这里的假设是,该模型将需要Azure B2C广告,而不是Azure广告 所有API调用都将有一个从B2C AD发出的OAuth令牌 我们想知道,在令牌到达Azure容器服务上的微服务之前,集中验证令牌的最佳方法是什么。我们使用API网关将API调用路由到正确的微服务,同时还使用API网关中的WAF功能。但是,我们意识到,API网关在将请求转发给微服务之前,

我们希望在
Azure B2C
模型中发布
API
,客户将使用我们的应用程序访问基于
Docker Swarm
Azure容器服务发布的API。我们在这里的假设是,该模型将需要
Azure B2C广告
,而不是Azure广告

所有API调用都将有一个从B2C AD发出的
OAuth
令牌

我们想知道,在令牌到达
Azure容器服务上的微服务之前,集中验证令牌的最佳方法是什么。我们使用
API网关
将API调用路由到正确的微服务,同时还使用
API网关
中的
WAF
功能。但是,我们意识到,API网关在将请求转发给微服务之前,不提供验证OAuth
令牌的方法

另外请注意,根据
Microsoft Documentation
中的建议,我们有两个租户,其中一个租户运行所有服务,如数据库和微服务,另一个租户托管Azure B2C广告


您能否建议最好的选项来实现
OAuth验证
,而不必在每个微服务中实现此验证。

您可以做的一件事是将Azure API管理服务置于客户端和服务之间,您可以选择使用validate jwt策略检查令牌和授权呼叫。

以下是步骤的简要概述:

  • 在Azure AD中注册应用程序(后端应用程序)以表示API
  • 在Azure AD中注册另一个应用程序(客户端应用程序),以表示需要调用API的客户端应用程序
  • 在Azure AD中,授予允许客户端应用调用后端应用的权限
  • 配置开发人员控制台以使用OAuth 2.0用户授权调用API
  • 添加validate jwt策略以验证每个传入请求的OAuth令牌
  • 有关详细步骤,请参考以下内容