Anteckning
Å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 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_SECRETochAZURE_TENANT_IDenligt definitionen i Miljövariabler konfigurerasDefaultAzureCredentialatt autentiseras som tjänstens huvudnamn som anges av värdena. - Inställningen
.managedIdentityClientId(String)för builder- eller miljövariabelnAZURE_CLIENT_IDkonfigurerasDefaultAzureCredentialfö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_IDkonfigurerasDefaultAzureCredentialför att autentisera till en specifik klientorganisation för antingen cacheminnet för delad token eller IntelliJ IDEA. - Om du anger miljövariabeln
AZURE_USERNAMEkonfigurerasDefaultAzureCredentialatt 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 (på engelska)
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.