Øvelse – opret en tjenesteprincipal og -nøgle

Fuldført

Vigtig

Du skal bruge dit eget Azure-abonnement for at køre denne øvelse, og du kan pådrage dig gebyrer. Hvis du ikke allerede har et Azure-abonnement, kan du oprette en gratis konto, før du begynder.

Før du opretter udrulningspipelinen for dit legetøjsfirmas websted, skal du oprette en tjenesteprincipal og give den adgang til dit Azure-miljø. I denne øvelse skal du oprette den tjenesteprincipal, du skal bruge til din udrulningspipeline.

Under processen skal du:

  • Opret et program, en tjenesteprincipal og en nøgle i en enkelt handling.
  • Håndter nøglen sikkert.
  • Bekræft, at tjenesteprincipalen fungerer ved at logge på Azure ved hjælp af legitimationsoplysningerne.

Denne øvelse kræver, at du har tilladelse til at oprette programmer og tjenesteprincipaler i din Microsoft Entra-mappe. Hvis du ikke kan opfylde dette krav med din aktuelle Azure-konto, kan du få en gratis prøveversion og oprette et nyt Azure-abonnement og en ny lejer. Du kan også springe denne øvelse over.

Log på Azure

Hvis du vil arbejde med tjenesteprincipaler i Azure, skal du logge på din Azure-konto fra Visual Studio Code-terminalen.

  1. I menuen Terminal skal du vælge Ny terminal. Terminalvinduet åbnes normalt i den nederste halvdel af skærmen.

    Standardskallen er typisk pwsh-, som vist i højre side af terminalvinduet.

    Skærmbillede af terminalvinduet i Visual Studio Code, hvor pwsh vises som shell-indstillingen.

  2. Vælg rullelisten Start profil , og vælg derefter Azure Cloud Shell (Bash).

    Skærmbillede af terminalvinduet i Visual Studio Code. Rullelisten terminal shell og menupunktet Azure Cloud Shell (Bash) vises.

    Der åbnes en ny shell.

Log på Azure ved hjælp af kommandolinjegrænsefladen i Azure

  1. Log på Azure i Visual Studio Code-terminalen ved at køre følgende kommando:

    az login
    
  2. Log på din Azure-konto i den browser, der åbnes.

Hvis du vil installere denne skabelon på Azure, skal du logge på din Azure-konto fra Visual Studio Code-terminalen.

  1. I menuen Terminal skal du vælge Ny terminal. Terminalvinduet åbnes normalt i den nederste halvdel af skærmen.

    Standardskallen er typisk pwsh-, som vist i højre side af terminalvinduet.

    Skærmbillede af terminalvinduet i Visual Studio Code, hvor pwsh vises som shell-indstillingen.

  2. Vælg rullelisten Start profil , og vælg derefter Azure Cloud Shell (PowerShell).

    Skærmbillede af terminalvinduet i Visual Studio Code. Rullelisten terminal shell og menupunktet Azure Cloud Shell (PowerShell) vises.

    Der åbnes en ny shell.

Log på Azure ved hjælp af Azure PowerShell

  1. Log på Azure i Visual Studio Code-terminalen ved at køre følgende kommando:

    Connect-AzAccount
    
  2. Log på din Azure-konto i den browser, der åbnes.

