Azure-verificatie met Java en Azure Identity

Dit artikel bevat een overzicht van de Java Azure Identity-bibliotheek, die ondersteuning biedt voor Verificatie van Microsoft Entra-tokens in de Azure SDK voor Java. Deze bibliotheek biedt een set TokenCredential implementaties die u kunt gebruiken om Azure SDK-clients te maken die ondersteuning bieden voor Microsoft Entra-tokenverificatie.

De Azure Identity-bibliotheek ondersteunt momenteel:

Volg deze koppelingen voor meer informatie over de specifieke kenmerken van elk van deze verificatiemethoden. In de rest van dit artikel introduceren we de veelgebruikte DefaultAzureCredential en verwante onderwerpen.

De Maven-afhankelijkheden toevoegen

Als u de Maven-afhankelijkheid wilt toevoegen, neemt u de volgende XML op in het pom.xml-bestand van het project. Vervang door {version_number} het versienummer van de meest recente stabiele release, zoals wordt weergegeven op de pagina van de Azure Identity-bibliotheek.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{version_number}</version>
</dependency>

Belangrijke concepten

Er zijn twee belangrijke concepten voor het begrijpen van de Azure Identity-bibliotheek: het concept van een referentie en de meest voorkomende implementatie van die referentie. DefaultAzureCredential

Een referentie is een klasse die de gegevens bevat die nodig zijn voor een serviceclient om aanvragen te verifiëren. Serviceclients in de Azure SDK accepteren referenties wanneer ze worden samengesteld en serviceclients gebruiken deze referenties om aanvragen voor de service te verifiëren.

De Azure Identity-bibliotheek is gericht op OAuth-verificatie met Microsoft Entra-id en biedt verschillende referentieklassen die een Microsoft Entra-token kunnen verkrijgen om serviceaanvragen te verifiëren. Alle referentieklassen in deze bibliotheek zijn implementaties van de TokenCredential abstracte klasse in azure-core en u kunt ze gebruiken om serviceclients te maken die kunnen worden geverifieerd met een TokenCredential.

DefaultAzureCredential is geschikt voor de meeste scenario's waarbij de toepassing uiteindelijk wordt uitgevoerd in de Azure Cloud. DefaultAzureCredential combineert referenties die vaak worden gebruikt voor verificatie bij implementatie, met referenties die worden gebruikt voor verificatie in een ontwikkelomgeving. Zie voor meer informatie, inclusief voorbeelden met behulp DefaultAzureCredentialvan, de sectie Standaard azure-referenties van Verificatie van door Azure gehoste Java-toepassingen.

Voorbeelden

Zoals vermeld in De Azure SDK voor Java gebruiken, verschillen de beheerbibliotheken enigszins. Een van de manieren waarop ze verschillen, is dat er bibliotheken zijn voor het verbruik van Azure-services, clientbibliotheken en bibliotheken voor het beheren van Azure-services, ook wel beheerbibliotheken genoemd. In de volgende secties vindt u een kort overzicht van verificatie in zowel client- als beheerbibliotheken.

Azure-clientbibliotheken verifiëren

In het volgende voorbeeld ziet u hoe u de SecretClientclientbibliotheek 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://<your Key Vault name>.vault.azure.net")
  .credential(new DefaultAzureCredentialBuilder().build())
  .buildClient();

Azure-beheerbibliotheken verifiëren

De Azure-beheerbibliotheken gebruiken dezelfde referentie-API's als de Azure-clientbibliotheken, maar vereisen ook een Azure-abonnements-id om de Azure-resources voor dat abonnement te beheren.

U vindt de abonnements-id's op de pagina Abonnementen in Azure Portal. U kunt ook de volgende Azure CLI-opdracht gebruiken om abonnements-id's op te halen:

az account list --output table

U kunt de abonnements-id instellen in de AZURE_SUBSCRIPTION_ID omgevingsvariabele. AzureProfile haalt deze id op als de standaardabonnements-id tijdens het maken van een Manager exemplaar in het volgende voorbeeld:

AzureResourceManager azureResourceManager = AzureResourceManager.authenticate(
        new DefaultAzureCredentialBuilder().build(),
        new AzureProfile(AzureEnvironment.AZURE))
    .withDefaultSubscription();

DefaultAzureCredential In dit voorbeeld wordt een AzureResourceManager exemplaar geverifieerd met behulp van DefaultAzureCredential. U kunt ook andere tokenreferentie-implementaties gebruiken die worden aangeboden in de Azure Identity-bibliotheek in plaats van DefaultAzureCredential.

Problemen oplossen

Zie Problemen met Azure Identity Authentication oplossen voor hulp.

Volgende stappen

In dit artikel is de Azure Identity-functionaliteit geïntroduceerd die beschikbaar is in de Azure SDK voor Java. Het wordt in veel gevallen beschreven DefaultAzureCredential als gebruikelijk en geschikt. In de volgende artikelen worden andere manieren beschreven om te verifiëren met behulp van de Azure Identity-bibliotheek en vindt u meer informatie over DefaultAzureCredential: