Använda hanterade identiteter för att få åtkomst till App Configuration
Microsoft Entra-hanterade identiteter förenklar hanteringen av hemligheter för ditt molnprogram. Med en hanterad identitet kan koden använda tjänstens huvudnamn som skapats för den Azure-tjänst som den körs på. Du använder en hanterad identitet i stället för en separat autentiseringsuppgift som lagras i Azure Key Vault eller en lokal niska veze.
Azure App Configuration och dess .NET-, .NET Framework- och Java Spring-klientbibliotek har inbyggt stöd för hanterade identiteter. Även om du inte behöver använda den eliminerar den hanterade identiteten behovet av en åtkomsttoken som innehåller hemligheter. Koden kan endast komma åt App Configuration Store med hjälp av tjänstslutpunkten. Du kan bädda in den här URL:en direkt i koden utan att exponera någon hemlighet.
Den här artikeln visar hur du kan dra nytta av den hanterade identiteten för att få åtkomst till App Configuration. Den bygger på den webbapp som introducerades i snabbstarterna. Innan du fortsätter skapar du en ASP.NET Core-app med App Configuration först.
Den här artikeln visar hur du kan dra nytta av den hanterade identiteten för att få åtkomst till App Configuration. Den bygger på den webbapp som introducerades i snabbstarterna. Innan du fortsätter skapar du en Java Spring-app med Azure App Configuration först.
Viktigt!
Hanterad identitet kan inte användas för att autentisera program som körs lokalt. Programmet måste distribueras till en Azure-tjänst som stöder hanterad identitet. I den här artikeln används Azure App Service som exempel. Samma koncept gäller dock för alla andra Azure-tjänster som stöder hanterad identitet. Till exempel Azure Kubernetes Service, Azure Virtual Machine och Azure Container Instances. Om din arbetsbelastning finns i någon av dessa tjänster kan du också använda tjänstens stöd för hanterad identitet.
Du kan använda valfri kodredigerare för att utföra stegen i den här självstudien. Visual Studio Code är ett utmärkt alternativ på Plattformarna Windows, macOS och Linux.
I den här artikeln kan du se hur du:
- Bevilja en hanterad identitet åtkomst till App Configuration.
- Konfigurera din app så att den använder en hanterad identitet när du ansluter till App Configuration.
Förutsättningar
Du behöver följande för att kunna slutföra den här självstudiekursen:
- Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.
- Ett Azure App Configuration Store. Skapa en butik.
- .NET SDK 6.0 eller senare.
- Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.
- Ett Azure App Configuration Store. Skapa en butik.
- Ett Java Development Kit (JDK) som stöds med version 11.
- Apache Maven version 3.0 eller senare.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Lägga till en hanterad identitet
Om du vill konfigurera en hanterad identitet i portalen skapar du först ett program och aktiverar sedan funktionen.
Få åtkomst till din App Services-resurs i Azure-portalen. Om du inte har någon befintlig App Services-resurs att använda skapar du en.
Rulla ned till gruppen Inställningar i den vänstra rutan och välj Identitet.
På fliken Systemtilldelat växlar du Status till På och väljer Spara.
När du uppmanas till det svarar du Ja för att aktivera den systemtilldelade hanterade identiteten.
Bevilja åtkomst till App Configuration
Följande steg beskriver hur du tilldelar rollen App Configuration Data Reader till App Service. Läs mer om att tilldela roller i Tilldela Azure-roller via Azure Portal.
Välj Åtkomstkontroll (IAM) .
Välj Lägg till>Lägg till rolltilldelning.
Om du inte har behörighet att tilldela roller inaktiveras alternativet Lägg till rolltilldelning . Mer information finns i Inbyggda roller i Azure.
På fliken Roll väljer du rollen Appkonfigurationsdataläsare och väljer sedan Nästa.
På fliken Medlemmar väljer du Hanterad identitet och sedan Välj medlemmar.
Välj din Azure-prenumeration. För Hanterad identitet väljer du App Service och sedan ditt App Service-namn.
På fliken Granska + tilldela väljer du Granska + tilldela för att tilldela rollen.
Använda en hanterad identitet
Lägg till en referens till
Azure.Identity
paketet:dotnet add package Azure.Identity
Leta upp slutpunkten i appkonfigurationsarkivet. Den här URL:en visas på fliken Åtkomstnycklar för butiken i Azure-portalen.
Öppna filen appsettings.json och lägg till följande skript. Ersätt <service_endpoint>, inklusive hakparenteserna, med URL:en till appkonfigurationsarkivet.
"AppConfig": { "Endpoint": "<service_endpoint>" }
Öppna filen Program.cs och lägg till en referens till
Azure.Identity
namnområdet:using Azure.Identity;
Om du vill komma åt värden som lagras i App Configuration uppdaterar du konfigurationen
Builder
så att metodenAddAzureAppConfiguration()
används.var builder = WebApplication.CreateBuilder(args); builder.Configuration.AddAzureAppConfiguration(options => options.Connect( new Uri(builder.Configuration["AppConfig:Endpoint"]), new ManagedIdentityCredential()));
Kommentar
Om du vill använda en användartilldelad hanterad identitet måste du ange
clientId
när du skapar ManagedIdentityCredential.new ManagedIdentityCredential("<your_clientId>")
Som beskrivs i vanliga frågor och svar om hanterade identiteter för Azure-resurser finns det ett standardsätt för att lösa vilken hanterad identitet som används. I det här fallet tvingar Azure Identity-biblioteket dig att ange önskad identitet för att undvika eventuella körningsproblem i framtiden. Om till exempel en ny användartilldelad hanterad identitet läggs till eller om den systemtilldelade hanterade identiteten är aktiverad. Därför måste du ange
clientId
även om endast en användartilldelad hanterad identitet har definierats och det inte finns någon systemtilldelad hanterad identitet.
Leta upp slutpunkten i appkonfigurationsarkivet. Den här URL:en visas på fliken Översikt för butiken i Azure-portalen.
Öppna
bootstrap.properties
, ta bort egenskapen connection-string och ersätt den med slutpunkten för systemtilldelad identitet:
spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
för användartilldelad identitet:
spring.cloud.azure.appconfiguration.stores[0].endpoint=<service_endpoint>
spring.cloud.azure.credential.managed-identity-enabled= true
spring.cloud.azure.credential.client-id= <client_id>
Distribuera appen
Du måste distribuera din app till en Azure-tjänst när du använder hanterade identiteter. Hanterade identiteter kan inte användas för autentisering av lokalt aktiva appar. Om du vill distribuera .NET Core-appen som du skapade i snabbstarten Skapa en ASP.NET Core-app med App Configuration och ändrad för att använda hanterade identiteter följer du vägledningen i Publicera webbappen.
Om du använder hanterade identiteter måste du distribuera din app till en Azure-tjänst. Hanterade identiteter kan inte användas för autentisering av lokalt aktiva appar. Om du vill distribuera Spring-appen som du skapade i snabbstarten Skapa en Java Spring-app med Azure App Configuration och ändra den för att använda hanterade identiteter följer du vägledningen i Publicera webbappen.
Förutom App Service har många andra Azure-tjänster stöd för hanterade identiteter. Mer information finns i Tjänster som stöder hanterade identiteter för Azure-resurser.
Rensa resurser
Om du inte vill fortsätta använda resurserna som skapas i den här artikeln tar du bort resursgruppen som du skapade här för att undvika avgifter.
Viktigt!
Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser i den tas bort permanent. Se till att du inte oavsiktligt tar bort fel resursgrupp eller resurser. Om du har skapat resurserna för den här artikeln i en resursgrupp som innehåller andra resurser som du vill behålla tar du bort varje resurs individuellt från respektive fönster i stället för att ta bort resursgruppen.
- Logga in på Azure-portalen och välj Resursgrupper.
- I rutan Filtrera efter namn anger du namnet på resursgruppen.
- I resultatlistan väljer du resursgruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen för att bekräfta och välj Ta bort.
Efter en liten stund tas resursgruppen och alla dess resurser bort.
Nästa steg
I den här självstudien har du lagt till en Hanterad Azure-identitet för att effektivisera åtkomsten till App Configuration och förbättra autentiseringshanteringen för din app. Om du vill veta mer om hur du använder App Configuration fortsätter du till Azure CLI-exemplen.