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.
Suchen Sie im Azure-Portal die Option App Services, wählen Sie sie aus, und wählen Sie anschließend Ihre App aus.
Wählen Sie im linken Menü der App Konfiguration>Allgemeine Einstellungen aus.
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.
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.
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.
Wählen Sie im linken Navigationsbereich Zugriffssteuerung (IAM)>Hinzufügen>Benutzerdefinierte Rolle hinzufügen aus.
Nehmen Sie auf der Registerkarte Grundlagen die gewünschten Einstellungen vor, und wählen Sie dann Weiter aus.
Wählen Sie auf der Registerkarte Berechtigungen die Option Berechtigungen ausschließen aus.
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 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:
Klicken Sie aufÜberprüfen + erstellen und dann auf Erstellen.
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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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" } }
Richtlinien im Zusammenhang mit der Standardauthentifizierung
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:
- Überwachungsrichtlinie für FTP
- Überwachungsrichtlinie für SCM
- Wartungsrichtlinie für FTP
- Wartungsrichtlinie für SCM
Im Folgenden sind die entsprechenden Richtlinien für Slots aufgeführt:
- Überwachungsrichtlinie für FTP
- Überwachungsrichtlinie für SCM
- Wartungsrichtlinie für FTP
- Wartungsrichtlinie für SCM
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.