Delen via


Azure gehoste Java-apps verifiëren voor Azure resources met behulp van een door de gebruiker toegewezen beheerde identiteit

De aanbevolen methode voor het verifiëren van een Azure gehoste app voor andere Azure resources is het gebruik van een beheerde identiteit. De meeste Azure-services ondersteunen deze benadering, waaronder apps die worden gehost op Azure App Service, Azure Container Apps en Azure Virtual Machines. Zie Azure services en resourcetypen die beheerde identiteiten ondersteunen voor meer informatie. Zie Authenticate Java apps to Azure services met behulp van de Azure Identity Library voor meer informatie over verschillende verificatietechnieken en benaderingen.

In de volgende secties krijgt u meer informatie over:

  • Essentiële concepten voor beheerde identiteiten.
  • Een door de gebruiker toegewezen beheerde identiteit voor uw app maken.
  • Rollen toewijzen aan de door de gebruiker toegewezen beheerde identiteit.
  • Verificatie uitvoeren met behulp van de door de gebruiker toegewezen beheerde identiteit vanuit uw app-code.

Essentiële concepten voor beheerde identiteiten

Met een beheerde identiteit kan uw app veilig verbinding maken met andere Azure resources zonder gebruik te maken van geheime sleutels of andere toepassingsgeheimen. Intern houdt Azure bij welke identiteit het is en met welke resources het verbinding mag maken. Azure deze informatie gebruikt om automatisch Microsoft Entra tokens voor de app te verkrijgen, zodat deze verbinding kan maken met andere Azure resources.

Er zijn twee typen beheerde identiteiten waarmee u rekening moet houden bij het configureren van uw gehoste app:

  • System-assigned beheerde identiteiten worden rechtstreeks ingeschakeld op een Azure-resource en zijn gekoppeld aan de levenscyclus. Wanneer de resource wordt verwijderd, verwijdert Azure automatisch de identiteit voor u. Door het systeem toegewezen identiteiten bieden een minimalistische benadering voor het gebruik van beheerde identiteiten.
  • Gebruiker toegewezen beheerde identiteiten worden gemaakt als zelfstandige Azure resources en bieden meer flexibiliteit en mogelijkheden. Ze zijn ideaal voor oplossingen met meerdere Azure resources die dezelfde identiteit en machtigingen moeten delen. Als bijvoorbeeld meerdere virtuele machines toegang moeten hebben tot dezelfde set Azure resources, biedt een door de gebruiker toegewezen beheerde identiteit herbruikbaar en geoptimaliseerd beheer.

Aanbeveling

Meer informatie over het selecteren en beheren van door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten in het artikel met aanbevelingen voor aanbevolen procedures voor beheerde identiteiten.

In de volgende secties worden de stappen beschreven voor het inschakelen en gebruiken van een door de gebruiker toegewezen beheerde identiteit voor een Azure gehoste app. Als u een door het systeem toegewezen beheerde identiteit wilt gebruiken, raadpleegt u Java-apps die op Azure worden gehost toegang geven tot Azure-resources met behulp van een door het systeem toegewezen beheerde identiteit.

Maak een door de gebruiker toegewezen beheerde identiteit

Door de gebruiker toegewezen beheerde identiteiten worden gemaakt als zelfstandige resources in uw Azure-abonnement met behulp van de Azure-portal of de Azure CLI. Azure CLI opdrachten kunnen worden uitgevoerd in de Azure Cloud Shell of op een werkstation waarop de Azure CLI is geïnstalleerd.

  1. Voer in de Azure-portal Beheerde identiteiten in de hoofdzoekbalk in en selecteer het overeenkomende resultaat onder de sectie Services.

  2. Selecteer op de pagina Beheerde identiteiten de optie + Maken.

    Een schermopname van de pagina voor het beheren van door de gebruiker toegewezen beheerde identiteiten.

  3. Selecteer op de pagina Door gebruiker toegewezen beheerde identiteit maken een abonnement, een resourcegroep en een regio voor de door gebruiker toegewezen beheerde identiteit, en geef vervolgens een naam op.

  4. Selecteer Beoordelen en maken om uw invoer te controleren en te valideren.

    Een schermopname van het formulier voor het maken van een door de gebruiker toegewezen beheerde identiteit.

  5. Selecteer Create om de door de gebruiker toegewezen beheerde identiteit te maken.

  6. Nadat de identiteit is gemaakt, selecteer Ga naar de resource.

  7. Op de pagina Overzicht van de nieuwe identiteit kopieert u de -client-id om later te gebruiken wanneer u de toepassingscode configureert.

