Wyłączanie uwierzytelniania podstawowego we wdrożeniach usługi App Service

W tym artykule pokazano, jak wyłączyć uwierzytelnianie podstawowe (uwierzytelnianie nazwy użytkownika i hasła) podczas wdrażania kodu w aplikacjach usługi App Service.

Usługa App Service zapewnia podstawowe uwierzytelnianie dla klientów FTP i WebDeploy w celu nawiązania z nim połączenia przy użyciu poświadczeń wdrożenia. Te interfejsy API doskonale nadają się do przeglądania systemu plików witryny, przekazywania sterowników i narzędzi oraz wdrażania za pomocą programu MsBuild. Jednak przedsiębiorstwa często wymagają bezpieczniejszych metod wdrażania niż uwierzytelniania podstawowego, takiego jak uwierzytelnianie microsoft Entra ID (zobacz Typy uwierzytelniania według metod wdrażania w usłudze aplikacja systemu Azure Service). Firma Microsoft Entra korzysta z autoryzacji opartej na tokenach OAuth 2.0 i ma wiele korzyści i ulepszeń, które ułatwiają rozwiązywanie problemów z uwierzytelnianiem podstawowym. Na przykład tokeny dostępu OAuth mają ograniczony okres istnienia do użycia i są specyficzne dla aplikacji i zasobów, dla których są wydawane, więc nie można ich ponownie użyć. Firma Microsoft Entra umożliwia również wdrażanie z innych usług platformy Azure przy użyciu tożsamości zarządzanych.

Wyłączanie uwierzytelniania podstawowego

Dostępne są dwie różne kontrolki uwierzytelniania podstawowego. Szczególnie:

  • W przypadku wdrażania protokołu FTP uwierzytelnianie podstawowe jest kontrolowane przez flagę basicPublishingCredentialsPolicies/ftp (opcja Podstawowe poświadczenia publikowania uwierzytelniania FTP w portalu).
  • W przypadku innych metod wdrażania korzystających z uwierzytelniania podstawowego, takich jak Visual Studio, lokalne usługi Git i GitHub, uwierzytelnianie podstawowe jest kontrolowane przez flagę (opcja Poświadczenia publikowania uwierzytelniania podstawowego basicPublishingCredentialsPolicies/scm SCM w portalu).
  1. W witrynie Azure Portal wyszukaj i wybierz pozycję App Services, a następnie wybierz aplikację.

  2. W menu po lewej stronie aplikacji wybierz pozycję Ustawienia ogólne konfiguracji>.

  3. W przypadku poświadczeń publikowania uwierzytelniania podstawowego programu SCM lub poświadczeń publikowania uwierzytelniania podstawowego protokołu FTP wybierz pozycję Wyłączone, a następnie wybierz pozycję Zapisz.

    A screenshot showing how to disable basic authentication for Azure App Service in the Azure portal.

Aby upewnić się, że dostęp do protokołu FTP jest zablokowany, spróbuj nawiązać połączenie z aplikacją przy użyciu protokołu FTP/S. Powinien zostać wyświetlony 401 Unauthenticted komunikat.

Aby upewnić się, że dostęp do usługi Git jest zablokowany, spróbuj przeprowadzić lokalne wdrożenie usługi Git. Powinien zostać wyświetlony Authentication failed komunikat.

Wdrażanie bez uwierzytelniania podstawowego

Po wyłączeniu uwierzytelniania podstawowego metody wdrażania, które zależą od uwierzytelniania podstawowego, przestaną działać.

W poniższej tabeli pokazano, jak działają różne metody wdrażania, gdy uwierzytelnianie podstawowe jest wyłączone, a jeśli istnieje jakikolwiek mechanizm rezerwowy. Aby uzyskać więcej informacji, zobacz Typy uwierzytelniania według metod wdrażania w usłudze aplikacja systemu Azure Service.

