Utiliser une identité managée affectée par le système de machine virtuelle Windows pour accéder à Resource Manager
Les identités managées pour les ressources Azure sont une fonctionnalité de Microsoft Entra ID. Les services Azure prenant en charge les identités managées pour ressources Azure sont soumis à leur propre chronologie. Assurez-vous de passer en revue l’état Disponibilité des identités gérées pour votre ressource et les problèmes connus avant de commencer.
Ce tutoriel vous indique comment accéder à l’API Azure Resource Manager à l’aide d’une machine virtuelle Windows sur laquelle l’identité managée affectée par le système est activée. Les identités managées pour ressources Azure sont gérées automatiquement par Azure et vous permettent de vous authentifier auprès des services prenant en charge l’authentification Microsoft Entra sans avoir à insérer des informations d’identification dans votre code. Vous allez apprendre à effectuer les actions suivantes :
- Accorder à votre machine virtuelle l’accès à un groupe de ressources dans Azure Resource Manager
- Obtenir un jeton d’accès à l’aide de l’identité de machine virtuelle et l’utiliser pour appeler Azure Resource Manager
Prérequis
- Connaissance de base des identités managées. Si vous n’êtes pas familiarisé de la fonctionnalité identités managées pour ressources Azure, consultez cette Vue d’ensemble.
- Un compte Azure. Inscrivez-vous pour obtenir un compte gratuit.
- Des autorisations « Propriétaire » avec l’étendue appropriée (votre abonnement ou groupe de ressources) pour effectuer les étapes de création de ressource et de gestion de rôles nécessaires. Si vous avez besoin d’aide concernant l’attribution de rôle, consultez Attribuer des rôles Azure pour gérer l’accès aux ressources de votre abonnement Azure.
- Vous avez également besoin d’une machine virtuelle Windows sur laquelle les identités managées attribuées par le système sont activées.
- Si vous devez créer une machine virtuelle pour ce tutoriel, vous pouvez suivre les instructions de l’article intitulé Créer une machine virtuelle avec une identité affectée par le système activée
Activer
L’activation d’une identité managée affectée par le système s’effectue en un seul clic. Vous pouvez l’activer au moment de la création d’une machine virtuelle ou plus tard dans les propriétés d’une machine virtuelle existante.
Pour activer une identité managée affectée par le système sur une nouvelle machine virtuelle :
Connectez-vous au portail Azure
Créer une machine virtuelle avec une identité affectée par le système activée
Accorder l’accès à un groupe de ressources dans Azure Resource Manager à votre machine virtuelle
Conseil
Les étapes décrites dans cet article peuvent varier légèrement en fonction du portail de départ.
À l’aide d’identités managées pour les ressources Azure, votre application peut obtenir des jetons d’accès pour s’authentifier auprès des ressources prenant en charge l’authentification Microsoft Entra. L’API Azure Resource Manager prend en charge l’authentification Microsoft Entra. Nous devons accorder à cette identité de machine virtuelle l’accès à une ressource dans Azure Resource Manager, dans ce cas un groupe de ressources. Nous affectons le rôle Lecteur à l’identité managée au niveau de l’étendue du groupe de ressources.
- Connectez-vous au portail Azure avec votre compte d’administrateur.
- Accédez à l’onglet de Groupes de ressources.
- Sous Groupe de ressources, sélectionnez le groupe de ressources auquel l’identité managée de machine virtuelle doit pouvoir accéder.
- Dans le volet gauche, sélectionnez Contrôle d’accès (IAM).
- Sélectionnez Ajouter, puis sélectionnez Ajouter une attribution de rôle.
- Sous l’onglet Rôle, sélectionnez Lecteur. Ce rôle permet de voir toutes les ressources, mais ne vous autorise pas à apporter des modifications.
- Sous l’onglet Membres, sous Affecter l’accès à, sélectionnez Identité managée. Puis, sélectionnez + Sélectionner des membres.
- Vérifiez que l’abonnement approprié est listé dans la liste déroulante Abonnement. Et pour Groupe de ressources, sélectionnez Tous les groupes de ressources.
- Dans la liste déroulante Gérer l’identité, sélectionnez Machine virtuelle.
- Enfin, choisissez votre machine virtuelle Windows dans la liste déroulante dans Sélectionner et sélectionnez Enregistrer.
Obtenir un jeton d’accès à l’aide de l’identité managée affectée par le système de machine virtuelle et utiliser celui-ci pour appeler Azure Resource Manager
Vous devrez utiliser PowerShell dans cette partie. Si vous n’avez pas installé PowerShell, vous pouvez le télécharger ici.
Dans le portail, accédez à Machines virtuelles et accédez à votre machine virtuelle Windows. Puis, dans Vue d’ensemble, sélectionnez Connecter.
Entrez le Nom d’utilisateur et le Mot de passe que vous avez ajoutés lorsque vous avez créé la machine virtuelle Windows.
Maintenant que vous avez créé une Connexion Bureau à distance avec la machine virtuelle, ouvrez PowerShell dans la session à distance.
À l’aide de l’applet de commande Invoke-WebRequest, envoyez une requête au point de terminaison d’identités managées pour ressources Azure afin d’obtenir un jeton d’accès pour Azure Resource Manager.
$response = Invoke-WebRequest -Uri 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/' -Method GET -Headers @{Metadata="true"}
Remarque
La valeur du paramètre « ressource » doit correspondre exactement à ce qui est attendu par Microsoft Entra ID. Lorsque vous utilisez l’ID de ressource Azure Resource Manager, vous devez inclure la barre oblique de fin à l’URI.
Ensuite, extrayez la réponse complète qui est stockée sous forme de chaîne au format JavaScript Objet Notation (JSON) dans l’objet $response.
$content = $response.Content | ConvertFrom-Json
Ensuite, extrayez le jeton d’accès de la réponse.
$ArmToken = $content.access_token
Enfin, appelez Azure Resource Manager à l’aide du jeton d’accès. Dans cet exemple, nous utilisons également l’applet de commande Invoke-WebRequest pour appeler Azure Resource Manager et inclure le jeton d’accès dans l’en-tête d’autorisation.
(Invoke-WebRequest -Uri https://management.azure.com/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP>?api-version=2016-06-01 -Method GET -ContentType "application/json" -Headers @{ Authorization ="Bearer $ArmToken"}).content
Notes
L’URL respecte la casse, par conséquent, assurez-vous que la casse est identique à celle utilisée précédemment lorsque vous avez nommé le groupe de ressources, et que la majuscule « G » dans « resourceGroups » est correcte.
La commande suivante renvoie les détails du groupe de ressources :
{"id":"/subscriptions/98f51385-2edc-4b79-bed9-7718de4cb861/resourceGroups/DevTest","name":"DevTest","location":"westus","properties":{"provisioningState":"Succeeded"}}
Étapes suivantes
Dans ce démarrage rapide, vous avez appris à utiliser une identité managée affectée par le système pour accéder à l’API Azure Resource Manager. Pour en savoir plus sur Azure Resource Manager, consultez :