Door Azure gehoste Java-toepassingen verifiëren
In dit artikel wordt beschreven hoe de Azure Identity-bibliotheek microsoft Entra-tokenverificatie ondersteunt voor toepassingen die worden gehost in Azure. Deze ondersteuning wordt mogelijk gemaakt via een set TokenCredential
implementaties, die in dit artikel worden besproken.
In dit artikel worden de volgende onderwerpen behandeld:
Zie Problemen met azure-gehoste toepassingsverificatie oplossen voor het oplossen van verificatieproblemen met betrekking tot door Azure gehoste toepassingen.
DefaultAzureCredential
DefaultAzureCredential
combineert referenties die vaak worden gebruikt voor verificatie bij implementatie, met referenties die worden gebruikt voor verificatie in een ontwikkelomgeving. Zie het overzicht defaultAzureCredential voor meer informatie.
DefaultAzureCredential configureren
DefaultAzureCredential
ondersteunt een set configuraties via setters op de DefaultAzureCredentialBuilder
of omgevingsvariabelen.
- Het instellen van de omgevingsvariabelen
AZURE_CLIENT_ID
,AZURE_CLIENT_SECRET
enAZURE_TENANT_ID
zoals gedefinieerd in omgevingsvariabelenDefaultAzureCredential
, wordt geconfigureerd om te verifiëren als de service-principal die is opgegeven door de waarden. - De instelling
.managedIdentityClientId(String)
voor de opbouwfunctie of de omgevingsvariabeleAZURE_CLIENT_ID
configureertDefaultAzureCredential
voor verificatie als een door de gebruiker toegewezen beheerde identiteit, terwijl deze leeg blijft, wordt deze geconfigureerd voor verificatie als een door het systeem toegewezen beheerde identiteit. - De instelling
.tenantId(String)
op de opbouwfunctie of de omgevingsvariabeleAZURE_TENANT_ID
configureertDefaultAzureCredential
voor verificatie bij een specifieke tenant voor de gedeelde tokencache of IntelliJ IDEA. - Als u de omgevingsvariabele
AZURE_USERNAME
instelt, configureertDefaultAzureCredential
u het bijbehorende token in de cache in de cache voor het gedeelde token.
Verifiëren met DefaultAzureCredential
In het volgende voorbeeld ziet u hoe u de SecretClient
clientbibliotheek azure-security-keyvault-secrets kunt verifiëren met behulp van 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();
Een door de gebruiker toegewezen beheerde identiteit verifiëren met DefaultAzureCredential
In het volgende voorbeeld ziet u hoe u de SecretClient
verificatie vanuit de clientbibliotheek azure-security-keyvault-secrets gebruikt die is DefaultAzureCredential
geïmplementeerd in een Azure-resource met een door de gebruiker toegewezen beheerde identiteit geconfigureerd.
/**
* 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 verifieert de beheerde identiteit (door het systeem toegewezen of door de gebruiker toegewezen) van een Azure-resource. Dus als de toepassing wordt uitgevoerd in een Azure-resource die beheerde identiteit ondersteunt via IDENTITY/MSI
, IMDS
eindpunten of beide, wordt met deze referentie uw toepassing geverifieerd en wordt een geheimloze verificatieervaring geboden.
Zie Wat zijn beheerde identiteiten voor Azure-resources? voor meer informatie.
Verifiëren in Azure met beheerde identiteit
In het volgende voorbeeld ziet u hoe u de SecretClient
verificatie uitvoert vanuit de clientbibliotheek azure-security-keyvault-secrets met behulp van de ManagedIdentityCredential
in een virtuele machine, App Service, Functions-app, Cloud Shell, Service Fabric, Arc of AKS-omgeving in Azure, waarvoor door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit is ingeschakeld.
/**
* 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();
Omgevingsvariabelen
U kunt omgevingsvariabelen configureren DefaultAzureCredential
en EnvironmentCredential
gebruiken. Voor elk type verificatie zijn waarden vereist voor specifieke variabelen:
Service-principal met geheim
Naam van de variabele | Weergegeven als |
---|---|
AZURE_CLIENT_ID |
Id van een Microsoft Entra-toepassing. |
AZURE_TENANT_ID |
Id van de Microsoft Entra-tenant van de toepassing. |
AZURE_CLIENT_SECRET |
Een van de clientgeheimen van de toepassing. |
Service-principal met certificaat
Naam van de variabele | Weergegeven als |
---|---|
AZURE_CLIENT_ID |
Id van een Microsoft Entra-toepassing. |
AZURE_TENANT_ID |
Id van de Microsoft Entra-tenant van de toepassing. |
AZURE_CLIENT_CERTIFICATE_PATH |
Pad naar een MET PEM gecodeerd certificaatbestand, inclusief een persoonlijke sleutel (zonder wachtwoordbeveiliging). |
AZURE_CLIENT_CERTIFICATE_PASSWORD |
(optioneel) Wachtwoord van het certificaatbestand, indien van toepassing. |
AZURE_CLIENT_SEND_CERTIFICATE_CHAIN |
(optioneel) Certificaatketen verzenden in x5c-header ter ondersteuning van onderwerpnaam/verificatie op basis van verleners. |
Gebruikersnaam en wachtwoord
Naam van de variabele | Weergegeven als |
---|---|
AZURE_CLIENT_ID |
Id van een Microsoft Entra-toepassing. |
AZURE_TENANT_ID |
Id van de Microsoft Entra-tenant van de toepassing. |
AZURE_USERNAME |
Een gebruikersnaam (meestal een e-mailadres). |
AZURE_PASSWORD |
Het bijbehorende wachtwoord voor de opgegeven gebruikersnaam. |
De configuratie wordt in deze volgorde uitgevoerd. Als er bijvoorbeeld waarden voor een clientgeheim en certificaat aanwezig zijn, wordt het clientgeheim gebruikt.
Volgende stappen
Dit artikel heeft betrekking op verificatie voor toepassingen die worden gehost in Azure. Deze vorm van verificatie is een van de verschillende manieren waarop u zich kunt verifiëren in de Azure SDK voor Java. In de volgende artikelen worden andere manieren beschreven:
- Azure-verificatie in ontwikkelomgevingen
- Verificatie met service-principals
- Verificatie met gebruikersreferenties
Als u problemen ondervindt met betrekking tot door Azure gehoste toepassingsverificatie, raadpleegt u Problemen met door Azure gehoste toepassingsverificatie oplossen.
Nadat u de verificatie hebt beheerd, raadpleegt u Logboekregistratie configureren in de Azure SDK voor Java voor informatie over de functionaliteit voor logboekregistratie die door de SDK wordt geboden.