Désactiver l’authentification de base dans les déploiements App Service

Cet article vous montre comment désactiver l’authentification de base (authentification par nom d’utilisateur et mot de passe) lors du déploiement de code sur des applications App Service.

App Service fournit une authentification de base pour permettre aux clients FTP et WebDeploy de s’y connecter à l’aide des informations d’identification de déploiement. Ces API sont idéales pour parcourir le système de fichiers de votre site, charger des pilotes et des utilitaires, puis effectuer le déploiement avec MsBuild. Toutefois, les entreprises nécessitent souvent des méthodes de déploiement plus sécurisées que l’authentification de base, comme l’authentification Microsoft Entra ID (veuillez consulter la rubrique Types d’authentification par méthodes de déploiement dans Azure App Service). Microsoft Entra utilise l’autorisation basée sur des jetons OAuth 2.0, et présente de nombreux avantages et améliorations qui contribuent à réduire les problèmes liés à l’authentification de base. Par exemple, les jetons d’accès OAuth ont une durée de vie utilisable limitée et sont spécifiques aux applications et ressources pour lesquelles ils sont émis, si bien que leur réutilisation est impossible. Microsoft Entra vous permet également d’effectuer le déploiement à partir d’autres services Azure à l’aide d’identités managées.

Désactiver l’authentification de base

Deux contrôles différents pour l’authentification de base sont disponibles. Plus précisément :

  • Pour le déploiement FTP, l’authentification de base est contrôlée par l’indicateur basicPublishingCredentialsPolicies/ftp (option Informations d’identification de publication d’authentification de base FTP dans le portail).
  • Pour d’autres méthodes de déploiement qui utilisent l’authentification de base, comme Visual Studio, Git local et GitHub, l’authentification de base est contrôlée par l’indicateur basicPublishingCredentialsPolicies/scm (option Informations d’identification de publication d’authentification de base SCM dans le portail).
  1. Dans le portail Azure, recherchez et sélectionnez App Services, puis sélectionnez votre application.

  2. Dans le menu de gauche de l'application, sélectionnez Configuration>Paramètres généraux.

  3. Pour Informations d’identification de publication d’authentification de base SCM ou Informations d’identification de publication d’authentification de base FTP, sélectionnez Désactivé, puis Enregistrer.

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

Pour confirmer que l’accès FTP est bloqué, essayez de vous connecter à votre application via FTP/S. Un message 401 Unauthenticted doit apparaître.

Pour confirmer que l’accès Git est bloqué, essayez déploiement Git local. Un message Authentication failed doit apparaître.

Déploiement sans authentification de base

Lorsque vous désactivez l’authentification de base, les méthodes de déploiement qui dépendent de l’authentification de base cessent de fonctionner.

Le tableau suivant montre comment se comportent différentes méthodes de déploiement lorsque l’authentification de base est désactivée, et s’il existe un mécanisme de secours. Pour plus d’informations, consultez Types d’authentification par méthodes de déploiement dans Azure App Service.

Méthode de déploiement Lorsque l’authentification de base est désactivée
Déploiement Visual Studio Ne fonctionne pas.
FTP Ne fonctionne pas.
Git local Ne fonctionne pas.
Azure CLI Dans Azure CLI 2.48.1 ou version ultérieure, les commandes suivantes se replient sur l’authentification 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 
Plug-in Maven ou plug-in Gradle Fonctionne.
GitHub avec le service de build App Service Ne fonctionne pas.
Actions GitHub - Un workflow GitHub Actions existant qui utilise l’authentification de base ne peut pas s’authentifier. Dans le Centre de déploiement, déconnectez la configuration GitHub existante et créez une configuration GitHub Actions avec l’option Identité affectée par l’utilisateur à la place.
- Si le déploiement GitHub Actions existant est configuré manuellement, essayez d’utiliser un principal de service ou OpenID Connect à la place.
- Pour la nouvelle configuration GitHub Actions dans le Centre de déploiement, utilisez l’option Identité affectée par l’utilisateur.
Déploiement dans l’Assistant Création Lorsque Authentification de base est défini sur Désactiver et que Déploiement continu est défini sur Activer, GitHub Actions est configuré avec l’option Identité affectée par l’utilisateur (OpenID Connect).
Azure Repos avec le service de build App Service Ne fonctionne pas.
BitBucket Ne fonctionne pas.
Azure Pipelines avec la tâche AzureWebApp Fonctionne.
Azure Pipelines avec la tâche AzureRmWebAppDeployment - Utilisez la dernière tâche AzureRmWebAppDeployment pour obtenir le comportement de secours.
- Le type de connexion Profil de publication (PublishProfile) ne fonctionne pas, car il utilise l’authentification de base. Remplacez le type de connexion par Azure Resource Manager (AzureRM).
- Sur les agents de pipelines non-Windows, l’authentification fonctionne.
- Sur les agents Windows, la méthode de déploiement utilisée par la tâche devra peut-être être modifiée. Lorsque Web Deploy est utilisé (DeploymentType: 'webDeploy') et que l’authentification de base est désactivée, la tâche s’authentifie avec un jeton Microsoft Entra. Il existe des exigences supplémentaires si vous n’utilisez pas l’agent windows-latest ou si vous utilisez un agent auto-hébergé. Pour plus d’informations, consultez Je ne parviens pas à effectuer un déploiement web sur mon instance Azure App Service à l’aide de l’authentification Microsoft Entra à partir de mon agent Windows.
- D’autres méthodes de déploiement fonctionnent, telles que le déploiement de fichier zip ou l’exécution à partir d’un package.