Metoda wdrażania Gdy uwierzytelnianie podstawowe jest wyłączone
Wdrożenie programu Visual Studio Nie działa.
FTP Nie działa.
Lokalny system Git Nie działa.
Interfejs wiersza polecenia platformy Azure W interfejsie wiersza polecenia platformy Azure w wersji 2.48.1 lub nowszej następujące polecenia wracają do uwierzytelniania firmy Microsoft Entra:
- az webapp up
- az webapp deploy
- az webapp deployment source config-zip
- az webapp log deployment show
- az webapp log deployment list
- az webapp log download
- az webapp log tail
- az webapp browse
- az webapp create-remote-connection
- az webapp ssh
- az functionapp deploy
- az functionapp log deployment list
- az functionapp log deployment show
- az functionapp deployment source config-zip 
Wtyczka Maven lub wtyczka narzędzia Gradle Działa.
Usługa GitHub z usługą App Service Build Service Nie działa.
Funkcja GitHub Actions — Istniejący przepływ pracy funkcji GitHub Actions, który korzysta z uwierzytelniania podstawowego, nie może się uwierzytelnić. W Centrum wdrażania odłącz istniejącą konfigurację usługi GitHub i utwórz nową konfigurację funkcji GitHub Actions z opcją tożsamości przypisanej przez użytkownika.
— Jeśli istniejące wdrożenie funkcji GitHub Actions zostało skonfigurowane ręcznie, spróbuj zamiast tego użyć jednostki usługi lub identyfikatora OpenID Połączenie.
— W przypadku nowej konfiguracji funkcji GitHub Actions w Centrum wdrażania użyj opcji tożsamości przypisanej przez użytkownika.
Wdrażanie w kreatorze tworzenia Jeśli ustawienie uwierzytelniania podstawowego ma wartość Wyłącz, a ciągłe wdrażanie ma wartość Włącz, funkcja GitHub Actions jest skonfigurowana przy użyciu opcji tożsamości przypisanej przez użytkownika (OpenID Połączenie).
Usługa Azure Repos z usługą App Service Build Service Nie działa.
BitBucket Nie działa.
Usługa Azure Pipelines z zadaniem AzureWebApp Działa.
Usługa Azure Pipelines z zadaniem AzureRmWebAppDeployment — Użyj najnowszego zadania AzureRmWebAppDeployment, aby uzyskać zachowanie rezerwowe.
— Typ połączenia Profilu publikowania (PublishProfile) nie działa, ponieważ używa uwierzytelniania podstawowego. Zmień typ połączenia na Azure Resource Manager (AzureRM).
— W przypadku agentów innych niż Windows Pipelines uwierzytelnianie działa.
— W przypadku agentów systemu Windows może być konieczna modyfikacja metody wdrażania używanej przez zadanie . Gdy jest używane narzędzie Web Deploy (DeploymentType: 'webDeploy'), a uwierzytelnianie podstawowe jest wyłączone, zadanie jest uwierzytelniane przy użyciu tokenu firmy Microsoft Entra. Istnieją dodatkowe wymagania, jeśli nie używasz windows-latest agenta lub jeśli używasz własnego agenta. Aby uzyskać więcej informacji, zobacz Nie mogę wdrożyć w sieci Web w usłudze aplikacja systemu Azure przy użyciu uwierzytelniania microsoft Entra z poziomu agenta systemu Windows.
— Inne metody wdrażania działają, takie jak wdrażanie zip lub uruchamianie z pakietu.

Tworzenie roli niestandardowej bez uprawnień do uwierzytelniania podstawowego

