Oefening: een service-principal en -sleutel maken

Voltooid

Belangrijk

U hebt uw eigen Azure-abonnement nodig om deze oefening te kunnen uitvoeren. Dit kan kosten met zich meebrengen. Als u nog geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

Voordat u de implementatiepijplijn voor de website van uw speelgoedbedrijf maakt, moet u een service-principal maken en deze toegang verlenen tot uw Azure-omgeving. In deze oefening maakt u de service-principal die u gaat gebruiken voor uw implementatiepijplijn.

Tijdens het proces gaat u het volgende doen:

  • Maak een toepassing, service-principal en sleutel in één bewerking.
  • De sleutel veilig afhandelen.
  • Controleer of de service-principal werkt door u aan te melden bij Azure met behulp van de referenties.

Voor deze oefening moet u gemachtigd zijn om toepassingen en service-principals te maken in uw Microsoft Entra-directory. Als u niet aan deze vereiste kunt voldoen met uw huidige Azure-account, kunt u een gratis proefversie krijgen en een nieuw Azure-abonnement en een nieuwe Azure-tenant maken. U kunt deze oefening ook overslaan.

Aanmelden bij Azure

Als u wilt werken met service-principals in Azure, moet u zich aanmelden bij uw Azure-account vanuit de Visual Studio Code-terminal.

  1. Selecteer nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.

  2. De standaardshell is meestal pwsh, zoals wordt weergegeven aan de rechterkant van het terminalvenster.

    Screenshot of the Visual Studio Code terminal window, with p w s h shown as the shell option.

  3. Selecteer de vervolgkeuzelijst shell en selecteer vervolgens Azure Cloud Shell (bash).

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and Azure Cloud Shell (bash) selected.

  4. Er wordt een nieuwe shell geopend.

Aanmelden bij Azure met behulp van de Azure CLI

  1. Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:

    az login
    
  2. Meld u aan bij uw Azure-account in de browser die wordt geopend.

Als u deze sjabloon wilt implementeren in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal.

  1. Selecteer nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.

  2. De standaardshell is meestal pwsh, zoals wordt weergegeven aan de rechterkant van het terminalvenster.

    Screenshot of the Visual Studio Code terminal window, with p w s h shown as the shell option.

  3. Selecteer de vervolgkeuzelijst shell en selecteer vervolgens Azure Cloud Shell (PowerShell).

    Screenshot of the Visual Studio Code terminal window, with the terminal shell dropdown shown and Azure Cloud Shell (PowerShell) selected.

  4. Er wordt een nieuwe shell geopend.

Aanmelden bij Azure met behulp van Azure PowerShell

  1. Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:

    Connect-AzAccount
    
  2. Meld u aan bij uw Azure-account in de browser die wordt geopend.

Een service-principal en -sleutel maken

  1. Voer deze Azure CLI-opdracht uit in de Visual Studio Code-terminal om een service-principal te maken:

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

    Als in de Azure CLI een fout wordt weergegeven waarin staat dat een andere toepassing dezelfde weergavenaam heeft, betekent dit dat iemand anders die uw Microsoft Entra-tenant gebruikt, een service-principal met dezelfde naam heeft gemaakt. Wijzig de --name waarde in iets unieks. Dit heeft geen invloed op hoe u de rest van de oefeningen volgt.

  2. Bekijk de JSON-uitvoer van de vorige opdracht. Het bevat de volgende eigenschappen:

    • appId: de toepassings-id van de service-principal.
    • password: De sleutel van de service-principal.
    • tenant: uw Microsoft Entra-tenant-id.

    Kopieer deze waarden ergens veilig. U gebruikt ze binnenkort.

  1. Voer deze Azure PowerShell-opdrachten uit in de Visual Studio Code-terminal om een service-principal te maken:

    $servicePrincipal = New-AzADServicePrincipal `
      -DisplayName ToyWebsitePipeline
    
  2. Voer de volgende opdracht uit om de sleutel van de service-principal op te halen:

    $servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
    
  3. Voer de volgende opdracht uit om de toepassings-id van de service-principal, de sleutel en uw Microsoft Entra-tenant-id weer te geven:

    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)"
    

    Kopieer de waarden ergens veilig. U gebruikt ze binnenkort.

Waarschuwing

De uitvoer van de voorgaande opdrachten bevat de sleutel voor uw service-principal. Wees voorzichtig met de locatie waar u deze opdrachten uitvoert. Voer ze bijvoorbeeld niet uit in een omgeving waarin iemand ze kan bekijken.

De service-principal testen

Nu de service-principal is gemaakt, kunt u zich aanmelden met de referenties om te controleren of deze is gemaakt.

  1. Voer deze Azure CLI-opdracht uit in de Visual Studio Code-terminal om u aan te melden met behulp van de referenties van de service-principal. Vervang de tijdelijke aanduidingen door de waarden die u in de vorige stap hebt gekopieerd.

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

    U ziet dat u het --allow-no-subscriptions argument opneemt. Normaal gesproken zoekt de Azure CLI wanneer u de az login opdracht uitvoert naar de Azure-abonnementen waartoe u toegang hebt. De service-principal heeft nog geen toegang tot iets, dus u gebruikt het --allow-no-subscriptions argument om te voorkomen dat de Azure CLI de lijst met abonnementen controleert en een fout weergeeft.

  2. Controleer of de uitvoer van de vorige opdracht een JSON-object is, dat een user eigenschap bevat met de toepassings-id van de service-principal. Deze informatie geeft aan dat de service-principal is aangemeld.

  3. Meld u af bij het account van de service-principal met behulp van de volgende opdracht:

    az logout
    
  1. Voer deze Azure PowerShell-opdracht uit in de Visual Studio Code-terminal om u veilig om de referenties van de service-principal te vragen. Gebruik de toepassings-id en sleutel van de service-principal uit de vorige stap voor respectievelijk de gebruikersnaam en het wachtwoord.

    $credential = Get-Credential
    
  2. Voer deze Azure PowerShell-opdracht uit in de Visual Studio Code-terminal om u aan te melden met behulp van de referenties van de service-principal.

    Connect-AzAccount -ServicePrincipal `
      -Credential $credential `
      -Tenant TENANT_ID
    
  3. Controleer of de uitvoer van de vorige opdracht een Account eigenschap bevat met de toepassings-id van de service-principal en een lege SubscriptionName waarde. Deze informatie geeft aan dat de service-principal is aangemeld.

  4. Meld u af bij het account van de service-principal met behulp van de volgende opdracht:

    Logout-AzAccount
    

Nu u een werkende service-principal hebt, kunt u verdergaan met de volgende fase: deze autoriseren voor toegang tot uw Azure-omgeving.