Partager via


Migrer une application pour utiliser des connexions sans mot de passe avec le service Stockage File d’attente Azure

Les demandes d’application adressées aux services Azure doivent être authentifiées à l’aide de configurations telles que des clés d’accès de compte ou de connexions sans mot de passe. Toutefois, vous devez hiérarchiser les connexions sans mot de passe dans vos applications lorsque cela est possible. Les méthodes d’authentification traditionnelles qui utilisent des mots de passe ou des clés secrètes créent des risques et des complications de sécurité. Visitez le hub de connexions sans mot de passe pour Azure Services pour découvrir l’avantage des connexions sans mot de passe.

Le tutoriel suivant explique comment migrer une application existante pour se connecter et utiliser des connexions sans mot de passe. Ces mêmes étapes de migration doivent s’appliquer, que vous utilisiez des clés d’accès, des chaînes de connexion ou une autre approche basée sur des secrets.

Configurer votre environnement de développement local

Les connexions sans mot de passe peuvent être configurées pour fonctionner dans les environnements locaux et hébergés par Azure. Dans cette section, vous allez appliquer des configurations permettant aux utilisateurs individuels de s’authentifier auprès de Stockage File d’attente Azure pour le développement local.

Attribuer des rôles d’utilisateur

En cas de développement local, vérifiez que le compte d’utilisateur qui accède au Stockage File d’attente Azure dispose des autorisations appropriées. Vous aurez besoin du rôle Contributeur aux données en file d’attente du stockage pour lire et écrire les données de la file d’attente. Pour vous attribuer ce rôle, vous aurez besoin du rôle Administrateur de l’accès utilisateur ou d’un autre rôle qui inclut l’action Microsoft.Authorization/roleAssignments/write. Vous pouvez attribuer des rôles RBAC Azure à un utilisateur à l’aide du Portail Azure, Azure CLI ou Azure PowerShell. Découvrez les étendues disponibles pour les attributions de rôles dans la page vue d’ensemble de l’étendue.

L’exemple suivant attribue le rôle Contributeur aux données en file d’attente du stockage à votre compte d’utilisateur. Ce rôle permet d’accéder en lecture et en écriture aux données de la file d’attente dans votre compte de stockage.

  1. Dans le Portail Azure, recherchez votre compte de stockage à l’aide de la barre de recherche principale ou de la navigation gauche.

  2. Dans la page vue d’ensemble du compte de stockage, sélectionnez Contrôle d’accès (IAM) dans le menu de gauche.

  3. Sur la page Contrôle d’accès (IAM), sélectionnez l’onglet Attributions de rôles.

  4. Sélectionnez + Ajouter dans le menu supérieur, puis Ajouter une attribution de rôle dans le menu déroulant résultant.

    Capture d’écran montrant comment attribuer un rôle.

  5. Utilisez la zone de recherche pour filtrer les résultats sur le rôle souhaité. Pour cet exemple, recherchez Contributeur aux données file d'attente du stockage, sélectionnez le résultat correspondant, puis choisissez Suivant.

  6. Sous Attribuer l’accès à, sélectionnez Utilisateur, groupe ou principal de service, puis sélectionnez + Sélectionner des membres.

  7. Dans la boîte de dialogue, recherchez votre nom d’utilisateur Microsoft Entra (généralement votre adresse e-mail utilisateur@domaine), puis choisissez Sélectionner en bas de la boîte de dialogue.

  8. Sélectionnez Vérifier + affecter pour accéder à la page finale, puis Vérifier + attribuer à nouveau pour terminer le processus.

Important

Dans la plupart des cas, la propagation de l’attribution de rôle dans Azure prend une ou deux minutes, mais dans de rares cas, elle peut prendre jusqu’à huit minutes. Si vous recevez des erreurs d’authentification lorsque vous exécutez votre code pour la première fois, patientez quelques instants et réessayez.

Se connecter localement à Azure

Pour le développement local, vérifiez que vous êtes authentifié avec le même compte Microsoft Entra auquel vous avez attribué le rôle. Vous pouvez vous authentifier au moyen d’outils de développement populaires, comme Azure CLI ou Azure PowerShell. Les outils de développement avec lesquels vous pouvez vous authentifier dépendent de la langue.