Opret en tjenesteprincipal og -nøgle

  1. Kør denne Azure CLI-kommando i Visual Studio Code-terminalen for at oprette en tjenesteprincipal:

    az ad sp create-for-rbac --name ToyWebsitePipeline
    

    Hvis azure-kommandolinjegrænsefladen viser dig en fejl, hvor der står, at et andet program har det samme viste navn, betyder det, at en anden, der bruger din Microsoft Entra-lejer, har oprettet en tjenesteprincipal med det samme navn. Skift værdien --name til noget entydigt. Det påvirker ikke, hvordan du følger med i resten af øvelserne.

  2. Kig på JSON-outputtet fra den forrige kommando. Den indeholder følgende egenskaber:

    • appId: Tjenesteprincipalens program-id.
    • password: Tjenesteprincipalens nøgle.
    • tenant: Dit Microsoft Entra-lejer-id.

    Kopiér disse værdier et sikkert sted. Du skal snart bruge dem.

  1. Kør disse Azure PowerShell-kommandoer i Visual Studio Code-terminalen for at oprette en tjenesteprincipal:

    $servicePrincipal = New-AzADServicePrincipal `
      -DisplayName ToyWebsitePipeline
    
  2. Kør følgende kommando for at hente tjenesteprincipalens nøgle:

    $servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
    
  3. Kør følgende kommando for at få vist tjenesteprincipalens program-id, nøglen og dit Microsoft Entra-lejer-id:

    Write-Output "Service principal application ID: $($servicePrincipal.AppId)"
    Write-Output "Service principal key: $servicePrincipalKey"
    Write-Output "Your Azure AD tenant ID: $((Get-AzContext).Tenant.Id)"
    

    Kopiér værdierne et sikkert sted. Du skal snart bruge dem.

Advarsel

Outputtet fra de foregående kommandoer indeholder nøglen til din tjenesteprincipal. Vær forsigtig med, hvor du kører disse kommandoer. Kør dem f.eks. ikke i et miljø, hvor nogen kan få dem vist.

Test tjenesteprincipalen

Nu, hvor tjenesteprincipalen er blevet oprettet, kan du logge på ved hjælp af dens legitimationsoplysninger for at bekræfte, at den blev oprettet.

  1. Kør denne Azure CLI-kommando i Visual Studio Code-terminalen for at logge på ved hjælp af tjenesteprincipalens legitimationsoplysninger. Erstat pladsholderne med de værdier, du kopierede i det forrige trin.

    az login --service-principal \
      --username APPLICATION_ID \
      --password PASSWORD \
      --tenant TENANT_ID \
      --allow-no-subscriptions
    

    Bemærk, at du inkluderer argumentet --allow-no-subscriptions. Når du kører kommandoen az login, søger Kommandolinjegrænsefladen i Azure normalt efter de Azure-abonnementer, du kan få adgang til. Tjenesteprincipalen har endnu ikke fået adgang til noget, så du kan bruge argumentet --allow-no-subscriptions til at forhindre Azure CLI i at kontrollere abonnementslisten og vise en fejl.

  2. Kontrollér, at outputtet fra den forrige kommando er et JSON-objekt, som indeholder en user egenskab med tjenesteprincipalens program-id. Disse oplysninger angiver, at tjenesteprincipalen er logget på.

  3. Log af tjenesteprincipalens konto ved hjælp af følgende kommando:

    az logout
    
  1. Kør denne Azure PowerShell-kommando i Visual Studio Code-terminalen for sikkert at bede dig om legitimationsoplysningerne for tjenesteprincipalen. Brug tjenesteprincipalens program-id og nøgle fra det forrige trin til henholdsvis brugernavnet og adgangskoden.

    $credential = Get-Credential
    
  2. Kør denne Azure PowerShell-kommando i Visual Studio Code-terminalen for at logge på ved hjælp af tjenesteprincipalens legitimationsoplysninger.

    Connect-AzAccount -ServicePrincipal `
      -Credential $credential `
      -Tenant TENANT_ID
    
  3. Kontrollér, at outputtet fra den forrige kommando indeholder en Account egenskab med tjenesteprincipalens program-id og en tom SubscriptionName værdi. Disse oplysninger angiver, at tjenesteprincipalen er logget på.

  4. Log af tjenesteprincipalens konto ved hjælp af følgende kommando:

    Logout-AzAccount
    

Nu, hvor du har en tjenesteprincipal, kan du gå videre til næste fase: Tilladelse til at få adgang til dit Azure-miljø.