Dela via


Anslut virtuella nätverk i olika prenumerationer med tjänstens huvudnamn

Det finns scenarier där du behöver ansluta virtuella nätverk i olika prenumerationer utan att använda användarkonton eller gästkonton. I det här virtuella nätverket får du lära dig hur du peerkopplar två virtuella nätverk med tjänsthuvudnamn (SPN) i olika prenumerationer. Peering för virtuella nätverk mellan virtuella nätverk i olika prenumerationer och Microsoft Entra ID-klienter måste peer-kopplas via Azure CLI eller PowerShell. För närvarande finns det inget alternativ i Azure-portalen för att peer-koppla virtuella nätverk med SPN i olika prenumerationer.

Förutsättningar

  • Ett Azure-konto med två aktiva prenumerationer och två Microsoft Entra ID-klienter. Skapa ett konto utan kostnad.

  • Kontobehörigheter för att skapa ett huvudnamn för tjänsten, tilldela appbehörigheter och skapa resurser i Microsoft Entra ID-klientorganisationen som är associerad med varje prenumeration.

  • Den här artikeln kräver version 2.31.0 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.

Resurser som används

SPN Resursgrupp Prenumeration/klientorganisation Virtuellt nätverk Plats
spn-1-peer-vnet test-rg-1 subscription-1 vnet-1 USA, östra 2
spn-2-peer-vnet test-rg-2 subscription-2 vnet-2 Västra USA 2

Skapa prenumeration 1-resurser

  1. Använd az sign-in för att logga in på subscription-1 med ett användarkonto med behörighet att skapa en resursgrupp, ett virtuellt nätverk och ett SPN i Microsoft Entra ID-klientorganisationen som är associerad med subscription-1

    az login
    
  2. Skapa en resursgrupp med az group create.

    az group create \
        --name test-rg-1 \
        --location eastus2  
    
  3. Använd az network vnet create för att skapa ett virtuellt nätverk med namnet vnet-1 i subscription-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
    

Skapa spn-1-peer-vnet

Skapa spn1-peer-vnet med ett omfång för det virtuella nätverk som skapades i föregående steg. Detta SPN läggs till i omfånget för vnet-2 i ett framtida steg för att tillåta den virtuella nätverks peer-datorn.

  1. Använd az network vnet show för att placera resurs-ID:t för det virtuella nätverk som du skapade tidigare i en variabel för användning i det senare steget.

    vnetid=$(az network vnet show \
                --resource-group test-rg-1 \
                --name vnet-1 \
                --query id \
                --output tsv)
    
  2. Använd az ad sp create-for-rbac för att skapa spn-1-peer-vnet med rollen Nätverksdeltagare som är begränsad till det virtuella nätverket vnet-1.

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

    Anteckna utdata från skapandet i steget. Lösenordet visas bara här i dessa utdata. Kopiera lösenordet till en säker plats för användning i de senare inloggningsstegen.

    {
    "appId": "11112222-bbbb-3333-cccc-4444dddd5555",
    "displayName": "spn-1-peer-vnet",
    "password": "",
    "tenant": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e"    
    }
    
  3. AppId för tjänstens huvudnamn används i följande steg för att slutföra konfigurationen av SPN. Använd az ad sp list för att placera appId för SPN i en variabel för senare användning.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    
  4. DET SPN som skapades i föregående steg måste ha en omdirigerings-URI för att slutföra godkännandet av autentiseringsprocessen och måste konverteras till användning av flera klientorganisationer. Använd az ad app update för att lägga https://www.microsoft.com till som en omdirigerings-URI och aktivera multitenant på spn-1-peer-vnet.

    az ad app update \
        --id $appid1 \
        --sign-in-audience AzureADMultipleOrgs \
        --web-redirect-uris https://www.microsoft.com     
    
  5. Tjänstens huvudnamn måste ha behörigheten User.Read till katalogen. Använd az ad app permission add and az ad app permission grant för att lägga till Microsoft Graph-behörigheterna user.Read i tjänstens huvudnamn.

    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
    

