Övning – Skapa ett huvudnamn och en nyckel för tjänsten
Viktigt!
Du behöver en egen Azure-prenumeration för att utföra den här övningen, och avgifter kan tillkomma. Om du inte redan har en Azure-prenumeration kan du skapa ett kostnadsfritt konto innan du börjar.
Innan du skapar distributionspipelinen för leksaksföretagets webbplats måste du skapa ett huvudnamn för tjänsten och ge den åtkomst till din Azure-miljö. I den här övningen skapar du tjänstens huvudnamn som du ska använda för distributionspipelinen.
Under processen gör du följande:
- Skapa ett program, tjänstens huvudnamn och nyckel i en enda åtgärd.
- Hantera nyckeln på ett säkert sätt.
- Kontrollera att tjänstens huvudnamn fungerar genom att logga in på Azure med hjälp av dess autentiseringsuppgifter.
Den här övningen kräver att du har behörighet att skapa program och tjänstens huvudnamn i din Microsoft Entra-katalog. Om du inte kan uppfylla det här kravet med ditt aktuella Azure-konto kan du få en kostnadsfri utvärderingsversion och skapa en ny Azure-prenumeration och klientorganisation. Du kan också hoppa över den här övningen.
Logga in på Azure
Om du vill arbeta med tjänstens huvudnamn i Azure måste du logga in på ditt Azure-konto från Visual Studio Code-terminalen.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Standardgränssnittet är vanligtvis pwsh, vilket visas till höger i terminalfönstret.
Välj listrutan Starta profil och välj sedan Azure Cloud Shell (Bash).
Ett nytt gränssnitt öppnas.
Logga in på Azure med hjälp av Azure CLI
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
az login
Logga in på ditt Azure-konto i webbläsaren som öppnas.
Om du vill distribuera den här mallen till Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
Standardgränssnittet är vanligtvis pwsh, vilket visas till höger i terminalfönstret.
Välj listrutan Starta profil och välj sedan Azure Cloud Shell (PowerShell).
Ett nytt gränssnitt öppnas.
Logga in i Azure med Azure PowerShell
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
Connect-AzAccount
Logga in på ditt Azure-konto i webbläsaren som öppnas.
Skapa ett huvudnamn och en nyckel för tjänsten
Kör det här Azure CLI-kommandot i Visual Studio Code-terminalen för att skapa ett huvudnamn för tjänsten:
az ad sp create-for-rbac --name ToyWebsitePipeline
Om Azure CLI visar ett felmeddelande om att ett annat program har samma visningsnamn innebär det att någon annan som använder din Microsoft Entra-klient har skapat ett huvudnamn för tjänsten med samma namn. Ändra värdet
--name
till något unikt. Det påverkar inte hur du följer med i resten av övningarna.Titta på JSON-utdata från föregående kommando. Den innehåller följande egenskaper:
-
appId
: Tjänstens huvudnamns program-ID. -
password
: Tjänstens huvudnamnsnyckel. -
tenant
: Ditt Klient-ID för Microsoft Entra.
Kopiera dessa värden till ett säkert ställe. Du kommer att använda dem snart.
-
Kör dessa Azure PowerShell-kommandon i Visual Studio Code-terminalen för att skapa ett huvudnamn för tjänsten:
$servicePrincipal = New-AzADServicePrincipal ` -DisplayName ToyWebsitePipeline
Kör följande kommando för att hämta tjänstens huvudnamnsnyckel:
$servicePrincipalKey = $servicePrincipal.PasswordCredentials.SecretText
Kör följande kommando för att visa tjänstens huvudnamns program-ID, nyckeln och ditt Klient-ID för Microsoft Entra:
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)"
Kopiera värdena på en säker plats. Du kommer att använda dem snart.
Varning
Utdata från föregående kommandon innehåller nyckeln för tjänstens huvudnamn. Var försiktig med var du kör dessa kommandon. Kör dem till exempel inte i en miljö där någon kan visa dem.
Testa tjänstens huvudnamn
Nu när tjänstens huvudnamn har skapats kan du logga in med dess autentiseringsuppgifter för att kontrollera att det har skapats.
Kör det här Azure CLI-kommandot i Visual Studio Code-terminalen för att logga in med autentiseringsuppgifterna för tjänstens huvudnamn. Ersätt platshållarna med de värden som du kopierade i föregående steg.
az login --service-principal \ --username APPLICATION_ID \ --password PASSWORD \ --tenant TENANT_ID \ --allow-no-subscriptions
Observera att du inkluderar
--allow-no-subscriptions
argumentet. Normalt när du köraz login
kommandot letar Azure CLI efter de Azure-prenumerationer som du kan komma åt. Tjänstens huvudnamn har inte beviljats åtkomst till något ännu, så du använder--allow-no-subscriptions
argumentet för att förhindra att Azure CLI kontrollerar prenumerationslistan och visar ett fel.Kontrollera att utdata från föregående kommando är ett JSON-objekt, som innehåller en
user
egenskap med tjänstens huvudnamns program-ID. Den här informationen anger att tjänstens huvudnamn har loggat in.Logga ut från tjänstens huvudnamns konto med hjälp av följande kommando:
az logout
Kör det här Azure PowerShell-kommandot i Visual Studio Code-terminalen för att på ett säkert sätt fråga dig om tjänstens huvudnamns autentiseringsuppgifter. Använd tjänstens huvudnamns program-ID och nyckel från föregående steg för användarnamnet respektive lösenordet.
$credential = Get-Credential
Kör det här Azure PowerShell-kommandot i Visual Studio Code-terminalen för att logga in med autentiseringsuppgifterna för tjänstens huvudnamn.
Connect-AzAccount -ServicePrincipal ` -Credential $credential ` -Tenant TENANT_ID
Kontrollera att utdata från föregående kommando innehåller en
Account
egenskap med tjänstens huvudnamns program-ID och ett tomtSubscriptionName
värde. Den här informationen anger att tjänstens huvudnamn har loggat in.Logga ut från tjänstens huvudnamns konto med hjälp av följande kommando:
Logout-AzAccount
Nu när du har ett huvudnamn för den fungerande tjänsten kan du gå vidare till nästa steg: auktorisera det för att få åtkomst till din Azure-miljö.