Exercice – Créer un principal de service et une clé
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.
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.
Sélectionnez la liste déroulante Lancer le profil, puis sélectionnez Azure Cloud Shell (Bash).
Un nouvel interpréteur de commandes s’ouvre.
Connexion à Azure avec l’interface Azure CLI
Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :
az login
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.
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.
Sélectionnez la liste déroulante Lancer le profil, puis sélectionnez Azure Cloud Shell (PowerShell).
Un nouvel interpréteur de commandes s’ouvre.
Connectez-vous à Azure en utilisant Azure PowerShell
Dans le terminal Visual Studio Code, connectez-vous à Azure en exécutant la commande suivante :
Connect-AzAccount
Dans le navigateur qui s’ouvre, connectez-vous à votre compte Azure.
Créer un principal de service et une clé
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.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.
Exécutez ces commandes Azure PowerShell dans le terminal Visual Studio Code pour créer un principal de service :
$servicePrincipal = New-AzADServicePrincipal ` -DisplayName ToyWebsitePipeline
Exécutez la commande suivante pour obtenir la clé du principal de service :
$servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
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.
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 commandeaz 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.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.Déconnectez-vous du compte du principal de service à l’aide de la commande suivante :
az logout
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
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
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 valeurSubscriptionName
vide. Ces informations indiquent que le principal de service s’est connecté avec succès.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.