Partager via


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.

  • 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

  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
    
  2. Créez un groupe de ressources avec la commande az group create.

    az group create \
        --name test-rg-1 \
        --location eastus2  
    
  3. 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.

  1. 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)
    
  2. 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"    
    }
    
  3. 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)
    
  4. 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     
    
  5. 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

  1. 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
    
  2. Créez un groupe de ressources avec az group create.

    az group create \
        --name test-rg-2 \
        --location westus2  
    
  3. 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.

  1. 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)
    
  2. 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"
    }    
    
  3. 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)
    
  4. 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     
    
  5. 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.

  1. Utilisez az login pour vous connecter à abonnement-2.

    az login
    
  2. 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
    
  3. 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
    
  4. Ouvrez l’URL dans un navigateur web et connectez-vous avec un administrateur dans le locataire Microsoft Entra ID dans abonnement-1.

  5. 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.

  1. Utilisez az login pour vous connecter à abonnement-1.

    az login
    
  2. 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)
    
  3. 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)
    
  4. 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.

  1. Utilisez az login pour vous connecter à abonnement-1.

    az login
    
  2. 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
    
  3. 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
    
  4. Ouvrez l’URL dans un navigateur web et connectez-vous avec un administrateur dans le locataire Microsoft Entra ID dans abonnement-2.

  5. 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.

  1. Utilisez az login pour vous connecter à abonnement-2.

    az login
    
  2. 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)
    
  3. 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)
    
  4. 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.

  1. Utilisez az login pour vous connecter à abonnement-1 avec un compte d’utilisateur standard.

    az login
    
  2. 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)
    
  3. 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)
    
  4. Utilisez az login pour vous connecter à abonnement-2 avec un compte d’utilisateur standard.

    az login
    
  5. 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)
    
  6. 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
    
  7. 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

  1. 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
    
  2. 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
    
  3. Utilisez az account set pour modifier le contexte en abonnement-1.

    az account set --subscription "subscription-1-subscription-id-NOT-ENTRA-TENANT-ID"
    
  4. 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
    
  5. 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
    
  6. Utilisez az account set pour modifier le contexte en abonnement-2.

    az account set --subscription "subscription-2-subscription-id-NOT-ENTRA-TENANT-ID"
    
  7. 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
    
  8. 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