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

时间:2018-11-17 17:16:32

标签: azure docker azure-active-directory azure-web-app-service

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

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

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

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

但是::如果我从中创建一个docker映像并将其部署到具有容器支持(在这种情况下基于linux)的Azure AppService,则身份验证重定向将始终针对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连接(并随其携带自己的证书),所以我没有在容器内摆弄自定义证书。

我很确定这里有些地方可以忽略。

1 个答案:

答案 0 :(得分:4)

看看Configure ASP.NET Core to work with proxy servers and load balancers,所讨论的配置可以帮助您解决 HTTP 重定向问题。

希望有帮助!