【问题标题】:Can Azure API Management be used as a pass through for an ASP.NET MVC website that also contains APIs?Azure API 管理是否可以用作也包含 API 的 ASP.NET MVC 网站的传递?
【发布时间】:2020-11-19 18:26:07
【问题描述】:

我有一个 ASP.NET MVC 应用程序 - 网站和 API 控制器。我想使用 Azure API 管理来管理这些 API,但保留相同的 URL,以便我们的消费者无缝连接。我们在此 Web 应用程序的应用程序服务上设置了自定义域,该应用程序当前用于提供站点和 API(例如网站:xyz.com、API:xyz.com/api1、xyz.com/api2 等。 )。我们还使用 AAD 进行身份验证。并将重定向 URI 设置到自定义域 (xyz.com)。目前一切正常。

在我们配置 API 管理以公开我们的 API 并可能将其用作传递之后,就会出现问题。为了确保在引入 API 管理后 URL 保持不变,我们将自定义域设置为 API 管理实例本身,并将其从应用程序中删除。服务。这就是我们当前设置的样子 -->

用户点击 xyz.com,请求如下 -> Traffic Manager -> APIM(xyz.com) -> App Service(xxx. azurewebsites.net)

在上述最后一点之后,AAD 身份验证。应该启动并在成功验证后获得访问令牌。它应该重定向用户并且页面应该加载。但事实并非如此。相反,我们得到一个空白页面,如果我们刷新它,那么只有这样它才会继续进行身份验证。并加载页面。

我们尝试将重定向 URI 设置为自定义域 (xyz.com) 以及 Azure 生成的基本应用服务名称 (xxx.azurewebsites.net)。

直接点击 API 网址(例如 xyz.com/api1)可以正常工作。它通过 APIM 并按预期响应。唯一的问题是网站无法按上述方式加载。

当我们将 APIM 排除在外,并将自定义域重新设置回应用服务时,一切正常。

我试图弄清楚我们是否以某种方式错误地配置了我们的资产以适应这种情况,或者 APIM 是否不支持以这种方式传递网站。这里的任何想法/建议将不胜感激!

【问题讨论】:

    标签: asp.net-web-api azure-api-management asp.net-apicontroller azure-traffic-manager apim


    【解决方案1】:

    哇,那是很多文字。 好的,让我们看看:

    访客 -> 流量管理器 -> APIM -> 后端(您的网站) - 好的。

    这就像使用 APIM 的一种常见方式,它应该可以工作。但是,您的政策可能设置不正确?

    您是否构建了您的产品/API/操作?您是否看到来自 APIM 的请求访问您的站点?你得到什么回应?

    当然,现在您需要定义和设置 APIM(产品、API 和每个操作),以将其传递到您的后端。这意味着如果您(作为访问者)需要列出所有产品,则需要通过 APIM 操作 (sed GetProducts )。您的请求将通过入站策略传递(根据需要调整和构建请求),将其传递给后端(使用自定义 API 传递给您的网站),然后响应将从后端发回给访问者。

    现在开始:为了保护 APIM 中的 Web API 后端,您可以将 OAuth 2.0 授权与 Azure AD 一起使用: 大图概览:

    1. 在 Azure AD 中注册一个应用程序(用于您的后端)以表示 API
    2. 在 Azure AD 中注册另一个应用程序(客户端)以表示将调用您的 API 的客户端应用程序
    3. 我想这是您授予权限以允许客户端应用调用后端应用的方法
    4. 当然,还要添加 validate-jwt 策略来验证每个传入请求的 OAuth 令牌

    在此处阅读 om https://docs.microsoft.com/en-us/azure/api-management/api-management-howto-protect-backend-with-aad

    【讨论】:

      猜你喜欢
      • 2015-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多