Delen via


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 omgevingsvariabelenAZURE_CLIENT_ID, AZURE_CLIENT_SECRETen AZURE_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 omgevingsvariabele AZURE_CLIENT_ID configureert DefaultAzureCredential 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 omgevingsvariabele AZURE_TENANT_ID configureert DefaultAzureCredential voor verificatie bij een specifieke tenant voor de gedeelde tokencache of IntelliJ IDEA.
  • Als u de omgevingsvariabele AZURE_USERNAME instelt, configureert DefaultAzureCredential 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:

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.