Skapa program med hjälp av Microsoft Entra-hanterade identiteter

Slutförd

Du har redan skapat en virtuell Azure-dator och tilldelat en systemhanterad identitet. De appar som körs på den virtuella datorn ska autentisera förfrågningar till Azure-resurser. I stället för att använda lösenord eller delade nycklar använder du den systemtilldelade hanterade identiteten.

I den här lektionen får du lära dig mer om hur program kan använda hanterade identiteter för autentisering. Du ser hur du använder Azure Key Vault för att definiera en auktoriseringsprincip och du aktiverar en autentiserad identitet för att läsa hemlig information.

Hanterade identiteter

I en tidigare lektion lärde du dig att Azure stöder systemtilldelade hanterade identiteter och användartilldelade hanterade identiteter. Azure skapar och hanterar en systemtilldelad hanterad identitet. Den är nära knuten till en viss resurs. Om du till exempel skapar en virtuell dator som har en systemtilldelad hanterad identitet skapar Azure identiteten automatiskt. Azure kopplar även identiteten till den virtuella datorn. Om du tar bort den virtuella datorn tas även identiteten bort.

Användartilldelade hanterade identiteter är oberoende av alla resurser. Du skapar en användartilldelad hanterad identitet manuellt och tilldelar den sedan till en resurs eller tjänst, till exempel din aktiespårningsapp. När appen körs använder den den användartilldelade hanterade identiteten. Du tilldelar de åtkomstbehörigheter appen behöver till identiteten. Du kan använda den här metoden om du vill distribuera appen på flera virtuella datorer. Appen använder den här användartilldelade hanterade identiteten i stället för att konfigurera en systemtilldelad hanterad identitet för varje virtuell dator.

Skapa och hantera en användartilldelad hanterad identitet

Du kan skapa en användartilldelad hanterad identitet i Azure-portalen eller från en kommandotolk. Följande kommando använder Azure CLI:

az identity create \
  --name <identity name>
  --resource-group <resource group>

Kör följande kommando för att visa en lista över identiteter, inklusive systemtilldelade hanterade identiteter. Notera identitetens huvudkonto-ID. Azure använder detta ID för att tilldela och verifiera behörigheter.

az identity list \
  --resource-group <resource group>

När du har skapat en identitet kan du använda det här huvudkonto-ID:t till att associera identiteten med dina resurser.

Kör följande kommando för att använda identiteten med en Azure-funktionsapp:

az functionapp identity assign \
  --name <function app name> \
  --resource-group <resource group> \
  --role <principal id>

Funktionsappen använder den här identiteten när appen körs. Den har åtkomst till samma resurser som är tillgängliga för identiteten.

Vilka kommandon du behöver köra varierar beroende på resurs. Om du till exempel vill ge identiteten möjlighet att läsa och visa nycklar från Azure Key Vault kör du följande kommando:

az keyvault set-policy \
    --name <key vault name> \
    --object-id <principal id> \
    --secret-permissions get list

Kör följande kommando för att ta bort en användartilldelad hanterad identitet:

az identity delete \
  --name <identity name>
  --resource-group <resource group>

Använda hanterad identitet med Azure Key Vault

Med DefaultAzureCredential-providern kan du använda hanterade identiteter för autentisering när vårt program distribueras till Azure och använda lokala autentiseringsuppgifter för utvecklare under utvecklingen. Om du vill använda DefaultAzureCredential måste du installera Azure.Identity-paketet:

dotnet install Azure.Identity

Med hjälp av kan vi nu skapa en autentiserad DefaultAzureCredentialSecretClient.

var client = new SecretClient(new Uri(keyVaultUrl), new DefaultAzureCredential());

När vi har skapat klienten hämtar vi en namngiven hemlighet.

KeyVaultSecret secretWithValue = await client.GetSecretAsync(secret.Name).ConfigureAwait(false);