Připojení virtuálních sítí v různých předplatných s hlavními názvy služeb

Existují scénáře, kdy potřebujete propojit virtuální sítě v různých předplatných bez použití uživatelských účtů nebo účtů hostů. V tomto postupu virtuální sítě se dozvíte, jak vytvořit partnerský vztah mezi dvěma virtuálními sítěmi s hlavními názvy služeb (SPN) v různých předplatných. Partnerské vztahy virtuálních sítí mezi virtuálními sítěmi v různých předplatných a tenanty Microsoft Entra ID musí být v partnerském vztahu prostřednictvím Azure CLI nebo PowerShellu. V současné době není na webu Azure Portal k dispozici možnost peeringu virtuálních sítí s hlavními názvy služeb v různých předplatných.

Požadavky

  • Účet Azure se dvěma aktivními předplatnými a dvěma tenanty Microsoft Entra ID. Vytvoření účtu zdarma

  • Oprávnění účtu k vytvoření instančního objektu, přiřazení oprávnění aplikace a vytvoření prostředků v tenantovi Microsoft Entra ID přidruženém k jednotlivým předplatným.

  • Tento článek s postupy vyžaduje verzi 2.31.0 nebo novější azure CLI. Pokud používáte Azure Cloud Shell, je už nainstalovaná nejnovější verze.

Použité prostředky

SPN Skupina prostředků Předplatné nebo tenant Virtuální síť Umístění
spn-1-peer-vnet test-rg-1 subscription-1 vnet-1 USA – východ 2
spn-2-peer-vnet test-rg-2 subscription-2 vnet-2 Západní USA 2

Vytvoření prostředků předplatného 1

  1. Pomocí příkazu az sign-in se přihlaste k předplatnému 1 pomocí uživatelského účtu s oprávněními k vytvoření skupiny prostředků, virtuální sítě a hlavního názvu služby (SPN) v tenantovi Microsoft Entra ID přidruženém k předplatnému 1.

    az login
    
  2. Vytvořte skupinu prostředků pomocí příkazu az group create.

    az group create \
        --name test-rg-1 \
        --location eastus2  
    
  3. Pomocí příkazu az network vnet create vytvořte virtuální síť s názvem vnet-1 v předplatném 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
    

Vytvoření spn-1-peer-vnet

Vytvořte síť spn1-peer-vnet s oborem pro virtuální síť vytvořenou v předchozím kroku. Tento hlavní název služby (SPN) se přidá do rozsahu virtuální sítě 2 v budoucím kroku, aby to umožnilo partnerský vztah virtuálních sítí.

  1. Pomocí příkazu az network vnet show umístěte ID prostředku virtuální sítě, kterou jste vytvořili dříve v proměnné pro použití v pozdějším kroku.

    vnetid=$(az network vnet show \
                --resource-group test-rg-1 \
                --name vnet-1 \
                --query id \
                --output tsv)
    
  2. Pomocí příkazu az ad sp create-for-rbac vytvořte spn-1-peer-vnet s rolí Přispěvatel sítě vymezenou na virtuální síť vnet-1.

    az ad sp create-for-rbac \
        --name spn-1-peer-vnet \
        --role "Network Contributor" \
        --scope $vnetid
    

    Poznamenejte si výstup vytvoření v kroku. Heslo se tady zobrazí jenom v tomto výstupu. Zkopírujte heslo na bezpečné místo pro pozdější přihlášení.

    {
    "appId": "11112222-bbbb-3333-cccc-4444dddd5555",
    "displayName": "spn-1-peer-vnet",
    "password": "",
    "tenant": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"    
    }
    
  3. AppId instančního objektu se použije v následných krocích k dokončení konfigurace hlavního názvu služby ( SPN). Pomocí příkazu az ad sp list umístěte id hlavního názvu služby (SPN) do proměnné pro pozdější použití.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    
  4. Hlavní název služby (SPN) vytvořený v předchozím kroku musí mít identifikátor URI přesměrování pro dokončení schvalování procesu ověřování a musí být převeden na víceklientské použití. Pomocí příkazu az ad app update přidejte https://www.microsoft.com jako identifikátor URI přesměrování a povolte víceklienta v síti spn-1-peer-vnet.

    az ad app update \
        --id $appid1 \
        --sign-in-audience AzureADMultipleOrgs \
        --web-redirect-uris https://www.microsoft.com     
    
  5. Instanční objekt musí mít oprávnění User.Read k adresáři. Pomocí příkazu az ad app permission add and az ad app permission grant to add the Microsoft Graph permissions of User.Read to the service principal.

    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
    

