Azure-autentisering med Java och Azure Identity
Den här artikeln innehåller en översikt över Azure Identity-biblioteket för Java, som tillhandahåller stöd för Microsoft Entra-tokenautentisering i Azure SDK för Java. Det här biblioteket innehåller en uppsättning TokenCredential
implementeringar som du kan använda för att skapa Azure SDK-klienter som stöder Microsoft Entra-tokenautentisering.
Azure Identity-biblioteket stöder för närvarande:
- Azure-autentisering i Java-utvecklingsmiljöer, vilket möjliggör:
- IDEA IntelliJ-autentisering med inloggningsinformation som hämtats från Azure Toolkit for IntelliJ.
- Azure CLI-autentisering med inloggningsinformationen sparad i Azure CLI
- Azure Developer CLI-autentisering med inloggningsinformationen sparad i Azure Developer CLI
- Azure PowerShell-autentisering med inloggningsinformationen sparad i Azure PowerShell
- Autentisera program som finns i Azure, vilket möjliggör:
DefaultAzureCredential
autentisering- Hanterad identitetsautentisering
- Autentisering med tjänstens huvudnamn, vilket möjliggör:
- Klienthemlighetsautentisering
- Autentisering av klientcertifikat
- Autentisering med användarautentiseringsuppgifter, vilket möjliggör:
- Interaktiv webbläsarautentisering
- Autentisering av enhetskod
- Autentisering med användarnamn/lösenord
Följ de här länkarna om du vill veta mer om detaljerna i var och en av dessa autentiseringsmetoder. I resten av den här artikeln introducerar vi vanliga DefaultAzureCredential
och relaterade ämnen.
Lägg till Maven-beroenden
Om du vill lägga till Maven-beroendet inkluderar du följande XML i projektets pom.xml-fil . Ersätt {version_number}
med den senaste stabila versionens versionsnummer, som visas på sidan För Azure Identity-bibliotek.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>{version_number}</version>
</dependency>
Nyckelbegrepp
Det finns två viktiga begrepp när det gäller att förstå Azure Identity-biblioteket: begreppet autentiseringsuppgifter och den vanligaste implementeringen av autentiseringsuppgifterna. DefaultAzureCredential
En autentiseringsuppgift är en klass som innehåller eller kan hämta de data som behövs för att en tjänstklient ska kunna autentisera begäranden. Tjänstklienter i Azure SDK accepterar autentiseringsuppgifter när de skapas och tjänstklienter använder dessa autentiseringsuppgifter för att autentisera begäranden till tjänsten.
Azure Identity-biblioteket fokuserar på OAuth-autentisering med Microsoft Entra-ID och erbjuder olika autentiseringsklasser som kan hämta en Microsoft Entra-token för att autentisera tjänstbegäranden. Alla autentiseringsklasser i det här biblioteket är implementeringar av den abstrakta klassen i azure-core, och du kan använda någon av dem för att konstruera tjänstklienter som kan autentisera TokenCredential
med en TokenCredential
.
DefaultAzureCredential
är lämpligt för de flesta scenarier där programmet är avsett att köras i Azure Cloud. DefaultAzureCredential
kombinerar autentiseringsuppgifter som ofta används för att autentisera när de distribueras, med autentiseringsuppgifter som används för att autentisera i en utvecklingsmiljö. Mer information, inklusive exempel med , DefaultAzureCredential
finns i avsnittet DefaultAzureCredential i Authenticating Azure-hosted Java applications (StandardAzureCredential) i Autentisera Java-program med Azure-värd.
Exempel
Som du ser i Använda Azure SDK för Java skiljer sig hanteringsbiblioteken något åt. Ett sätt att skilja sig åt är att det finns bibliotek för användning av Azure-tjänster, så kallade klientbibliotek och bibliotek för hantering av Azure-tjänster, så kallade hanteringsbibliotek. I följande avsnitt finns en snabb översikt över autentisering i både klient- och hanteringsbibliotek.
Autentisera Azure-klientbibliotek
I följande exempel visas hur du autentiserar SecretClient
från klientbiblioteket azure-security-keyvault-secrets med .DefaultAzureCredential
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<your Key Vault name>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Autentisera Azure-hanteringsbibliotek
Azure-hanteringsbiblioteken använder samma API:er för autentiseringsuppgifter som Azure-klientbiblioteken, men kräver även ett Azure-prenumerations-ID för att hantera Azure-resurserna för den prenumerationen.
Du hittar prenumerations-ID:t på sidan Prenumerationer i Azure Portal. Du kan också använda följande Azure CLI-kommando för att hämta prenumerations-ID:t:
az account list --output table
Du kan ange prenumerations-ID i AZURE_SUBSCRIPTION_ID
miljövariabeln. AzureProfile
hämtar det här ID:t som standardprenumerations-ID när en Manager
instans skapas i följande exempel:
AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
new DefaultAzureCredentialBuilder().build(),
new AzureProfile(AzureEnvironment.AZURE))
.withDefaultSubscription();
DefaultAzureCredential
används i det här exemplet autentiserar en AzureResourceManager
instans med hjälp av DefaultAzureCredential
. Du kan också använda andra implementeringar av DefaultAzureCredential
tokenautentiseringsuppgifter som erbjuds i Azure Identity-biblioteket i stället för .
Felsökning
Vägledning finns i Felsöka problem med Azure Identity-autentisering.
Nästa steg
Den här artikeln introducerade azure-identitetsfunktionerna som är tillgängliga i Azure SDK för Java. Det beskrivs DefaultAzureCredential
som vanligt och lämpligt i många fall. I följande artiklar beskrivs andra sätt att autentisera med hjälp av Azure Identity-biblioteket och ge mer information om DefaultAzureCredential
: