Autentisera Azure-värdbaserade Java-program
Den här artikeln beskriver hur Azure Identity-biblioteket stöder Microsoft Entra-tokenautentisering för program som finns i Azure. Det här stödet möjliggörs genom en uppsättning TokenCredential
implementeringar som beskrivs i den här artikeln.
Den här artikeln beskriver följande ämnen:
Felsökning av autentiseringsproblem som rör Azure-värdbaserade program finns i Felsöka Azure-värdbaserad programautentisering.
StandardAzureCredential
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 finns i Översikt över DefaultAzureCredential.
Konfigurera StandardAzureCredential
DefaultAzureCredential
stöder en uppsättning konfigurationer via setters på DefaultAzureCredentialBuilder
miljövariablerna eller .
- Om du anger miljövariablerna
AZURE_CLIENT_ID
,AZURE_CLIENT_SECRET
ochAZURE_TENANT_ID
enligt definitionen i Miljövariabler konfigurerasDefaultAzureCredential
att autentiseras som tjänstens huvudnamn som anges av värdena. - Inställningen
.managedIdentityClientId(String)
för builder- eller miljövariabelnAZURE_CLIENT_ID
konfigurerasDefaultAzureCredential
för att autentiseras som en användartilldelad hanterad identitet, samtidigt som de lämnas tomma konfigurerar den för att autentiseras som en systemtilldelad hanterad identitet. - Inställningen
.tenantId(String)
för builder- eller miljövariabelnAZURE_TENANT_ID
konfigurerasDefaultAzureCredential
för att autentisera till en specifik klientorganisation för antingen cacheminnet för delad token eller IntelliJ IDEA. - Om du anger miljövariabeln
AZURE_USERNAME
konfigurerasDefaultAzureCredential
att välja motsvarande cachelagrade token från cacheminnet för delad token.
Autentisera med DefaultAzureCredential
I följande exempel visas autentisera SecretClient
från klientbiblioteket azure-security-keyvault-secrets med hjälp av DefaultAzureCredential
:
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
Autentisera en användartilldelad hanterad identitet med DefaultAzureCredential
I följande exempel visas autentisera SecretClient
från klientbiblioteket azure-security-keyvault-secrets med distribuerad DefaultAzureCredential
till en Azure-resurs med en användartilldelad hanterad identitet konfigurerad.
/**
* DefaultAzureCredential uses the user-assigned managed identity with the specified client ID.
*/
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
.managedIdentityClientId("<CLIENT_ID>")
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(credential)
.buildClient();
ManagedIdentityCredential
ManagedIdentityCredential autentiserar den hanterade identiteten (systemtilldelad eller användartilldelad) för en Azure-resurs. Så om programmet körs i en Azure-resurs som har stöd för hanterad identitet via IDENTITY/MSI
, IMDS
slutpunkter eller båda, så autentiseras ditt program med den här autentiseringsuppgiften och erbjuder en hemlighetslös autentiseringsupplevelse.
Mer information finns i Vad är hanterade identiteter för Azure-resurser?
Autentisera i Azure med hanterad identitet
I följande exempel visas autentisering SecretClient
från klientbiblioteket azure-security-keyvault-secrets med hjälp av ManagedIdentityCredential
i en virtuell dator, App Service, Functions-app, Cloud Shell, Service Fabric, Arc eller AKS-miljö i Azure, med systemtilldelad eller användartilldelad hanterad identitet aktiverad.
/**
* Authenticate with a user-assigned managed identity.
*/
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
.clientId("<CLIENT_ID>") // required only for user-assigned
.build();
// Azure SDK client builders accept the credential as a parameter.
SecretClient client = new SecretClientBuilder()
.vaultUrl("https://<KEY_VAULT_NAME>.vault.azure.net")
.credential(credential)
.buildClient();
Miljövariabler
Du kan konfigurera DefaultAzureCredential
och EnvironmentCredential
med miljövariabler. Varje typ av autentisering kräver värden för specifika variabler:
Tjänstens huvudnamn med hemlighet
Variabelnamn | Värde |
---|---|
AZURE_CLIENT_ID |
ID för ett Microsoft Entra-program. |
AZURE_TENANT_ID |
ID för programmets Microsoft Entra-klientorganisation. |
AZURE_CLIENT_SECRET |
En av programmets klienthemligheter. |
Tjänstens huvudnamn med certifikat
Variabelnamn | Värde |
---|---|
AZURE_CLIENT_ID |
ID för ett Microsoft Entra-program. |
AZURE_TENANT_ID |
ID för programmets Microsoft Entra-klientorganisation. |
AZURE_CLIENT_CERTIFICATE_PATH |
Sökväg till en PEM-kodad certifikatfil inklusive privat nyckel (utan lösenordsskydd). |
AZURE_CLIENT_CERTIFICATE_PASSWORD |
(valfritt) Lösenord för certifikatfilen, om det finns något. |
AZURE_CLIENT_SEND_CERTIFICATE_CHAIN |
(valfritt) Skicka certifikatkedjan i x5c-huvudet för att stödja ämnesnamn/utfärdarbaserad autentisering. |
Användarnamn och lösenord
Variabelnamn | Värde |
---|---|
AZURE_CLIENT_ID |
ID för ett Microsoft Entra-program. |
AZURE_TENANT_ID |
ID för programmets Microsoft Entra-klientorganisation. |
AZURE_USERNAME |
Ett användarnamn (vanligtvis en e-postadress). |
AZURE_PASSWORD |
Det associerade lösenordet för det angivna användarnamnet. |
Konfigurationen görs i den här ordningen. Om det till exempel finns både värden för en klienthemlighet och ett certifikat används klienthemligheten.
Nästa steg
I den här artikeln beskrivs autentisering för program som finns i Azure. Den här typen av autentisering är ett av flera sätt som du kan autentisera i Azure SDK för Java. Följande artiklar beskriver andra sätt:
- Azure-autentisering i utvecklingsmiljöer
- Autentisering med tjänstens huvudnamn
- Autentisering med användarautentiseringsuppgifter
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 bemästrat autentiseringen kan du läsa Konfigurera loggning i Azure SDK för Java för information om de loggningsfunktioner som tillhandahålls av SDK:t.