Vytvoření prostředků předplatného 2

  1. Použití příkazu az login k přihlášení k předplatnému 2 pomocí uživatelského účtu s oprávněními k vytvoření skupiny prostředků, virtuální sítě a hlavního názvu služby (SPN) v tenantovi Microsoft Entra ID přidruženého k předplatnému 2

    az login
    
  2. Vytvořte skupinu prostředků pomocí příkazu az group create.

    az group create \
        --name test-rg-2 \
        --location westus2  
    
  3. Pomocí příkazu az network vnet create vytvořte virtuální síť s názvem vnet-2 v předplatném 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
    

Vytvoření spn-2-peer-vnet

Vytvořte síť spn-2-peer-vnet s oborem pro virtuální síť vytvořenou v předchozím kroku. Tento hlavní název služby (SPN) se přidá do rozsahu virtuální sítě 2 v budoucím kroku, aby to umožnilo partnerský vztah virtuálních sítí.

  1. Pomocí příkazu az network vnet show umístěte ID prostředku virtuální sítě, kterou jste vytvořili dříve v proměnné pro použití v pozdějším kroku.

    vnetid=$(az network vnet show \
                --resource-group test-rg-2 \
                --name vnet-2 \
                --query id \
                --output tsv)
    
  2. Pomocí příkazu az ad sp create-for-rbac vytvořte spn-2-peer-vnet s rolí Přispěvatel sítě vymezenou na virtuální síť vnet-2.

    az ad sp create-for-rbac \
        --name spn-2-peer-vnet \
        --role "Network Contributor" \
        --scope $vnetid
    

    Poznamenejte si výstup vytvoření v kroku. Zkopírujte heslo na bezpečné místo pro pozdější přihlášení. Heslo se znovu nezobrazí.

    Výstup vypadá podobně jako následující výstup.

    {
    "appId": "22223333-cccc-4444-dddd-5555eeee6666",
    "displayName": "spn-2-peer-vnet",
    "password": "",
    "tenant": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
    }    
    
  3. AppId instančního objektu se použije v následných krocích k dokončení konfigurace hlavního názvu služby ( SPN). Pomocí příkazu az ad sp list umístěte ID hlavního názvu služby do proměnné pro pozdější použití.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    
  4. Hlavní název služby (SPN) vytvořený v předchozím kroku musí mít identifikátor URI přesměrování pro dokončení schvalování procesu ověřování a musí být převeden na víceklientské použití. Pomocí příkazu az ad app update přidejte https://www.microsoft.com jako identifikátor URI přesměrování a povolte víceklienta v síti spn-2-peer-vnet.

    az ad app update \
        --id $appid2 \
        --sign-in-audience AzureADMultipleOrgs \
        --web-redirect-uris https://www.microsoft.com     
    
  5. Instanční objekt musí mít oprávnění User.Read k adresáři. Pomocí příkazu az ad app permission add and az ad app permission grantto add the Microsoft Graph permissions of User.Read to the service principal.

    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
    

Registrace spn-2-peer-vnet v předplatném-1 a přiřazení oprávnění k virtuální síti 1

Uživatelský účet s oprávněními správce v tenantovi Microsoft Entra ID musí dokončit proces přidání spn-2-vnet-peer do předplatného-1. Po dokončení může mít spn-2-vnet-peer přiřazená oprávnění k virtuální síti 1.

Registrace aplikace spn-2-peer-vnet v předplatném 1

Správce v tenantovi Microsoft Entra ID předplatného 1 musí schválit instanční objekt spn-2-peer-vnet , aby se mohl přidat do virtuální sítě vnet-1. Pomocí následujícího příkazu se přihlaste k předplatnému 2 a vyhledejte ID aplikace spn-2-peer-vnet.

  1. Pomocí příkazu az login se přihlaste k předplatnému-2.

    az login
    
  2. Pomocí příkazu az ad sp list získejte ID aplikace spn-2-peer-vnet. Poznamenejte si ID aplikace ve výstupu. Toto ID aplikace se používá v ověřovací adrese URL v dalších krocích.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    echo $appid2
    
  3. Pomocí appid pro spn-2-peer-vnet a ID tenanta Microsoft Entra ID pro předplatné-1 sestavte přihlašovací adresu URL pro schválení. Adresa URL je sestavená z následujícího příkladu:

    https://login.microsoftonline.com/entra-tenant-id-subscription-1/oauth2/authorize?client_id={$appid2}&response_type=code&redirect_uri=https://www.microsoft.com
    

    Adresa URL vypadá podobně jako v následujícím příkladu.

    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. Otevřete adresu URL ve webovém prohlížeči a přihlaste se pomocí správce v tenantovi Microsoft Entra ID v předplatném 1.

  5. Schvalte aplikaci spn-2-peer-vnet. Pokud ověřování proběhlo úspěšně, zobrazí se domovská stránka microsoft.com.

