Exercice – Créer un principal de service et une clé

Effectué

Important

Vous avez besoin de votre propre abonnement Azure pour exécuter cet exercice et des frais pourraient vous être facturés. Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Avant de créer le pipeline de déploiement pour le site web de votre entreprise de jouets, vous devrez créer un principal de service et lui permettre l’accès à votre environnement Azure. Dans cet exercice, vous allez créer le principal de service que vous utiliserez pour votre pipeline de déploiement.

Pendant ce processus, vous allez :

  • Créez une application, un principal de service et une clé, en une seule opération.
  • Gérez la clé en toute sécurité.
  • Vérifiez que le principal de service fonctionne en vous connectant à Azure à l’aide de ses informations d’identification.

Pour effectuer cet exercice, vous devez être autorisé à créer des applications et des principaux de service dans votre répertoire Microsoft Entra. Si votre compte Azure actuel ne respecte pas ces exigences, vous pouvez bénéficier d’un essai gratuit et créer un nouvel abonnement et un nouveau locataire Azure. Vous pouvez également ignorer cet exercice.

Connexion à Azure

Pour utiliser des principaux de service sur Azure, vous devez vous connecter à votre compte Azure à partir du terminal Visual Studio Code.

  1. Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.

    L’interpréteur de commandes par défaut est généralement pwsh, comme indiqué sur le côté droit de la fenêtre de terminal.

    Capture d’écran de la fenêtre de terminal de Visual Studio Code, dans laquelle pwsh est l’option d’interpréteur de commandes.

  2. Sélectionnez la liste déroulante Lancer le profil, puis sélectionnez Azure Cloud Shell (Bash).

    Capture d’écran de la fenêtre du terminal Visual Studio Code. La liste déroulante de l’interpréteur de commandes de terminal et l’élément de menu Azure Cloud Shell (Bash) sont affichés.

    Un nouvel interpréteur de commandes s’ouvre.

Connexion à Azure avec l’interface Azure CLI

  1. Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :

    az login
    
  2. Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.

Pour déployer ce modèle sur Azure, connectez-vous à votre compte Azure à partir du terminal Visual Studio Code.

  1. Dans le menu Terminal, sélectionnez Nouveau terminal. La fenêtre de terminal s’ouvre généralement dans la moitié inférieure de votre écran.

    L’interpréteur de commandes par défaut est généralement pwsh, comme indiqué sur le côté droit de la fenêtre de terminal.

    Capture d’écran de la fenêtre de terminal de Visual Studio Code, dans laquelle pwsh est l’option d’interpréteur de commandes.

  2. Sélectionnez la liste déroulante Lancer le profil, puis sélectionnez Azure Cloud Shell (PowerShell).

    Capture d’écran de la fenêtre du terminal Visual Studio Code. La liste déroulante de l’interpréteur de commandes de terminal et l’élément de menu Azure Cloud Shell (PowerShell) sont affichés.

    Un nouvel interpréteur de commandes s’ouvre.

Connectez-vous à Azure en utilisant Azure PowerShell

  1. Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :

    Connect-AzAccount
    
  2. Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.

Créer un principal de service et une clé

  1. Exécutez cette commande Azure CLI dans le terminal Visual Studio Code pour créer un principal de service :

    az ad sp create-for-rbac --name ToyWebsitePipeline
    

    Si Azure CLI affiche une erreur indiquant qu’une autre application a le même nom d’affichage, cela signifie qu’une autre personne qui utilise votre locataire Microsoft Entra a créé un principal de service portant le même nom. Remplacez la valeur --name par un nom unique. Cela n’impacte pas la manière dont vous suivez les autres exercices.

  2. Examinez la sortie JSON de la commande précédente. Elle contient les propriétés suivantes :

    • appId : ID d’application du principal de service.
    • password : clé du principal de service.
    • tenant : Votre ID de locataire Microsoft Entra.

    Copiez ces valeurs dans un endroit sûr. Vous en aurez bientôt besoin.

  1. Exécutez ces commandes Azure PowerShell dans le terminal Visual Studio Code pour créer un principal de service :

    $servicePrincipal = New-AzADServicePrincipal `
      -DisplayName ToyWebsitePipeline
    
  2. Exécutez la commande suivante pour obtenir la clé du principal de service :

    $servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
    
  3. Exécutez la commande suivante pour afficher l’ID d’application du principal de service, la clé et votre ID de locataire Microsoft Entra :

    Write-Output "Service principal application ID: $($servicePrincipal.AppId)"
    Write-Output "Service principal key: $servicePrincipalKey"
    Write-Output "Your Azure AD tenant ID: $((Get-AzContext).Tenant.Id)"
    

    Copiez ces valeurs dans un endroit sûr. Vous en aurez bientôt besoin.

Avertissement

Les sorties des commandes précédentes contiennent la clé de votre principal de service. Soyez prudent quand vous exécutez ces commandes. Par exemple, ne les exécutez pas dans un environnement où une personne peut être en mesure de les afficher.

Tester le principal de service

Maintenant que le principal de service a été créé, vous pouvez vous connecter à l’aide de ses informations d’identification pour vérifier qu’il a été créé avec succès.

  1. Exécutez cette commande Azure CLI dans le terminal Visual Studio Code pour vous connecter à l’aide des informations d’identification du principal de service. Remplacez les espaces réservés par les valeurs que vous avez copiées lors de l’étape précédente.

    az login --service-principal \
      --username APPLICATION_ID \
      --password PASSWORD \
      --tenant TENANT_ID \
      --allow-no-subscriptions
    

    Notez que vous incluez l’argument --allow-no-subscriptions. Normalement, quand vous exécutez la commande az login, l’interface Azure CLI recherche les abonnements Azure auxquels vous avez accès. Le principal de service n’a encore permis aucun accès. Vous utilisez donc l’argument --allow-no-subscriptions pour empêcher l’interface Azure CLI de vérifier la liste des abonnements et d’afficher une erreur.

  2. Vérifiez que la sortie de la commande précédente est un objet JSON, qui comprend une propriété user avec l’ID d’application du principal de service. Ces informations indiquent que le principal de service s’est connecté avec succès.

  3. Déconnectez-vous du compte du principal de service à l’aide de la commande suivante :

    az logout
    
  1. Exécutez cette commande Azure PowerShell dans le terminal Visual Studio Code pour être invité en toute sécurité à renseigner les informations d’identification du principal de service. Utilisez la clé et l’ID d’application du principal de service de l’étape précédente, respectivement en tant que nom d’utilisateur et mot de passe.

    $credential = Get-Credential
    
  2. Exécutez cette commande Azure PowerShell dans le terminal Visual Studio Code pour vous connecter à l’aide des informations d’identification du principal de service.

    Connect-AzAccount -ServicePrincipal `
      -Credential $credential `
      -Tenant TENANT_ID
    
  3. Vérifiez que la sortie de la commande précédente comprend une propriété Account avec l’ID d’application du principal de service et une valeur SubscriptionName vide. Ces informations indiquent que le principal de service s’est connecté avec succès.

  4. Déconnectez-vous du compte du principal de service à l’aide de la commande suivante :

    Logout-AzAccount
    

Maintenant que vous disposez d’un principal de service opérationnel, vous pouvez passer à l’étape suivante : l’autoriser à accéder à votre environnement Azure.