Skapa prenumeration 2-resurser

  1. Använd az login för att logga in på subscription-2 med ett användarkonto med behörighet att skapa en resursgrupp, ett virtuellt nätverk och ett SPN i Microsoft Entra ID-klientorganisationen som är associerad med subscription-2

    az login
    
  2. Skapa resursgrupp med az group create.

    az group create \
        --name test-rg-2 \
        --location westus2  
    
  3. Använd az network vnet create för att skapa ett virtuellt nätverk med namnet vnet-2 i subscription-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
    

Skapa spn-2-peer-vnet

Skapa spn-2-peer-vnet med ett omfång för det virtuella nätverk som skapades i föregående steg. Detta SPN läggs till i omfånget för vnet-2 i ett framtida steg för att tillåta den virtuella nätverks peer-datorn.

  1. Använd az network vnet show för att placera resurs-ID:t för det virtuella nätverk som du skapade tidigare i en variabel för användning i det senare steget.

    vnetid=$(az network vnet show \
                --resource-group test-rg-2 \
                --name vnet-2 \
                --query id \
                --output tsv)
    
  2. Använd az ad sp create-for-rbac för att skapa spn-2-peer-vnet med rollen Nätverksdeltagare som är begränsad till det virtuella nätverket vnet-2.

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

    Anteckna utdata från skapandet i steget. Kopiera lösenordet till en säker plats för användning i de senare inloggningsstegen. Lösenordet visas inte igen.

    Utdata ser ut ungefär som följande utdata.

    {
    "appId": "22223333-cccc-4444-dddd-5555eeee6666",
    "displayName": "spn-2-peer-vnet",
    "password": "",
    "tenant": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
    }    
    
  3. AppId för tjänstens huvudnamn används i följande steg för att slutföra konfigurationen av SPN. Använd az ad sp-listan för att placera ID:t för SPN i en variabel för senare användning.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    
  4. DET SPN som skapades i föregående steg måste ha en omdirigerings-URI för att slutföra godkännandet av autentiseringsprocessen och måste konverteras till användning av flera klientorganisationer. Använd az ad app update för att lägga https://www.microsoft.com till som en omdirigerings-URI och aktivera multitenant på spn-2-peer-vnet.

    az ad app update \
        --id $appid2 \
        --sign-in-audience AzureADMultipleOrgs \
        --web-redirect-uris https://www.microsoft.com     
    
  5. Tjänstens huvudnamn måste ha behörigheten User.Read till katalogen. Använd az ad app permission add and az ad app permission grantför att lägga till Microsoft Graph-behörigheterna user.Read i tjänstens huvudnamn.

    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
    

Registrera spn-2-peer-vnet i subscription-1 och tilldela behörigheter till vnet-1

Ett användarkonto med administratörsbehörigheter i Microsoft Entra ID-klientorganisationen måste slutföra processen med att lägga till spn-2-vnet-peer till subscription-1. När det är klart kan spn-2-vnet-peer tilldelas behörigheter till vnet-1.

Registrera spn-2-peer-vnet-appen i subscription-1

En administratör i microsoft entra-ID-klientorganisationen för subscription-1 måste godkänna tjänstens huvudnamn spn-2-peer-vnet så att det kan läggas till i det virtuella nätverket vnet-1. Använd följande kommando för att logga in på subscription-2 för att hitta appID för spn-2-peer-vnet.

  1. Använd az login för att logga in på subscription-2.

    az login
    
  2. Använd az ad sp list för att hämta appId för spn-2-peer-vnet. Observera appID i utdata. Det här appID:et används i autentiserings-URL:en i de senare stegen.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    echo $appid2
    
  3. Använd appid för spn-2-peer-vnet och Microsoft Entra ID-klient-ID för subcription-1 för att skapa inloggnings-URL:en för godkännandet. URL:en skapas från följande exempel:

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

    URL:en ser ut ungefär som exemplet nedan.

    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. Öppna URL:en i en webbläsare och logga in med en administratör i Microsoft Entra ID-klientorganisationen i subscription-1.

  5. Godkänn programmet spn-2-peer-vnet. Startsidan för microsoft.com visar om autentiseringen lyckades.