Přiřazení spn-2-peer-vnet k virtuální síti vnet-1

Jakmile správce schválí síť spn-2-peer-vnet, přidejte ji do virtuální sítě vnet-1 jako přispěvatel sítě.

  1. Pomocí příkazu az login se přihlaste k předplatnému-1.

    az login
    
  2. Pomocí příkazu az ad sp list vyhledejte id aplikace pro spn-2-peer-vnet a umístěte ji do proměnné pro pozdější použití.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    
  3. Pomocí příkazu az network vnet show získejte ID prostředku vnet-1 do proměnné pro použití v pozdějších krocích.

    vnetid=$(az network vnet show \
                --resource-group test-rg-1 \
                --name vnet-1 \
                --query id \
                --output tsv)
    
  4. Pomocí příkazu az role assignment vytvořte následující příkaz pro přidání spn-2-peer-vnet do vnet-1 jako přispěvatele sítě.

    az role assignment create --assignee $appid2 \
        --role "Network Contributor" \
        --scope $vnetid
    

Registrace spn-1-peer-vnet v předplatném 2 a přiřazení oprávnění k virtuální síti 2

Uživatelský účet s oprávněními správce v tenantovi Microsoft Entra ID musí dokončit proces přidání spn-1-peer-vnet do předplatného 2. Po dokončení je možné přiřadit oprávnění spn-1-peer-vnet-vnet-2.

Registrace aplikace spn-1-peer-vnet v předplatném 2

Správce v tenantovi Microsoft Entra ID předplatného 2 musí schválit instanční objekt spn-1-peer-vnet , aby ho bylo možné přidat do virtuální sítě vnet-2. Pomocí následujícího příkazu se přihlaste k předplatnému 1 a vyhledejte ID aplikace spn-1-peer-vnet.

  1. Pomocí příkazu az login se přihlaste k předplatnému-1.

    az login
    
  2. Pomocí příkazu az ad sp list získejte ID aplikace spn-1-peer-vnet. Poznamenejte si ID aplikace ve výstupu. Toto ID aplikace se používá v ověřovací adrese URL v dalších krocích.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    echo $appid1
    
  3. Pomocí appid pro spn-1-peer-vnet a ID tenanta Microsoft Entra ID pro předplatné-2 sestavte přihlašovací adresu URL pro schválení. Adresa URL je sestavená z následujícího příkladu:

    https://login.microsoftonline.com/entra-tenant-id-subscription-2/oauth2/authorize?client_id={$appid1}&response_type=code&redirect_uri=https://www.microsoft.com
    

    Adresa URL vypadá podobně jako v následujícím příkladu.

    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. Otevřete adresu URL ve webovém prohlížeči a přihlaste se pomocí správce v tenantovi Microsoft Entra ID v předplatném 2.

  5. Schvalte aplikaci spn-1-peer-vnet. Pokud ověřování proběhlo úspěšně, zobrazí se domovská stránka microsoft.com.

Přiřazení spn-1-peer-vnet k virtuální síti 2

Jakmile správce schválí síť spn-1-peer-vnet, přidejte ji do virtuální sítě vnet-2 jako přispěvatel sítě.

  1. Pomocí příkazu az login se přihlaste k předplatnému-2.

    az login
    
  2. Pomocí příkazu az ad sp list vyhledejte id aplikace pro spn-1-peer-vnet a umístěte ji do proměnné pro pozdější použití.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    
  3. Pomocí příkazu az network vnet show získejte ID prostředku vnet-2 do proměnné pro použití v pozdějších krocích.

    vnetid=$(az network vnet show \
                --resource-group test-rg-2 \
                --name vnet-2 \
                --query id \
                --output tsv)
    
  4. Pomocí příkazu az role assignment create přidejte spn-1-peer-vnet do vnet-2 jako přispěvatel sítě.

    az role assignment create --assignee $appid1 \
        --role "Network Contributor" \
        --scope $vnetid
    

Peer vnet-1 to vnet-2 a vnet-2 to vnet-1

