Azure API网关和身份验证

时间:2018-02-13 11:29:17

标签: azure-active-directory azure-api-management

我们希望在API模型中发布Azure B2C,客户可以使用我们的应用访问使用基于Docker Swarm Azure Container Services发布的API。我们在此假设此模型将需要Azure B2C AD而不是Azure AD。

所有API调用都将从B2C AD发出OAuth令牌。

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

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

请您建议实施OAuth Verification的最佳选择,而不必在每个微服务中实现这一点。

2 个答案:

答案 0 :(得分:0)

您可以做的一件事是在您的客户端和服务之间放置Azure API Management Service,您可以选择使用validate-jwt策略来检查令牌并授权调用。

答案 1 :(得分:0)

以下是这些步骤的快速概述:

  1. 在Azure AD中注册一个代表API的应用程序(后端应用程序)。
  2. 在Azure AD中注册另一个应用程序(client-app)以表示需要调用API的客户端应用程序。
  3. 在Azure AD中,授予权限以允许客户端应用程序调用后端应用程序。
  4. 配置开发者控制台以使用OAuth 2.0用户授权来调用API。
  5. 添加validate-jwt策略以为每个传入请求验证OAuth令牌。

有关详细步骤,请参阅以下document