Tilldela spn-2-peer-vnet till vnet-1

När administratören har godkänt spn-2-peer-vnet lägger du till det i det virtuella nätverket vnet-1 som nätverksdeltagare.

  1. Använd az login för att logga in på subscription-1.

    az login
    
  2. Använd az ad sp list för att hitta appId för spn-2-peer-vnet och placera i en variabel för senare användning.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    
  3. Använd Använd az network vnet show för att hämta resurs-ID för vnet-1 till en variabel för användning i de senare stegen.

    vnetid=$(az network vnet show \
                --resource-group test-rg-1 \
                --name vnet-1 \
                --query id \
                --output tsv)
    
  4. Använd az role assignment create följande kommando för att lägga till spn-2-peer-vnet till vnet-1 som nätverksdeltagare.

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

Registrera spn-1-peer-vnet i subscription-2 och tilldela behörigheter till vnet-2

Ett användarkonto med administratörsbehörigheter i Microsoft Entra ID-klientorganisationen måste slutföra processen med att lägga till spn-1-peer-vnet i subscription-2. När det är klart kan spn-1-peer-vnet tilldelas behörigheter till vnet-2.

Registrera spn-1-peer-vnet-appen i subscription-2

En administratör i prenumeration 2 Microsoft Entra ID-klientorganisationen måste godkänna tjänstens huvudnamn spn-1-peer-vnet så att det kan läggas till i det virtuella nätverket vnet-2. Använd följande kommando för att logga in på subscription-1 för att hitta appID för spn-1-peer-vnet.

  1. Använd az login för att logga in på subscription-1.

    az login
    
  2. Använd az ad sp list för att hämta appId för spn-1-peer-vnet. Observera appID i utdata. Det här appID:et används i autentiserings-URL:en i de senare stegen.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    echo $appid1
    
  3. Använd appid för spn-1-peer-vnet och Microsoft Entra ID-klient-ID för subscription-2 för att skapa inloggnings-URL:en för godkännandet. URL:en skapas från följande exempel:

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

    URL:en ser ut ungefär som exemplet nedan.

    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. Öppna URL:en i en webbläsare och logga in med en administratör i Microsoft Entra ID-klientorganisationen i subscription-2.

  5. Godkänn programmet spn-1-peer-vnet. Startsidan för microsoft.com visar om autentiseringen lyckades.

Tilldela spn-1-peer-vnet till vnet-2

När administratören har godkänt spn-1-peer-vnet lägger du till det i det virtuella nätverket vnet-2 som nätverksdeltagare.

  1. Använd az login för att logga in på subscription-2.

    az login
    
  2. Använd az ad sp list för att hitta appId för spn-1-peer-vnet och placera i en variabel för senare användning.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    
  3. Använd az network vnet show för att hämta resurs-ID för vnet-2 till en variabel för användning i de senare stegen.

    vnetid=$(az network vnet show \
                --resource-group test-rg-2 \
                --name vnet-2 \
                --query id \
                --output tsv)
    
  4. Använd az role assignment create för att lägga till spn-1-peer-vnet i vnet-2 som nätverksdeltagare.

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

Peer vnet-1 till vnet-2 och vnet-2 till vnet-1

Om du vill peer-koppla vnet-1 till vnet-2 använder du appId och lösenord för tjänstens huvudnamn för att logga in på Microsoft Entra ID-klientorganisationen som är associerad med subscription-1.

Hämta appId för spn-1-peer-vnet och spn-2-peer-vnet