Connectez-vous à Azure via Azure CLI à l’aide de la commande suivante :

az login

Mettre à jour le code de l’application pour utiliser des connexions sans mot de passe

La bibliothèque de client Azure Identity, pour chacun des écosystèmes suivants, fournit une classe DefaultAzureCredential qui gère l’authentification sans mot de passe auprès d’Azure :

DefaultAzureCredential prend en charge plusieurs méthodes d’authentification. La méthode à utiliser est déterminée au moment de l’exécution. Cette approche permet à votre application d’utiliser différentes méthodes d’authentification dans différents environnements (local ou production) sans implémenter de code spécifique à l’environnement. Consultez les liens précédents pour connaître l’ordre et les emplacements dans lesquels DefaultAzureCredential recherche des informations d’identification.

  1. Pour utiliser DefaultAzureCredential dans une application .NET, installez le Azure.Identity package :

    dotnet add package Azure.Identity
    
  2. Ajoutez le code suivant en haut de votre fichier :

    using Azure.Identity;
    
  3. Identifiez les emplacements de votre code qui créent un objet QueueClient pour la connexion au Stockage File d’attente Azure. Mettez à jour votre code pour le faire correspondre à l’exemple suivant :

    DefaultAzureCredential credential = new();
    
    QueueClient queueClient = new(
         new Uri($"https://{storageAccountName}.queue.core.windows.net/{queueName}"),
         new DefaultAzureCredential());
    
  1. Veillez à mettre à jour le nom du compte de stockage dans l’URI de votre objet QueueClient. Vous trouverez le nom du compte de stockage dans la page de vue d’ensemble du portail Azure.

    Capture d’écran montrant comment trouver le nom du compte de stockage.

Exécutez l’application localement.

Après avoir apporté ces modifications de code, exécutez votre application localement. La nouvelle configuration doit récupérer vos informations d’identification locales, telles qu’Azure CLI, Visual Studio ou IntelliJ. Les rôles que vous avez attribués à votre utilisateur dans Azure permettent à votre application de se connecter au service Azure localement.

Configurer l’environnement d’hébergement Azure

Une fois que votre application est configurée pour utiliser des connexions sans mot de passe et s’exécute localement, le même code peut s’authentifier auprès des services Azure après son déploiement sur Azure. Les sections suivantes expliquent comment configurer une application déployée pour se connecter à Stockage File d’attente Azure à l’aide d’une identité managée. Les identités managées fournissent une identité managée automatiquement dans Microsoft Entra ID que les applications peuvent utiliser lors de la connexion à des ressources qui prennent en charge l’authentification Microsoft Entra. En savoir plus sur les identités managées :

Créer l’identité managée

Vous pouvez créer une identité managée affectée par l’utilisateur à l’aide du Portail Azure ou d’Azure CLI. Votre application utilise l’identité pour s’authentifier auprès d’autres services.

  1. À partir du Portail Azure, recherchez Identités managées. Sélectionnez le résultat Identités managées.
  2. Sélectionnez + Créer en haut de la page de présentation des Identités managées.
  3. Sous l’onglet Informations de base, entrez les valeurs suivantes :
    • Abonnement : sélectionnez l’option souhaitée.
    • Groupe de ressources : sélectionnez votre groupe de ressources souhaité.
    • Région : sélectionnez une région proche de votre emplacement.
    • Nom : entrez un nom reconnaissable pour votre identité, par exemple MigrationIdentity.
  4. Au bas de la page, sélectionnez Examiner et créer.
  5. Une fois les vérifications de validation terminées, sélectionnez Créer. Azure crée une identité affectée par l’utilisateur.

Une fois la ressource créée, sélectionnez Accéder à la ressource pour afficher les détails de l’identité managée.

Capture d’écran montrant comment créer une identité managée affectée par l’utilisateur.

Associer l’identité managée à votre application web

Vous devez configurer votre application web pour utiliser l’identité managée créée. Attribuez l’identité à votre application à l’aide du Portail Azure ou d’Azure CLI.