Pokud chcete vytvořit partnerský vztah vnet-1 k virtuální síti 2, použijete k přihlášení k tenantovi Microsoft Entra ID přidruženému k předplatnému 1 ID instančního objektu a hesla.

Získání id aplikace spn-1-peer-vnet a spn-2-peer-vnet

Pro účely tohoto článku se přihlaste ke každému předplatnému a získejte ID aplikace každého hlavního názvu služby (SPN) a ID prostředku každé virtuální sítě. Tyto hodnoty použijte k přihlášení ke každému předplatnému pomocí hlavního názvu služby (SPN) v pozdějších krocích. Pokud obě strany už mají ID aplikace hlavních názvů služeb a ID prostředku virtuálních sítí, tyto kroky nejsou potřeba k navázání partnerského vztahu mezi virtuálními sítěmi.

  1. Pomocí příkazu az login se přihlaste k předplatnému-1 pomocí běžného uživatelského účtu.

    az login
    
  2. Pomocí příkazu az network vnet show získejte ID prostředku vnet-1 do proměnné pro použití v pozdějších krocích.

    vnetid1=$(az network vnet show \
                --resource-group test-rg-1 \
                --name vnet-1 \
                --query id \
                --output tsv)
    
  3. Pomocí příkazu az ad sp list získejte ID aplikace spn-1-peer-vnet a umístěte ji do proměnné pro použití v pozdějších krocích.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    
  4. Pomocí příkazu az login se přihlaste k předplatnému-2 pomocí běžného uživatelského účtu.

    az login
    
  5. Pomocí příkazu az network vnet show získejte ID prostředku vnet-2 do proměnné pro použití v pozdějších krocích.

    vnetid2=$(az network vnet show \
                --resource-group test-rg-2 \
                --name vnet-2 \
                --query id \
                --output tsv)
    
  6. Pomocí příkazu az ad sp list získejte ID aplikace spn-2-peer-vnet a umístěte ji do proměnné pro použití v pozdějších krocích.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    echo $appid2
    
  7. Pomocí příkazu az logout se odhlaste z relace Azure CLI pomocí následujícího příkazu. Nezavírejte terminál.

    az logout
    

Vytvoření partnerského vztahu mezi virtuálními sítěmi

  1. Pomocí příkazu az login se přihlaste k předplatnému-1 spn-1-peer-vnet. K dokončení příkazu potřebujete ID tenanta Microsoft Entra ID přidruženého k předplatnému 1 . Heslo se zobrazí v příkladu se zástupným symbolem proměnné. Nahraďte heslem, které jste si poznamenali při vytváření prostředku. Zástupný symbol nahraďte --tenant ID tenanta Microsoft Entra ID přidruženého k předplatnému 1.

    az login \
        --service-principal \
        --username $appid1 \
        --password $password \
        --tenant aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    
  2. Pomocí příkazu az login se přihlaste k předplatnému-2 pomocí spn-2-peer-vnet. K dokončení příkazu potřebujete ID tenanta Microsoft Entra ID přidruženého k předplatnému 2 . Heslo se zobrazí v příkladu se zástupným symbolem proměnné. Nahraďte heslem, které jste si poznamenali při vytváření prostředku. Zástupný symbol nahraďte --tenant ID tenanta Microsoft Entra ID přidruženého k předplatnému 2.

    az login \
        --service-principal \
        --username $appid2 \
        --password $password \
        --tenant bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f
    
  3. Pomocí příkazu az account set změňte kontext na předplatné-1.

    az account set --subscription "subscription-1-subscription-id-NOT-ENTRA-TENANT-ID"
    
  4. Pomocí příkazu az network vnet peering create vytvořte partnerský vztah virtuální sítě mezi vnet-1 a 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. Pomocí příkazu az network vnet peering list ověřte partnerský vztah virtuální sítě mezi vnet-1 a vnet-2.

    az network vnet peering list \
        --resource-group test-rg-1 \
        --vnet-name vnet-1 \
        --output table
    
  6. Pomocí příkazu az account set změňte kontext na předplatné 2.

    az account set --subscription "subscription-2-subscription-id-NOT-ENTRA-TENANT-ID"
    
  7. Pomocí příkazu az network vnet peering create vytvořte partnerský vztah virtuální sítě mezi vnet-2 a 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. Pomocí příkazu az network vnet peering list ověřte partnerský vztah virtuální sítě mezi vnet-2 a vnet-1.

    az network vnet peering list \
        --resource-group test-rg-2 \
        --vnet-name vnet-2 \
        --output table