Deaktivieren der Standardauthentifizierung in App Service-Bereitstellungen

In diesem Artikel wird erläutert, wie Sie die Standardauthentifizierung (Authentifizierung per Benutzername und Kennwort) beim Bereitstellen von Code für App Service-Apps deaktivieren.

App Service stellt Standardauthentifizierung für FTP- und WebDeploy-Clients bereit, um mithilfe von Bereitstellungsanmeldeinformationen eine Verbindung damit herzustellen. Diese APIs eignen sich hervorragend zum Durchsuchen des Dateisystems Ihrer Website, zum Hochladen von Treibern und Dienstprogrammen und zum Bereitstellen mit MsBuild. Unternehmen erfordern jedoch häufig sicherere Bereitstellungsmethoden als die Standardauthentifizierung, z. B. Authentifizierung per Microsoft Entra ID (siehe Authentifizierungstypen nach Bereitstellungsmethoden in Azure App Service). Microsoft Entra verwendet die tokenbasierte OAuth 2.0-Autorisierung und bietet viele Vorteile und Verbesserungen, die dazu beitragen, die Probleme bei der Standardauthentifizierung zu beheben. OAuth-Zugriffstoken haben beispielsweise eine begrenzte Lebensdauer für die Nutzung und sind spezifisch für die Anwendungen und Ressourcen, für die sie ausgestellt werden, sodass sie nicht wiederverwendet werden können. Mit Microsoft Entra können Sie auch mithilfe verwalteter Identitäten aus anderen Azure-Diensten bereitstellen.

Deaktivieren der Standardauthentifizierung

Es stehen zwei verschiedene Steuerelemente für die Standardauthentifizierung zur Verfügung. Speziell:

  • Bei der FTP-Bereitstellung wird die Standardauthentifizierung durch das basicPublishingCredentialsPolicies/ftp-Flag (Option Veröffentlichungsanmeldeinformationen für die FTP-Standardauthentifizierung im Portal) gesteuert.
  • Bei anderen Bereitstellungsmethoden, welche die Standardauthentifizierung verwenden, z. B. Visual Studio, lokales Git und GitHub, wird die Standardauthentifizierung durch das basicPublishingCredentialsPolicies/scm-Flag (Option Veröffentlichungsanmeldeinformationen für die SCM-Standardauthentifizierung im Portal) gesteuert.
  1. Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus.

  2. Wählen Sie im linken Menü der App Konfiguration>Allgemeine Einstellungen aus.

  3. Wählen Sie für Veröffentlichungsanmeldeinformationen für die SCM-Standardauthentifizierung oder Veröffentlichungsanmeldeinformationen für die FTP-Standardauthentifizierung den Wert Aus und dann Speichern aus.

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

Um zu bestätigen, dass der FTP-Zugriff blockiert ist, versuchen Sie, eine Verbindung mit Ihrer App mithilfe von FTP/S herzustellen. Es sollte die Meldung 401 Unauthenticted angezeigt werden.

Um zu bestätigen, dass der Git-Zugriff blockiert ist, versuchen Sie eine lokale Git-Bereitstellung. Es sollte die Meldung Authentication failed angezeigt werden.

Bereitstellung ohne Standardauthentifizierung

Wenn Sie die Standardauthentifizierung deaktivieren, funktionieren Bereitstellungsmethoden, die auf der Standardauthentifizierung basieren, nicht mehr.

In der folgenden Tabelle wird gezeigt, wie sich verschiedene Bereitstellungsmethoden verhalten, wenn die Standardauthentifizierung deaktiviert ist und ob ein Fallbackmechanismus vorhanden ist. Weitere Informationen finden Sie unter Authentifizierungstypen nach Bereitstellungsmethoden in Azure App Service.

Bereitstellungsmethode Wenn die Standardauthentifizierung deaktiviert ist
Visual Studio-Bereitstellung Funktioniert nicht.
FTP Funktioniert nicht.
Git (lokal) Funktioniert nicht.
Azure CLI In Azure CLI 2.48.1 oder höher erfolgt ein Fallback auf die Microsoft Entra-Authentifizierung:
- 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 
Maven-Plugin oder Gradle-Plugin Funktioniert.
GitHub mit App Service-Builddienst Funktioniert nicht.
GitHub-Aktionen – Ein vorhandener GitHub Actions-Workflow, der Standardauthentifizierung verwendet, kann nicht authentifiziert werden. Trennen Sie im Bereitstellungscenter die vorhandene GitHub-Konfiguration, und erstellen Sie stattdessen eine neue GitHub Actions-Konfiguration mit der Option Benutzerseitig zugewiesene Identität.
– Wenn die vorhandene GitHub Actions-Bereitstellung manuell konfiguriert ist, versuchen Sie stattdessen, einen Dienstprinzipal oder OpenID Connect zu verwenden.
– Verwenden Sie für die neue GitHub Actions-Konfiguration im Bereitstellungscenter die Option Benutzerseitig zugewiesene Identität.
Bereitstellung im Erstellungs-Assistenten Wenn die Standardauthentifizierung auf Deaktivieren und Continuous Deployment auf Aktivieren festgelegt ist, wird GitHub Actions mit der Option Benutzerseitig zugewiesene Identität (OpenID Connect) konfiguriert.
Azure Repos mit App Service-Builddienst Funktioniert nicht.
BitBucket Funktioniert nicht.
Azure Pipelines mit AzureWebApp-Aufgabe Funktioniert.
Azure Pipelines mit AzureRmWebAppDeployment-Aufgabe – Verwenden Sie die aktuelle AzureRmWebAppDeployment-Aufgabe, um das Fallbackverhalten abzurufen.
– Der Verbindungstyp Veröffentlichungsprofil (PublishProfile) funktioniert nicht, da dafür die Standardauthentifizierung verwendet wird. Ändern Sie den Verbindungstyp in Azure Resource Manager (AzureRM).
– Bei Agents von Nicht-Windows-Pipelines funktioniert die Authentifizierung.
– Bei Windows-Agents muss die von der Aufgabe verwendete Bereitstellungsmethode möglicherweise geändert werden. Wenn Web Deploy verwendet wird (DeploymentType: 'webDeploy') und die Standardauthentifizierung deaktiviert ist, authentifiziert sich die Aufgabe mit einem Microsoft Entra-Token. Es gibt zusätzliche Anforderungen, wenn Sie den windows-latest-Agent nicht verwenden oder wenn Sie einen selbst gehosteten Agent verwenden. Weitere Informationen finden Sie unter Ich kann über meinen Windows-Agent nicht mit Web Deploy in meiner Azure App Service-Instanz mit Microsoft Entra-Authentifizierung bereitstellen.
– Andere Bereitstellungsmethoden funktionieren, z. B. ZIP-Bereitstellung oder Ausführen über ein Paket.

