Отправной точкой здесь является стандартный шаблон от Microsoft для ASP.NET Core: я использовал Visual Studio => Новый проект => .NET Core
=> Веб-приложение ASP.NET Core
Затем я установил флажок для поддержки HTTPS и настроил Work or School account
аутентификацию для существующего экземпляра Azure AD.
Тогда независимо от того, использую ли я http
или https
для его локального запуска, URL-адрес перенаправления во время аутентификации всегда указывает на https - что именно так и должно быть.
Когда я внедряю это в обычную службу приложений Azure, он ведет себя так же, и это нормально.
НО: Если я создам образ докера из этого и разверну его на 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 для разрыва соединения SSL (и в процессе работы несу свой собственный сертификат).
Я почти уверен, что здесь есть что-то, что я пропускаю.