De beheerde identiteit toewijzen aan uw app

Een door de gebruiker toegewezen beheerde identiteit kan worden gekoppeld aan een of meer Azure resources. Alle resources die gebruikmaken van die identiteit krijgen de machtigingen die via de rollen van die identiteit worden verleend.

  1. Navigeer in de Azure-portal naar de resource die als host fungeert voor uw app-code, zoals een Azure App Service of Azure Container Apps exemplaar.

  2. Vouw op de pagina Overzicht van de resource de Instellingen uit en selecteer Identiteit in de navigatie.

  3. Ga op de pagina Identity naar het tabblad Gebruiker toegewezen.

  4. Selecteer + Voeg toe om het deelvenster Toevoegen van door de gebruiker toegewezen beheerde identiteit te openen.

  5. Gebruik in het paneel Gebruikerstoewijzing voor beheerde identiteit toevoegen de keuzelijst Abonnement om de zoekresultaten voor uw identiteiten te filteren. Gebruik het zoekvak Gebruiker toegewezen beheerde identiteiten om de door de gebruiker toegewezen beheerde identiteit te zoeken die u hebt ingeschakeld voor de Azure resource die als host fungeert voor uw app.

  6. Selecteer de identiteit en kies Add onder aan het deelvenster om door te gaan.

    Een schermopname die laat zien hoe u een door de gebruiker toegewezen beheerde identiteit koppelt aan een app.

Rollen toewijzen aan de beheerde identiteit

Bepaal vervolgens welke rollen uw app nodig heeft en wijs deze rollen toe aan de beheerde identiteit. U kunt rollen toewijzen aan een beheerde identiteit op de volgende niveaus:

  • Resource: de toegewezen rollen zijn alleen van toepassing op die specifieke resource.
  • Resourcegroep: De toegewezen rollen zijn van toepassing op alle bronnen in de resourcegroep.
  • Abonnement: de toegewezen rollen zijn van toepassing op alle resources in het abonnement.

In het volgende voorbeeld ziet u hoe u rollen toewijst binnen het bereik van de resourcegroep, omdat veel apps al hun gerelateerde Azure resources beheren met behulp van één resourcegroep.

  1. Navigeer naar de pagina Overzicht van de resourcegroep die de app bevat met de door de gebruiker toegewezen beheerde identiteit.

  2. Selecteer IAM- (Access Control) in het linkernavigatievenster.

  3. Selecteer op de pagina Toegangsbeheer (IAM) + toevoegen in het bovenste menu en kies vervolgens Roltoewijzing toevoegen om naar de pagina Roltoewijzing toevoegen te navigeren.

    Een schermopname van het openen van de pagina voor identiteitsroltoewijzing.

  4. Op de pagina Roltoewijzing toevoegen pagina wordt een werkstroom met tabbladen met meerdere stappen weergegeven om rollen toe te wijzen aan identiteiten. Gebruik op het eerste tabblad Rol het zoekvak bovenaan om de rol te vinden die u aan de identiteit wilt toewijzen.

  5. Selecteer de rol in de resultaten en kies vervolgens Volgende om naar het tabblad Leden te gaan.

  6. Voor de optie Toegang toewijzen aan selecteer Beheerde identiteit.

  7. Voor de optie Leden kiest u + Selecteer leden om het Selecteer beheerde identiteiten deelvenster te openen.

  8. Gebruik in het deelvenster Beheerde identiteiten selecteren de dropdowns Abonnement en Beheerde identiteit om de zoekresultaten voor uw beheerde identiteiten te filteren. Gebruik het zoekvak Select om de door de gebruiker toegewezen beheerde identiteit te zoeken die u hebt ingeschakeld voor de Azure resource die als host fungeert voor uw app.

    Een schermopname van het toewijzingsproces voor beheerde identiteiten.

  9. Selecteer de identiteit en kies Selecteer onderaan het deelvenster om door te gaan.

  10. Selecteer Beoordelen en toewijzen onderaan de pagina.

  11. Selecteer op het laatste tabblad Beoordelen en toewijzen, Beoordelen en toewijzen om de werkstroom te voltooien.