I den här artikeln loggar du in på varje prenumeration och hämtar appID för varje SPN och resurs-ID för varje virtuellt nätverk. Använd dessa värden för att logga in på varje prenumeration med SPN i de senare stegen. De här stegen krävs inte för att peer-koppla de virtuella nätverken om båda sidor redan har appID för SPN:erna och resurs-ID:t för de virtuella nätverken.

  1. Använd az login för att logga in på subscription-1 med ett vanligt användarkonto.

    az login
    
  2. Använd az network vnet show för att hämta resurs-ID för vnet-1 till en variabel för användning i de senare stegen.

    vnetid1=$(az network vnet show \
                --resource-group test-rg-1 \
                --name vnet-1 \
                --query id \
                --output tsv)
    
  3. Använd az ad sp-listan för att hämta appId för spn-1-peer-vnet och placera i en variabel för användning i de senare stegen.

    appid1=$(az ad sp list \
                --display-name spn-1-peer-vnet \
                --query [].appId \
                --output tsv)
    
  4. Använd az login för att logga in på subscription-2 med ett vanligt användarkonto.

    az login
    
  5. Använd az network vnet show för att hämta resurs-ID för vnet-2 till en variabel för användning i de senare stegen.

    vnetid2=$(az network vnet show \
                --resource-group test-rg-2 \
                --name vnet-2 \
                --query id \
                --output tsv)
    
  6. Använd az ad sp-listan för att hämta appId för spn-2-peer-vnet och placera i en variabel för användning i de senare stegen.

    appid2=$(az ad sp list \
                --display-name spn-2-peer-vnet \
                --query [].appId \
                --output tsv)
    echo $appid2
    
  7. Använd az logout för att logga ut från Azure CLI-sessionen med följande kommando. Stäng inte terminalen.

    az logout
    

Peer-koppla de virtuella nätverken

  1. Använd az login för att logga in på subscription-1 med spn-1-peer-vnet. Du behöver klientorganisations-ID:t för Microsoft Entra ID-klientorganisationen som är associerad med subscription-1 för att slutföra kommandot. Lösenordet visas i exemplet med en variabelplatshållare. Ersätt med det lösenord som du antecknade när resursen skapades. Ersätt platshållaren i --tenant med klient-ID:t för Microsoft Entra ID-klientorganisationen som är associerad med subscription-1.

    az login \
        --service-principal \
        --username $appid1 \
        --password $password \
        --tenant aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
    
  2. Använd az login för att logga in på subscription-2 med spn-2-peer-vnet. Du behöver klientorganisations-ID för Microsoft Entra ID-klientorganisationen som är associerad med subscription-2 för att slutföra kommandot. Lösenordet visas i exemplet med en variabelplatshållare. Ersätt med det lösenord som du antecknade när resursen skapades. Ersätt platshållaren i --tenant med klient-ID:t för Microsoft Entra ID-klientorganisationen som är associerad med subscription-2.

    az login \
        --service-principal \
        --username $appid2 \
        --password $password \
        --tenant bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f
    
  3. Använd az account set för att ändra kontexten till subscription-1.

    az account set --subscription "subscription-1-subscription-id-NOT-ENTRA-TENANT-ID"
    
  4. Använd az network vnet peering create för att skapa peering för virtuella nätverk mellan vnet-1 och 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. Använd az network vnet peering list to verify the virtual network peering between vnet-1 and vnet-2 .Use az network vnet peering list to verify the virtual network peering between vnet-1 and vnet-2.

    az network vnet peering list \
        --resource-group test-rg-1 \
        --vnet-name vnet-1 \
        --output table
    
  6. Använd az account set för att ändra kontexten till subscription-2.

    az account set --subscription "subscription-2-subscription-id-NOT-ENTRA-TENANT-ID"
    
  7. Använd az network vnet peering create för att skapa peering för virtuella nätverk mellan vnet-2 och 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. Använd az network vnet peering list to verify the virtual network peering between vnet-2 and vnet-1 .use az network vnet peering list to verify the virtual network peering between vnet-2 and vnet-1.

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