身份验证后重定向到http(应为https)

Mas*_*rfu 2 azure docker azure-active-directory azure-web-app-service

此处的起点是Microsoft的ASP.NET Core标准模板:我使用了Visual Studio => New Project => .NET Core=> ASP.NET Core Web应用程序

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

然后,无论我使用http还是https在本地运行它,身份验证过程中的重定向URL始终都指向https-完全正确。

当我将其部署到常规的Azure App Service中时,它具有相同的行为,这很好。

但是:如果我以此创建一个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"]
Run Code Online (Sandbox Code Playgroud)

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

我很确定这里有些东西我可以忽略。

Ita*_*cer 5

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

希望能帮助到你!