Erstellen einer benutzerdefinierten Rolle ohne Berechtigungen für die Standardauthentifizierung

Um zu verhindern, dass Benutzer*innen mit niedrigeren Berechtigungen die Standardauthentifizierung für eine App aktivieren, können Sie eine benutzerdefinierte Rolle erstellen und Benutzer*innen die Rolle zuweisen.

  1. Suchen Sie im Azure-Portal im oberen Menü nach dem Abonnement, in dem Sie die benutzerdefinierte Rolle erstellen möchten, und wählen Sie es aus.

  2. Wählen Sie im linken Navigationsbereich Zugriffssteuerung (IAM)>Hinzufügen>Benutzerdefinierte Rolle hinzufügen aus.

  3. Nehmen Sie auf der Registerkarte Grundlagen die gewünschten Einstellungen vor, und wählen Sie dann Weiter aus.

  4. Wählen Sie auf der Registerkarte Berechtigungen die Option Berechtigungen ausschließen aus.

  5. Suchen Sie nach Microsoft Web-Apps, wählen Sie den Eintrag aus, und suchen Sie dann nach den folgenden Vorgängen:

    Vorgang Beschreibung
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp FTP-Veröffentlichungsanmeldeinformationen für App Service-Apps
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm SCM-Veröffentlichungsanmeldeinformationen für App Service-Apps
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp FTP-Veröffentlichungsanmeldeinformationen für App Service-Slots
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm SCM-Veröffentlichungsanmeldeinformationen für App Service-Slots
  6. Aktivieren Sie unter jedem dieser Vorgänge das Feld für Schreiben, und wählen Sie dann Hinzufügen aus. In diesem Schritt wird der Vorgang als NotActions für die Rolle hinzugefügt.

    Die Registerkarte „Berechtigungen“ sollte wie im folgenden Screenshot aussehen:

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

  7. Klicken Sie aufÜberprüfen + erstellen und dann auf Erstellen.

  8. Sie können diese Rolle jetzt den Benutzer*innen Ihrer Organisation zuweisen.

Weitere Informationen finden Sie unter Erstellen oder Aktualisieren von benutzerdefinierten Azure-Rollen über das Azure-Portal.

Überwachen von versuchter Standardauthentifizierung

Alle erfolgreichen und versuchten Anmeldungen werden beim im Protokolltyp AppServiceAuditLogs von Azure Monitor protokolliert. Um die versuchten und erfolgreichen Anmeldungen bei FTP und WebDeploy zu überwachen, führen Sie die Schritte unter Senden von Protokollen an Azure Monitor aus, und aktivieren Sie den Versand des Protokolltyps AppServiceAuditLogs.

Um zu bestätigen, dass die Protokolle an die ausgewählten Dienste gesendet werden, versuchen Sie, sich über FTP oder WebDeploy anzumelden. Im folgenden Beispiel wird ein Speicherkontoprotokoll gezeigt:

{
  "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"
  }
}

Azure Policy unterstützt Sie bei der Erzwingung von Organisationsstandards sowie bei der Bewertung der Compliance im großen Stil. Sie können Azure Policy verwenden, um alle Apps zu überwachen, die weiterhin die Standardauthentifizierung verwenden, und alle nicht konformen Ressourcen zu behandeln. Im Folgenden sind integrierte Richtlinien für die Überwachung und Behandlung der Standardauthentifizierung für App Service aufgeführt:

Im Folgenden sind die entsprechenden Richtlinien für Slots aufgeführt:

Häufig gestellte Fragen

Warum erhalte ich eine Warnung in Visual Studio, die besagt, dass die Standardauthentifizierung deaktiviert ist?

Visual Studio erfordert die Standardauthentifizierung für die Bereitstellung in Azure App Service. Die Warnung erinnert Sie daran, dass sich die Konfiguration in Ihrer App geändert hat und Sie nicht mehr dafür bereitstellen können. Sie haben die Standardauthentifizierung für die App selbst deaktiviert, oder Ihre Organisationsrichtlinie erzwingt, dass die Standardauthentifizierung für App Service-Apps deaktiviert ist.