Sdílet prostřednictvím


Propojení 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

Hlavní název služby (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. K vytvoření přihlašovací adresy URL pro schválení použijte appid pro spn-2-peer-vnet a ID tenanta Microsoft Entra ID pro předplatné 1 . 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/aaaabbbb-0000-cccc-1111-dddd2222eeee/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/bbbbcccc-1111-dddd-2222-eeee3333ffff/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