Créer un rôle personnalisé sans autorisations pour l’authentification de base

Pour empêcher un utilisateur avec moins de privilèges de réduire l’activation de l’authentification de base pour n’importe quelle application, vous pouvez créer un rôle personnalisé, puis attribuer l’utilisateur au rôle.

  1. Dans le Portail Azure, dans le menu supérieur, recherchez, puis sélectionnez l’abonnement dans lequel vous souhaitez créer le rôle personnalisé.

  2. Dans le menu de navigation de gauche, sélectionnez Contrôle d’accès (IAM)>Ajouter>Ajouter un rôle personnalisé.

  3. Définissez l’onglet De base comme vous le souhaitez, puis sélectionnez Suivant.

  4. Sous l’onglet Autorisations, sélectionnez Exclure les autorisations.

  5. Recherchez, puis sélectionnez Microsoft Web Apps, puis recherchez les opérations suivantes :

    Operation Description
    microsoft.web/sites/basicPublishingCredentialsPolicies/ftp Informations d’identification de publication FTP pour les applications App Service.
    microsoft.web/sites/basicPublishingCredentialsPolicies/scm Informations d’identification de publication SCM pour les applications App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/ftp Informations d’identification de publication FTP pour les emplacements App Service.
    microsoft.web/sites/slots/basicPublishingCredentialsPolicies/scm Informations d’identification de publication SCM pour les emplacements App Service.
  6. Sous chacune de ces opérations, cochez la case Écriture, puis sélectionnez Ajouter. Cette étape ajoute l’opération comme NotActions pour le rôle.

    Votre onglet Autorisations doit ressembler à la capture d’écran suivante :

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

  7. Sélectionnez Vérifier + créer, puis sélectionnez Créer.

  8. Vous pouvez maintenant attribuer ce rôle aux utilisateurs de votre organisation.

Si vous souhaitez en savoir plus, veuillez consulter la rubrique Créer ou mettre à jour des rôles personnalisés Azure à l’aide du Portail Azure.

Surveiller les tentatives d’authentification de base

Toutes les connexions réussies et tentées sont enregistrées dans le type de journal Azure Monitor AppServiceAuditLogs. Pour auditer les connexions tentées et réussies sur FTP et WebDeploy, suivez les étapes de la rubrique Envoyer des journaux à Azure Monitor, puis activez l’expédition du type de journal AppServiceAuditLogs.

Pour confirmer que les journaux d’activité sont envoyés à vos services sélectionnés, essayez de vous connecter via FTP ou WebDeploy. L'exemple suivant illustre un journal de compte de stockage.

{
  "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 peut vous aider à appliquer des normes organisationnelles et à évaluer la conformité à l’échelle. Vous pouvez utiliser Azure Policy pour auditer les applications qui utilisent toujours l’authentification de base, puis corriger toutes les ressources non conformes. Les stratégies intégrées suivantes permettent d’auditer et de corriger l’authentification de base sur App Service :

Voici les stratégies correspondantes pour les emplacements :

Forum aux questions

Pourquoi est-ce que je reçois un avertissement dans Visual Studio indiquant que l’authentification de base est désactivée ?

Visual Studio nécessite l’authentification de base pour effectuer un déploiement sur Azure App Service. L’avertissement vous rappelle que la configuration de votre application a changé et que vous ne pouvez plus la déployer. Soit vous avez désactivé l’authentification de base sur l’application vous-même, soit votre stratégie d’organisation impose la désactivation de l’authentification de base pour les applications App Service.