Connectez des réseaux virtuels dans différents abonnements à l’aide de noms de principal du service
Il existe des scénarios où vous devez connecter des réseaux virtuels dans différents abonnements sans utiliser de comptes d’utilisateur ou d’invités. Dans ce guide pratique de réseau virtuel, découvrez comment appairer deux réseaux virtuels avec des noms de principal du service (SPN) dans différents abonnements. Les appairages de réseaux virtuels entre réseaux virtuels dans différents abonnements et locataires Microsoft Entra ID doivent être appairés via Azure CLI ou PowerShell. À l’heure actuelle, il n’existe pas d’option dans le portail Azure pour appairer des réseaux virtuels avec des SPN dans différents abonnements.
Prérequis
Un compte Azure avec deux abonnements actifs et deux locataires Microsoft Entra ID. Créez un compte gratuitement.
Autorisations de compte pour créer un principal de service, attribuer des autorisations d’application et créer des ressources dans le locataire Microsoft Entra ID associé à chaque abonnement.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Cet article pratique nécessite la version 2.31.0 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.
Ressources utilisées
SPN | Resource group | Abonnement/Locataire | Réseau virtuel | Emplacement |
---|---|---|---|---|
spn-1-peer-vnet | test-rg-1 | subscription-1 | vnet-1 | USA Est 2 |
spn-2-peer-vnet | test-rg-2 | subscription-2 | vnet-2 | USA Ouest 2 |
Créer des ressources abonnement-1
Utilisez az sign-in pour vous connecter à abonnement-1 avec un compte d’utilisateur disposant des autorisations nécessaires pour créer un groupe de ressources, un réseau virtuel et un SPN dans le locataire Microsoft Entra ID associé à abonnement-1
az login
Créez un groupe de ressources avec la commande az group create.
az group create \ --name test-rg-1 \ --location eastus2
Utilisez az network vnet create pour créer un réseau virtuel nommé vnet-1 dans abonnement-1.
az network vnet create \ --resource-group test-rg-1 \ --location eastus2 \ --name vnet-1 \ --address-prefixes 10.0.0.0/16 \ --subnet-name subnet-1 \ --subnet-prefixes 10.0.0.0/24
Créer spn-1-peer-vnet
Créez spn1-peer-vnet avec une étendue au réseau virtuel créé à l’étape précédente. Ce SPN est ajouté à l’étendue de vnet-2 dans une étape ultérieure pour permettre l’appairage de réseau virtuel.
Utilisez az network vnet show pour placer l’ID de ressource du réseau virtuel que vous avez créé précédemment dans une variable à utiliser à l’étape ultérieure.
vnetid=$(az network vnet show \ --resource-group test-rg-1 \ --name vnet-1 \ --query id \ --output tsv)
Utilisez az ad sp create-for-rbac pour créer spn-1-peer-vnet avec un rôle Contributeur réseau étendue au réseau virtuel vnet-1.
az ad sp create-for-rbac \ --name spn-1-peer-vnet \ --role "Network Contributor" \ --scope $vnetid
Notez la sortie de la création lors de l’étape. Le mot de passe est uniquement affiché ici dans cette sortie. Copiez le mot de passe pour une utilisation sécurisée lors des étapes de connexion ultérieures.
{ "appId": "11112222-bbbb-3333-cccc-4444dddd5555", "displayName": "spn-1-peer-vnet", "password": "", "tenant": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e" }
L’appId du principal du service est utilisé dans les étapes suivantes pour terminer la configuration du SPN. Utilisez az ad sp list pour placer l’appId du SPN dans une variable pour une utilisation ultérieure.
appid1=$(az ad sp list \ --display-name spn-1-peer-vnet \ --query [].appId \ --output tsv)
Le SPN créé à l’étape précédente doit avoir un URI de redirection pour terminer l’approbation du processus d’authentification et être converti en utilisation multilocataire. Utilisez az ad app update pour ajouter https://www.microsoft.com en tant qu’URI de redirection et activer multilocataire sur spn-1-peer-vnet.
az ad app update \ --id $appid1 \ --sign-in-audience AzureADMultipleOrgs \ --web-redirect-uris https://www.microsoft.com
Le principal du service doit disposer d’autorisations User.Read pour le répertoire. Utilisez az ad app permission add et az ad app permission grant pour ajouter les autorisation d’applications Microsoft Graph de User.Read au principal du service.
az ad app permission add \ --id $appid1 \ --api 00000003-0000-0000-c000-000000000000 \ --api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope az ad app permission grant \ --id $appid1 \ --api 00000003-0000-0000-c000-000000000000 \ --scope User.Read
Créer des ressources abonnement-2
Utilisez az login pour vous connecter à abonnement-2 avec un compte d’utilisateur disposant des autorisations nécessaires pour créer un groupe de ressources, un réseau virtuel et un SPN dans le locataire Microsoft Entra ID associé à abonnement-2
az login
Créez un groupe de ressources avec az group create.
az group create \ --name test-rg-2 \ --location westus2
Utilisez az network vnet create pour créer un réseau virtuel nommé vnet-2 dans abonnement-2.
az network vnet create \ --resource-group test-rg-2 \ --location westus2 \ --name vnet-2 \ --address-prefixes 10.1.0.0/16 \ --subnet-name subnet-1 \ --subnet-prefixes 10.1.0.0/24
Créer spn-2-peer-vnet
Créez spn2-peer-vnet avec une étendue au réseau virtuel créé à l’étape précédente. Ce SPN est ajouté à l’étendue de vnet-2 dans une étape ultérieure pour permettre l’appairage de réseau virtuel.
Utilisez az network vnet show pour placer l’ID de ressource du réseau virtuel que vous avez créé précédemment dans une variable à utiliser à l’étape ultérieure.
vnetid=$(az network vnet show \ --resource-group test-rg-2 \ --name vnet-2 \ --query id \ --output tsv)
Utilisez az ad sp create-for-rbac pour créer spn-2-peer-vnet avec un rôle Contributeur réseau étendue au réseau virtuel vnet-2.
az ad sp create-for-rbac \ --name spn-2-peer-vnet \ --role "Network Contributor" \ --scope $vnetid
Notez la sortie de la création lors de l’étape. Copiez le mot de passe pour une utilisation sécurisée lors des étapes de connexion ultérieures. Le mot de passe n’est plus affiché.
La sortie doit ressembler à la suivante.
{ "appId": "22223333-cccc-4444-dddd-5555eeee6666", "displayName": "spn-2-peer-vnet", "password": "", "tenant": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f" }
L’appId du principal du service est utilisé dans les étapes suivantes pour terminer la configuration du SPN. Utilisez az ad sp list pour placer l’ID du SPN dans une variable pour une utilisation ultérieure.
appid2=$(az ad sp list \ --display-name spn-2-peer-vnet \ --query [].appId \ --output tsv)
Le SPN créé à l’étape précédente doit avoir un URI de redirection pour terminer l’approbation du processus d’authentification et être converti en utilisation multilocataire. Utilisez az ad app update pour ajouter https://www.microsoft.com en tant qu’URI de redirection et activer multilocataire sur spn-2-peer-vnet.
az ad app update \ --id $appid2 \ --sign-in-audience AzureADMultipleOrgs \ --web-redirect-uris https://www.microsoft.com
Le principal du service doit disposer d’autorisations User.Read pour le répertoire. Utilisez az ad app permission add et az ad app permission grant pour ajouter les autorisation d’applications Microsoft Graph de User.Read au principal du service.
az ad app permission add \ --id $appid2 \ --api 00000003-0000-0000-c000-000000000000 \ --api-permissions e1fe6dd8-ba31-4d61-89e7-88639da4683d=Scope az ad app permission grant \ --id $appid2 \ --api 00000003-0000-0000-c000-000000000000 \ --scope User.Read
Inscrire spn-2-peer-vnet dans abonnement-1 et attribuer des autorisations à vnet-1
Un compte d’utilisateur disposant d’autorisations d’administrateur dans le locataire Microsoft Entra ID doit terminer le processus d’ajout de spn-2-vnet-peer à abonnement-1. Une fois le processus terminé, spn-2-vnet-peer peut recevoir des autorisations vers vnet-1.
Inscrire une application spn-2-peer-vnet dans abonnement-1
Un administrateur dans abonnement-1 locataire Microsoft Entra ID doit approuver le principal du service spn-2-peer-vnet, afin qu’il puisse être ajouté au réseau virtuel vnet-1. Utilisez la commande suivante pour vous connecter à abonnement-2 pour trouver l’appID de spn-2-peer-vnet.
Utilisez az login pour vous connecter à abonnement-2.
az login
Utilisez az ad sp list pour obtenir l’appId de spn-2-peer-vnet. Notez l’appID dans la sortie. Cet appID est utilisé dans l’URL d’authentification dans les étapes ultérieures.
appid2=$(az ad sp list \ --display-name spn-2-peer-vnet \ --query [].appId \ --output tsv) echo $appid2
Utilisez l’appid pour spn-2-peer-vnet et l’ID de locataire Microsoft Entra pour abonnement-1 pour générer l’URL de connexion pour l’approbation. L’URL est générée à partir de l’exemple suivant :
https://login.microsoftonline.com/entra-tenant-id-subscription-1/oauth2/authorize?client_id={$appid2}&response_type=code&redirect_uri=https://www.microsoft.com
L'URL est similaire à l’exemple suivant.
https://login.microsoftonline.com/c2d26d12-71cc-4f3b-8557-1fa18d077698/oauth2/authorize?client_id=22223333-cccc-4444-dddd-5555eeee6666&response_type=code&redirect_uri=https://www.microsoft.com
Ouvrez l’URL dans un navigateur web et connectez-vous avec un administrateur dans le locataire Microsoft Entra ID dans abonnement-1.
Approuver l’application spn-2-peer-vnet. La page d’accueil microsoft.com s’affiche si l’authentification a réussi.
Affecter spn-2-peer-vnet à vnet-1
Une fois que l’administrateur approuve spn-2-peer-vnet, ajoutez-le au réseau virtuel vnet-1 en tant que Contributeur de réseau.
Utilisez az login pour vous connecter à abonnement-1.
az login
Utilisez az ad sp list pour trouver l’appId pour spn-2-peer-vnet et le placer dans une variable pour une utilisation ultérieure.
appid2=$(az ad sp list \ --display-name spn-2-peer-vnet \ --query [].appId \ --output tsv)
Utilisez az network vnet show pour obtenir l’ID de ressource de vnet-1 dans une variable à utiliser dans les étapes ultérieures.
vnetid=$(az network vnet show \ --resource-group test-rg-1 \ --name vnet-1 \ --query id \ --output tsv)
Utilisez la commande suivante az role assignment create pour ajouter spn-2-peer-vnet à vnet-1 en tant que Contributeur réseau.
az role assignment create --assignee $appid2 \ --role "Network Contributor" \ --scope $vnetid
Inscrire spn-1-peer-vnet dans abonnement-2 et attribuer des autorisations à vnet-2
Un compte d’utilisateur disposant d’autorisations d’administrateur dans le locataire Microsoft Entra ID doit terminer le processus d’ajout de spn-1-peer-vnet à abonnement-2. Une fois le processus terminé, spn-1-vnet-peer peut recevoir des autorisations vers vnet-2.
Inscrire une application spn-1-peer-vnet dans abonnement-2
Un administrateur dans abonnement-2 locataire Microsoft Entra ID doit approuver le principal du service spn-1-peer-vnet, afin qu’il puisse être ajouté au réseau virtuel vnet-2. Utilisez la commande suivante pour vous connecter à abonnement-1 pour trouver l’appID de spn-1-peer-vnet.
Utilisez az login pour vous connecter à abonnement-1.
az login
Utilisez az ad sp list pour obtenir l’appId de spn-1-peer-vnet. Notez l’appID dans la sortie. Cet appID est utilisé dans l’URL d’authentification dans les étapes ultérieures.
appid1=$(az ad sp list \ --display-name spn-1-peer-vnet \ --query [].appId \ --output tsv) echo $appid1
Utilisez l’appid pour spn-1-peer-vnet et l’ID de locataire Microsoft Entra pour abonnement-2 pour générer l’URL de connexion pour l’approbation. L’URL est générée à partir de l’exemple suivant :
https://login.microsoftonline.com/entra-tenant-id-subscription-2/oauth2/authorize?client_id={$appid1}&response_type=code&redirect_uri=https://www.microsoft.com
L'URL est similaire à l’exemple suivant.
https://login.microsoftonline.com/24baaf57-f30d-4fba-a20e-822030f7eba3/oauth2/authorize?client_id=11112222-bbbb-3333-cccc-4444dddd5555&response_type=code&redirect_uri=https://www.microsoft.com
Ouvrez l’URL dans un navigateur web et connectez-vous avec un administrateur dans le locataire Microsoft Entra ID dans abonnement-2.
Approuver l’application spn-1-peer-vnet. La page d’accueil microsoft.com s’affiche si l’authentification a réussi.
Affecter spn-1-peer-vnet à vnet-2
Une fois que l’administrateur approuve spn-1-peer-vnet, ajoutez-le au réseau virtuel vnet-2 en tant que Contributeur de réseau.
Utilisez az login pour vous connecter à abonnement-2.
az login
Utilisez az ad sp list pour trouver l’appId pour spn-1-peer-vnet et le placer dans une variable pour une utilisation ultérieure.
appid1=$(az ad sp list \ --display-name spn-1-peer-vnet \ --query [].appId \ --output tsv)
Utilisez az network vnet show pour obtenir l’ID de ressource de vnet-2 dans une variable à utiliser dans les étapes ultérieures.
vnetid=$(az network vnet show \ --resource-group test-rg-2 \ --name vnet-2 \ --query id \ --output tsv)
Utilisez az role assignment create pour ajouter spn-1-peer-vnet à vnet-2 en tant que Contributeur réseau.
az role assignment create --assignee $appid1 \ --role "Network Contributor" \ --scope $vnetid
Appairer vnet-1 à vnet-2 et vnet-2 à vnet-1
Pour appairer vnet-1 à vnet-2, vous utilisez l’appId et le mot de passe du principal du service pour vous connecter au locataire Microsoft Entra ID associé à abonnement-1.
Obtenir l’appId de spn-1-peer-vnet et spn-2-peer-vnet
Dans le cadre de cet article, connectez-vous à chaque abonnement et obtenez l’appID de chaque SPN et l’ID de ressource de chaque réseau virtuel. Utilisez ces valeurs pour vous connecter à chaque abonnement avec le SPN dans les étapes ultérieures. Ces étapes ne sont pas nécessaires pour appairer les réseaux virtuels si les deux côtés ont déjà l’appID des SPN et l’ID de ressource des réseaux virtuels.
Utilisez az login pour vous connecter à abonnement-1 avec un compte d’utilisateur standard.
az login
Utilisez az network vnet show pour obtenir l’ID de ressource de vnet-1 dans une variable à utiliser dans les étapes ultérieures.
vnetid1=$(az network vnet show \ --resource-group test-rg-1 \ --name vnet-1 \ --query id \ --output tsv)
Utilisez az ad sp list pour trouver l’appId de spn-1-peer-vnet et le placer dans une variable pour une utilisation lors d’étapes ultérieures.
appid1=$(az ad sp list \ --display-name spn-1-peer-vnet \ --query [].appId \ --output tsv)
Utilisez az login pour vous connecter à abonnement-2 avec un compte d’utilisateur standard.
az login
Utilisez az network vnet show pour obtenir l’ID de ressource de vnet-2 dans une variable à utiliser dans les étapes ultérieures.
vnetid2=$(az network vnet show \ --resource-group test-rg-2 \ --name vnet-2 \ --query id \ --output tsv)
Utilisez az ad sp list pour trouver l’appId de spn-2-peer-vnet et le placer dans une variable pour une utilisation lors d’étapes ultérieures.
appid2=$(az ad sp list \ --display-name spn-2-peer-vnet \ --query [].appId \ --output tsv) echo $appid2
Utilisez az logout pour vous déconnecter de la session Azure CLI avec la commande suivante. Ne fermez pas le terminal.
az logout
Appairer les réseaux virtuels
Utilisez az login pour vous connecter à abonnement-1 avec spn-1-peer-vnet. Vous avez besoin de l’ID du locataire Microsoft Entra ID associé à abonnement-1 pour terminer la commande. Le mot de passe est illustré dans l’exemple avec un espace réservé variable. Remplacez par le mot de passe que vous avez noté lors de la création de la ressource. Remplacez l’espace réservé dans
--tenant
par l’ID du locataire Microsoft Entra ID associé à abonnement-1.az login \ --service-principal \ --username $appid1 \ --password $password \ --tenant aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
Utilisez az login pour vous connecter à abonnement-2 avec spn-2-peer-vnet. Vous avez besoin de l’ID du locataire Microsoft Entra ID associé à abonnement-2 pour terminer la commande. Le mot de passe est illustré dans l’exemple avec un espace réservé variable. Remplacez par le mot de passe que vous avez noté lors de la création de la ressource. Remplacez l’espace réservé dans
--tenant
par l’ID du locataire Microsoft Entra ID associé à abonnement-2.az login \ --service-principal \ --username $appid2 \ --password $password \ --tenant bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f
Utilisez az account set pour modifier le contexte en abonnement-1.
az account set --subscription "subscription-1-subscription-id-NOT-ENTRA-TENANT-ID"
Utilisez az network vnet peering create pour créer l’appairage de réseaux virtuels entre vnet-1 et vnet-2.
az network vnet peering create \ --name vnet-1-to-vnet-2 \ --resource-group test-rg-1 \ --vnet-name vnet-1 \ --remote-vnet $vnetid2 \ --allow-vnet-access
Utilisez az network vnet peering list pour vérifier l’appairage de réseaux virtuels entre vnet-1 et vnet-2.
az network vnet peering list \ --resource-group test-rg-1 \ --vnet-name vnet-1 \ --output table
Utilisez az account set pour modifier le contexte en abonnement-2.
az account set --subscription "subscription-2-subscription-id-NOT-ENTRA-TENANT-ID"
Utilisez az network vnet peering create pour créer l’appairage de réseaux virtuels entre vnet-2 et vnet-1.
az network vnet peering create \ --name vnet-2-to-vnet-1 \ --resource-group test-rg-2 \ --vnet-name vnet-2 \ --remote-vnet $vnetid1 \ --allow-vnet-access
Utilisez az network vnet peering list pour vérifier l’appairage de réseaux virtuels entre vnet-2 et vnet-1.
az network vnet peering list \ --resource-group test-rg-2 \ --vnet-name vnet-2 \ --output table