Effectuez les étapes suivantes dans le Portail Azure pour associer une identité à votre application. Ces mêmes étapes s’appliquent aux services Azure suivants :

  • Azure Spring Apps
  • Azure Container Apps
  • Machines virtuelles Azure
  • Azure Kubernetes Service
  1. Accédez à la page de présentation de votre application web front-end.

  2. Sélectionnez Identité dans la barre de navigation de gauche.

  3. Dans la page Identité, basculez vers l’onglet Utilisateur affecté.

  4. Sélectionnez + Ajouter pour ouvrir le menu volant Ajouter une identité managée affectée par l’utilisateur.

  5. Sélectionnez l’abonnement utilisé précédemment pour créer l’identité.

  6. Recherchez MigrationIdentity par nom et sélectionnez-le dans les résultats de la recherche.

  7. Sélectionnez Ajouter pour associer l’identité à votre application.

    Capture d’écran montrant comment créer une identité affectée par l’utilisateur.

Attribuer des rôles à l’identité managée

Ensuite, vous devez accorder des autorisations à l’identité managée que vous avez créée pour accéder à votre compte de stockage. Accordez des autorisations en affectant un rôle à l’identité managée, comme vous l’avez fait avec votre utilisateur de développement local.

  1. Accédez à la page vue d’ensemble de votre compte de stockage et sélectionnez Access Control (IAM) dans la navigation de gauche.

  2. Choisissez Ajouter une attribution de rôle

    Capture d’écran montrant comment ajouter un rôle à une identité managée.

  3. Dans la zone de recherche Rôle, recherchez Contributeur aux données en file d’attente du stockage, qui est un rôle commun utilisé pour gérer les opérations de données pour les files d’attente. Vous pouvez attribuer le rôle approprié pour votre cas d’usage. Sélectionnez le Contributeur aux données en file d’attente du stockage dans la liste et choisissez Suivant.

  4. Sur l’écran Ajouter une attribution de rôle, pour l’option Attribuer l’accès à l’option , sélectionnez Identité managée. Choisissez ensuite +Sélectionner des membres.

  5. Dans le menu volant, recherchez l’identité managée que vous avez créée par nom, puis sélectionnez-la dans les résultats. Choisissez Sélectionner pour fermer le menu volant.

    Capture d’écran montrant comment sélectionner l’identité managée affectée.

  6. Sélectionnez Suivant quelques fois jusqu’à ce que vous puissiez sélectionner Vérifier + attribuer pour terminer l’attribution de rôle.

Mettre à jour le code d’application

Vous devez configurer votre code d’application pour rechercher l’identité managée spécifique créée lors du déploiement sur Azure. Dans certains scénarios, la définition explicite de l’identité managée pour l’application empêche également d’autres identités d’environnement d’être détectées et utilisées automatiquement par accident.

  1. Dans la page de présentation de l’identité managée, copiez la valeur de l’ID client dans votre Presse-papiers.

  2. Appliquez les modifications spécifiques au langage suivantes :

    Créez un objet DefaultAzureCredentialOptions et transmettez-le à DefaultAzureCredential. Définissez la propriété ManagedIdentityClientId sur l’ID client.

    DefaultAzureCredential credential = new(
        new DefaultAzureCredentialOptions
        {
            ManagedIdentityClientId = managedIdentityClientId
        });
    
  3. Redéployez votre code vers Azure après avoir apporté cette modification afin que les mises à jour de configuration soient appliquées.

Tester l’application

Après avoir déployé le code mis à jour, naviguez vers votre application hébergée dans le navigateur. Votre application doit être en mesure de se connecter au compte de stockage avec succès. N’oubliez pas qu’il peut falloir plusieurs minutes pour que les attributions de rôle se propagent dans l’environnement Azure. Votre application est désormais configurée pour s’exécuter localement et dans un environnement de production sans que les développeurs n’aient à gérer les secrets dans l’application elle-même.

Étapes suivantes

Dans ce didacticiel, vous avez appris à migrer une application vers des connexions sans mot de passe.

Vous pouvez lire les ressources suivantes pour explorer les concepts abordés dans cet article plus en détails :