Verifiëren bij Azure services vanuit uw app

De Azure Identity library biedt verschillende referentietypen als implementaties van TokenCredential. Elke implementatie ondersteunt verschillende scenario's en Microsoft Entra verificatiestromen. Geef voor door de gebruiker toegewezen beheerde identiteiten de client-id, resource-id of object-id van de identiteit op wanneer u de referentie configureert.

De code implementeren

Voeg de azure-identity afhankelijkheid toe aan uw pom.xml bestand:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

U opent Azure services met behulp van gespecialiseerde clientklassen uit de Azure SDK-clientbibliotheken. In de volgende codevoorbeelden ziet u hoe u de referentie configureert voor door de gebruiker toegewezen beheerde identiteitverificatie.

DefaultAzureCredential gebruiken

Gebruik DefaultAzureCredential als referentie voor Azure gehoste apps. Voor door de gebruiker toegewezen beheerde identiteiten configureert u de client-id met behulp van de managedIdentityClientId methode:

import com.azure.identity.DefaultAzureCredential;
import com.azure.identity.DefaultAzureCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Configure DefaultAzureCredential with the user-assigned managed identity's client ID
DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .managedIdentityClientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

ManagedIdentityCredential gebruiken

Als u expliciet de referentie voor de beheerde identiteit wilt gebruiken en het opzoeken van de referentieketen in DefaultAzureCredential wilt voorkomen, gebruik dan ManagedIdentityCredential rechtstreeks. Voor door de gebruiker toegewezen beheerde identiteiten kunt u de identiteit opgeven met behulp van de client-id, resource-id of object-id.

Gebruik de client-id om een beheerde identiteit te identificeren wanneer u toepassingen of services configureert die moeten worden geverifieerd met behulp van die identiteit.

Haal de client-id op die is toegewezen aan een door de gebruiker toegewezen beheerde identiteit met behulp van de volgende opdracht:

az identity show \
    --resource-group <resource-group-name> \
    --name <identity-name> \
    --query clientId \
    --output tsv

Configureer ManagedIdentityCredential met de client-id:

import com.azure.identity.ManagedIdentityCredential;
import com.azure.identity.ManagedIdentityCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

// Specify the client ID of the user-assigned managed identity
ManagedIdentityCredential credential = new ManagedIdentityCredentialBuilder()
    .clientId("<user-assigned-managed-identity-client-id>")
    .build();

// Azure SDK client builders accept the credential as a parameter
SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Volgende stappen

Dit artikel heeft betrekking op verificatie met behulp van een door de gebruiker toegewezen beheerde identiteit. 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 om te verifiëren:

Als u problemen ondervindt met betrekking tot Azure-gehoste toepassingsverificatie, raadpleegt u Roubleshoot Azure gehoste toepassingsverificatie.

Nadat u authenticatie onder de knie hebt, raadpleegt u logboekregistratie configureren in de Azure SDK voor Java voor informatie over de logboekregistratiefunctionaliteit die door de SDK wordt geboden.