首页 > 解决方案 > 身份验证后重定向到 http 时应该是 https

问题描述

这里的起点是 Microsoft 为 ASP.NET Core 提供的标准模板:我使用了 Visual Studio => New Project => .NET Core=> ASP.NET Core Web Application

然后,我勾选了 HTTPS 支持框并Work or School account针对现有 Azure AD 实例配置了身份验证。

那么无论我是在本地使用http还是https在本地运行它,身份验证期间的重定向 url 总是指向 https - 这正是它应该的样子。

当我将它部署到常规 Azure 应用服务中时,它具有相同的行为,这很好。

但是:如果我从中创建一个 docker 映像并将其部署到具有容器支持的 Azure AppService(在这种情况下基于 Linux),那么身份验证重定向总是与 http 相悖,这真的不是我想要的。

作为参考,这是用于构建映像的 Dockerfile:

FROM microsoft/dotnet:2.1-sdk AS build

WORKDIR /src
COPY HttpsTest/HttpsTest.csproj HttpsTest/

RUN dotnet restore HttpsTest/HttpsTest.csproj
COPY . .
WORKDIR /src/HttpsTest
RUN dotnet build HttpsTest.csproj -c Release -o /app

FROM build AS publish
RUN dotnet publish HttpsTest.csproj -c Release -o /app

FROM microsoft/dotnet:2.1-aspnetcore-runtime
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", "HttpsTest.dll"]

请注意,我并没有在容器内摆弄自定义证书,因为我使用 Azure App Service 来终止 SSL 连接(并在此过程中随身携带自己的证书)。

我很确定我在这里忽略了一些东西。

标签: azuredockerazure-active-directoryazure-web-app-service

解决方案


查看配置 ASP.NET Core 以使用代理服务器和负载平衡器,讨论的配置可能会帮助您解决HTTP重定向问题。

希望能帮助到你!


推荐阅读