Azure-verificatie met Java en Azure Identity
Dit artikel bevat een overzicht van de Azure Identity-bibliotheek voor Java, 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:
- Azure-verificatie in Java-ontwikkelomgevingen, waarmee:
- IDEA IntelliJ-verificatie, met de aanmeldingsgegevens die zijn opgehaald uit de Azure-toolkit voor IntelliJ.
- Azure CLI-verificatie, met de aanmeldingsgegevens die zijn opgeslagen in de Azure CLI
- Azure Developer CLI-verificatie, met de aanmeldingsgegevens die zijn opgeslagen in de Azure Developer CLI
- Azure PowerShell-verificatie, met de aanmeldingsgegevens die zijn opgeslagen in Azure PowerShell
- Toepassingen verifiëren die worden gehost in Azure, wat het volgende mogelijk maakt:
DefaultAzureCredential
- Verificatie van beheerde identiteit
- Verificatie met service-principals, waarmee:
- Verificatie van clientgeheim
- Verificatie van clientcertificaten
- Verificatie met gebruikersreferenties, waarmee:
- Interactieve browserverificatie
- Verificatie van apparaatcode
- Verificatie van gebruikersnaam/wachtwoord
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 de sectie DefaultAzureCredential van verificatie van door Azure gehoste Java-toepassingen voor meer informatie, waaronder voorbeelden die worden gebruiktDefaultAzureCredential
.
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 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://<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
.
Probleemoplossing
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
: