Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den rekommenderade metoden för att autentisera en Azure värdbaserad app till andra Azure resurser är att använda en hanterad identitet. De flesta Azure tjänster stöder den här metoden, inklusive appar som finns på Azure App Service, Azure Container Apps och Azure Virtual Machines. Mer information finns i Azure tjänster och resurstyper som stöder hanterade identiteter. Mer information om olika autentiseringstekniker och metoder finns i Autentisera Java appar för att Azure tjänster med hjälp av biblioteket Azure Identity.
I följande avsnitt lär du dig mer om:
- Grundläggande begrepp för hanterad identitet.
- Så här skapar du en användartilldelad hanterad identitet för din app.
- Så här tilldelar du roller till den användartilldelade hanterade identiteten.
- Autentisera med hjälp av den användartilldelade hanterade identiteten från din appkod.
Grundläggande begrepp för hanterad identitet
Med en hanterad identitet kan din app på ett säkert sätt ansluta till andra Azure resurser utan att använda hemliga nycklar eller andra programhemligheter. Internt spårar Azure identiteten och vilka resurser den tillåts ansluta till. Azure använder den här informationen för att automatiskt hämta Microsoft Entra token för appen så att den kan ansluta till andra Azure resurser.
Det finns två typer av hanterade identiteter att tänka på när du konfigurerar din värdbaserade app:
- Systemtilldelade hanterade identiteter aktiveras direkt på en Azure resurs och är kopplade till dess livscykel. När resursen tas bort tar Azure automatiskt bort identiteten åt dig. Systemtilldelade identiteter ger en minimalistisk metod för att använda hanterade identiteter.
- Användaretilldelade hanterade identiteter skapas som fristående Azure resurser och ger större flexibilitet och funktioner. De är idealiska för lösningar som omfattar flera Azure resurser som behöver dela samma identitet och behörigheter. Om till exempel flera virtuella datorer behöver komma åt samma uppsättning Azure resurser, ger en användartilldelad hanterad identitet återanvändning och optimerad hantering.
Tips/Råd
Läs mer om hur du väljer och hanterar systemtilldelade och användartilldelade hanterade identiteter i artikeln Rekommenderade metoder för hanterad identitet .
I följande avsnitt beskrivs stegen för att aktivera och använda en användartilldelad hanterad identitet för en Azure värdbaserad app. Om du behöver använda en systemtilldelad hanterad identitet kan du läsa Autentisera Azure-värdbaserade Java-appar till Azure-resurser med hjälp av en systemtilldelad hanterad identitet.
Skapa en användartilldelad hanterad identitet
Användartilldelade hanterade identiteter skapas som fristående resurser i din Azure-prenumeration med hjälp av Azure-portalen eller Azure CLI. Azure CLI kommandon kan köras i Azure Cloud Shell eller på en arbetsstation med Azure CLI installerat.
I Azure-portalen anger du Hanterade identiteter i huvudsökfältet och väljer matchande resultat under avsnittet Services.
På sidan Hanterade Identiteter väljer du + Skapa.
På sidan Skapa användartilldelad hanterad identitet väljer du en prenumeration, resursgrupp och region för den användartilldelade hanterade identiteten och anger sedan ett namn.
Välj Granska + skapa för att granska och verifiera dina indata.
Välj Skapa för att skapa den användartilldelade hanterade identiteten.
När identiteten har skapats väljer du Gå till resurs.
På den nya identitetens översiktssida kopierar du värdet klient-ID som ska användas för senare när du konfigurerar programkoden.
Tilldela den hanterade identiteten till din app
En användartilldelad hanterad identitet kan associeras med en eller flera Azure resurser. Alla resurser som använder den identiteten får de behörigheter som tillämpas via identitetens roller.
I Azure-portalen går du till resursen som är värd för din appkod, till exempel en Azure App Service eller Azure Container Apps instans.
På resursens översiktssida expanderar du Inställningar och väljer Identitet från navigeringen.
På sidan Identitet växlar du till fliken Användartilldelad .
Välj + Lägg till för att öppna panelen Lägg till användartilldelad hanterad identitet.
I panelen Lägg till användartilldelad hanterad identitet använder du listrutan Prenumeration för att filtrera sökresultaten för dina identiteter. Använd sökrutan Användare tilldelade hanterade identiteter för att hitta den användartilldelade hanterade identiteten som du har aktiverat för den Azure resurs som är värd för din app.
Välj identiteten och välj Lägg till längst ned i panelen för att fortsätta.
Tilldela roller till den hanterade identiteten
Bestäm sedan vilka roller din app behöver och tilldela dessa roller till den hanterade identiteten. Du kan tilldela roller till en hanterad identitet i följande omfång:
- Resurs: De tilldelade rollerna gäller endast för den specifika resursen.
- Resursgrupp: De tilldelade rollerna gäller för alla resurser i resursgruppen.
- Prenumeration: De tilldelade rollerna gäller för alla resurser i prenumerationen.
I följande exempel visas hur du tilldelar roller i resursgruppens omfång, eftersom många appar hanterar alla relaterade Azure resurser med hjälp av en enda resursgrupp.
Gå till sidan Översikt i resursgruppen som innehåller appen med den användartilldelade hanterade identiteten.
Välj åtkomstkontroll (IAM) i det vänstra navigeringsfältet.
På sidan Åtkomstkontroll (IAM) väljer du + Lägg till på den översta menyn och väljer sedan Lägg till rolltilldelning för att gå till sidan Lägg till rolltilldelning.
Sidan Lägg till rolltilldelning visar ett flikarat arbetsflöde i flera steg för att tilldela roller till identiteter. På den första fliken Roll använder du sökrutan längst upp för att hitta den roll som du vill tilldela identiteten.
Välj rollen i resultatet och välj sedan Nästa för att flytta till fliken Medlemmar.
För alternativet Tilldela åtkomst till väljer du Hanterad identitet.
För alternativet Medlemmar väljer du + Välj medlemmar för att öppna panelen Välj hanterade identiteter.
I panelen Välj hanterade identiteter använder du listrutorna Prenumeration och Hanterad identitet för att filtrera sökresultaten efter dina identiteter. Använd sökrutan Select för att hitta den användartilldelade hanterade identiteten som du har aktiverat för den Azure resurs som är värd för din app.
Välj identiteten och välj Välj längst ned i panelen för att fortsätta.
Välj Granska + tilldela längst ned på sidan.
På den sista fliken Granska + tilldela väljer du Granska + tilldela för att slutföra arbetsflödet.
Autentisera mot Azure-tjänster från din app
I Azure Identity Library finns olika autentiseringsuppgifter som implementeringar av TokenCredential. Varje implementering stöder olika scenarier och Microsoft Entra autentiseringsflöden. För användartilldelade hanterade identiteter anger du identitetens klient-ID, resurs-ID eller objekt-ID när du konfigurerar autentiseringsuppgifterna.
Implementera koden
Lägg till azure-identity-beroendet i din pom.xml-fil:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
</dependency>
Du får åtkomst till Azure tjänster med hjälp av specialiserade klientklasser från Azure SDK klientbibliotek. Följande kodexempel visar hur du konfigurerar autentiseringsuppgifterna för användartilldelad hanterad identitetsautentisering.
Använd DefaultAzureCredential
Använd DefaultAzureCredential som autentiseringsuppgifter för Azure värdbaserade appar. För användartilldelade hanterade identiteter konfigurerar du klient-ID:t med hjälp managedIdentityClientId av metoden:
import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
// Configure DefaultAzureCredential with the user-assigned managed identity's client ID
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<user-assigned-managed-identity-client-id>")
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your-key-vault-name>.vault.azure.net")
.credential(credential)
.buildClient();
Använda ManagedIdentityCredential
Om du uttryckligen vill använda den hanterade identitetens autentiseringsuppgifter och undvika autentiseringskedjans sökning i DefaultAzureCredentialanvänder du ManagedIdentityCredential direkt. För användartilldelade hanterade identiteter kan du ange identiteten med hjälp av klient-ID, resurs-ID eller objekt-ID.
Använd klient-ID:t för att identifiera en hanterad identitet när du konfigurerar program eller tjänster som behöver autentiseras med hjälp av den identiteten.
Hämta det klient-ID som tilldelats en användartilldelad hanterad identitet med hjälp av följande kommando:
az identity show \
--resource-group <resource-group-name> \
--name <identity-name> \
--query clientId \
--output tsv
Konfigurera ManagedIdentityCredential med klient-ID:t:
import com.azure.identity.ManagedIdentityCredential;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
// Specify the client ID of the user-assigned managed identity
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
.clientId("<user-assigned-managed-identity-client-id>")
.build();
// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your-key-vault-name>.vault.azure.net")
.credential(credential)
.buildClient();
Nästa steg
Den här artikeln beskriver autentisering med hjälp av en användartilldelad hanterad identitet. Den här typen av autentisering är ett av flera sätt som du kan autentisera i Azure SDK för Java. I följande artiklar beskrivs andra sätt att autentisera:
- Autentisera Java-appar värdbaserade i Azure till Azure-resurser med hjälp av en systemtilldelad hanterad identitet
- Autentisera Java-applikationer till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton
- Autentisera Java-appar till Azure-tjänster under lokal utveckling med hjälp av tjänstehuvud
Om du stöter på problem som rör Azure värdbaserad programautentisering kan du läsa Felsöka Azure värdbaserad programautentisering.
När du har slutfört autentiseringen kan du läsa Konfigurera loggning i Azure SDK för Java för information om de loggningsfunktioner som tillhandahålls av SDK.