我有一个 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,请求按如下方式进行 ->流量管理器-> APIM(xyz.com) ->应用服务(xxx.azurewebsites.net)
在上述最后一点之后,AAD 身份验证。应该启动并在成功验证后获得访问令牌。它应该重定向用户并且页面应该加载。但事实并非如此。相反,我们得到一个空白页面,如果我们刷新它,那么只有这样它才会继续进行身份验证。并加载页面。
我们尝试将重定向 URI 设置为自定义域 (xyz.com) 以及 Azure 生成的基本应用服务名称 (xxx.azurewebsites.net)。
直接点击 API url(例如 xyz.com/api1)可以正常工作。它通过 APIM 并按预期响应。唯一的问题是该网站未按上述方式加载。
当我们将 APIM 排除在外,并再次将自定义域设置回应用服务时,一切都按预期工作。
我试图弄清楚我们是否以某种方式错误地配置了我们的资产,或者 APIM 是否不支持以这种方式传递网站。这里的任何想法/建议将不胜感激!