Aby uniemożliwić użytkownikowi niższego poziomu włączenie uwierzytelniania podstawowego dla dowolnej aplikacji, możesz utworzyć rolę niestandardową i przypisać użytkownika do roli.

  1. W witrynie Azure Portal w górnym menu wyszukaj i wybierz subskrypcję, w której chcesz utworzyć rolę niestandardową.

  2. W obszarze nawigacji po lewej stronie wybierz pozycję Kontrola dostępu (IAM)>Dodaj>rolę niestandardową.

  3. Ustaw kartę Podstawowa zgodnie z życzeniem, a następnie wybierz pozycję Dalej.

  4. Na karcie Uprawnienia wybierz pozycję Wyklucz uprawnienia.

  5. Znajdź i wybierz pozycję Microsoft Web Apps, a następnie wyszukaj następujące operacje:

    Działanie opis
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp Poświadczenia publikowania FTP dla aplikacji usługi App Service.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm Poświadczenia publikowania SCM dla aplikacji usługi App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp Poświadczenia publikowania FTP dla miejsc usługi App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm Poświadczenia publikowania SCM dla miejsc usługi App Service.
  6. W ramach każdej z tych operacji wybierz pole zapisu, a następnie wybierz pozycję Dodaj. Ten krok dodaje operację jako NotActions dla roli.

    Karta Uprawnienia powinna wyglądać podobnie jak na poniższym zrzucie ekranu:

    A screenshot showing the creation of a custom role with all basic authentication permissions excluded.

  7. Wybierz pozycję Przeglądanie i tworzenie, a następnie wybierz pozycję Utwórz.

  8. Teraz możesz przypisać tę rolę do użytkowników organizacji.

Aby uzyskać więcej informacji, zobacz Tworzenie lub aktualizowanie ról niestandardowych platformy Azure przy użyciu witryny Azure Portal

Monitorowanie podstawowych prób uwierzytelniania

Wszystkie pomyślne i próby logowania są rejestrowane w typie dziennika usługi Azure Monitor AppServiceAuditLogs . Aby przeprowadzić inspekcję prób i pomyślnych logowań w usługach FTP i WebDeploy, wykonaj kroki opisane w temacie Wysyłanie dzienników do usługi Azure Monitor i włączanie wysyłania AppServiceAuditLogs typu dziennika.

Aby potwierdzić, że dzienniki są wysyłane do wybranych usług, spróbuj zalogować się za pośrednictwem protokołu FTP lub narzędzia WebDeploy. W poniższym przykładzie przedstawiono dziennik konta magazynu.

{
  "time": "2023-10-16T17:42:32.9322528Z",
  "ResourceId": "/SUBSCRIPTIONS/EF90E930-9D7F-4A60-8A99-748E0EEA69DE/RESOURCEGROUPS/MYRESOURCEGROUP/PROVIDERS/MICROSOFT.WEB/SITES/MY-DEMO-APP",
  "Category": "AppServiceAuditLogs",
  "OperationName": "Authorization",
  "Properties": {
    "User": "$my-demo-app",
    "UserDisplayName": "$my-demo-app",
    "UserAddress": "24.19.191.170",
    "Protocol": "FTP"
  }
}

Usługa Azure Policy może pomóc wymusić standardy organizacyjne i ocenić zgodność na dużą skalę. Za pomocą usługi Azure Policy można przeprowadzać inspekcję dla wszystkich aplikacji, które nadal korzystają z uwierzytelniania podstawowego, i korygować wszelkie niezgodne zasoby. Poniżej przedstawiono wbudowane zasady inspekcji i korygowania podstawowego uwierzytelniania w usłudze App Service:

Poniżej przedstawiono odpowiednie zasady dla miejsc:

Często zadawane pytania

Dlaczego otrzymuję ostrzeżenie w programie Visual Studio z informacją, że uwierzytelnianie podstawowe jest wyłączone?

Program Visual Studio wymaga podstawowego uwierzytelniania do wdrożenia w usłudze aplikacja systemu Azure. Ostrzeżenie przypomina, że konfiguracja aplikacji została zmieniona i nie można jej już wdrożyć. Uwierzytelnianie podstawowe w aplikacji zostało wyłączone samodzielnie lub zasady organizacji wymuszają wyłączenie uwierzytelniania podstawowego dla aplikacji usługi App Service.