Delen via


Java-apps verifiëren voor Azure services tijdens lokale ontwikkeling met behulp van ontwikkelaarsaccounts

Tijdens lokale ontwikkeling moeten toepassingen worden geverifieerd bij Azure voor toegang tot verschillende Azure services. U kunt lokaal verifiëren met behulp van een van de volgende methoden:

In dit artikel wordt uitgelegd hoe u kunt verifiëren met behulp van een ontwikkelaarsaccount met hulpprogramma's die worden ondersteund door de Azure Identity-bibliotheek. In dit artikel leert u het volgende:

  • Het gebruik van Microsoft Entra groepen voor het efficiënt beheren van machtigingen voor meerdere ontwikkelaarsaccounts.
  • Rollen toewijzen aan ontwikkelaarsaccounts voor bereikmachtigingen.
  • Aanmelden bij ondersteunde lokale ontwikkelhulpprogramma's.
  • Verifiëren met behulp van een ontwikkelaarsaccount vanuit uw app-code.

Ondersteunde ontwikkelhulpprogramma's voor verificatie

Tijdens lokale ontwikkeling kan een app worden geverifieerd bij Azure met behulp van uw Azure referenties. Voordat deze verificatie werkt, moet u zijn aangemeld bij Azure vanuit een hulpprogramma voor ontwikkelaars, zoals een van de volgende:

  • Azure CLI
  • AZURE Developer CLI
  • Azure PowerShell
  • Visual Studio Code
  • IntelliJ IDEE

De Azure Identity-bibliotheek kan detecteren dat de ontwikkelaar is aangemeld vanuit een van deze hulpprogramma's. De bibliotheek kan vervolgens het Microsoft Entra toegangstoken verkrijgen via het hulpprogramma om de app te verifiëren voor Azure als de aangemelde gebruiker.

Deze aanpak maakt gebruik van de bestaande Azure-accounts van de ontwikkelaar om het verificatieproces te stroomlijnen. Het account van een ontwikkelaar heeft echter waarschijnlijk meer machtigingen dan de app vereist, waardoor de machtigingen waarmee de app wordt uitgevoerd in productie worden overschreden. Als alternatief kunt u service-principals voor toepassingen maken voor gebruik tijdens de lokale ontwikkeling, waarbij u deze zo kunt instellen dat ze alleen de toegang hebben die nodig is voor de app.

Een Microsoft Entra groep maken voor lokale ontwikkeling

Maak een Microsoft Entra groep om de rollen (machtigingen) die de app nodig heeft in lokale ontwikkeling in te kapselen in plaats van de rollen toe te wijzen aan afzonderlijke service-principal-objecten. Deze aanpak biedt de volgende voordelen:

  • Elke ontwikkelaar heeft dezelfde rollen toegewezen op groepsniveau.
  • Als er een nieuwe rol nodig is voor de app, hoeft deze alleen aan de groep voor de app te worden toegevoegd.
  • Als een nieuwe ontwikkelaar lid wordt van het team, wordt er een nieuwe toepassingsservice-principal gemaakt voor de ontwikkelaar en toegevoegd aan de groep, zodat de ontwikkelaar over de juiste machtigingen beschikt om aan de app te werken.
  1. Navigeer naar de overzichtspagina Microsoft Entra ID in de Azure-portal.

  2. Selecteer Alle groepen in het menu aan de linkerkant.

  3. Selecteer Nieuwe groep op de pagina Groepen.

  4. Vul op de pagina Nieuwe groep de volgende formuliervelden in:

    • Groepstype: selecteer Beveiliging.
    • Groepsnaam: Voer een naam in voor de groep die een verwijzing naar de app- of omgevingsnaam bevat.
    • Groepsbeschrijving: Voer een beschrijving in waarmee het doel van de groep wordt uitgelegd.

    A-schermopname waarin wordt getoond hoe u een groep maakt in de Azure portal.

  5. Selecteer de koppeling Geen leden geselecteerd onder Leden om leden toe te voegen aan de groep.

  6. Zoek in het uitklapvenster dat wordt geopend naar de service-principal die u eerder hebt gemaakt en selecteer deze uit de gefilterde resultaten. Kies de knop Selecteren onderaan het deelvenster om uw selectie te bevestigen.

  7. Selecteer Maken onder aan de pagina Nieuwe groep om de groep te maken en terug te keren naar de pagina Alle groepen . Als de nieuwe groep niet wordt weergegeven, wacht u even en vernieuwt u de pagina.

Rollen toewijzen aan de groep

Bepaal vervolgens welke rollen (machtigingen) uw app nodig heeft voor welke resources en wijs deze rollen toe aan de Microsoft Entra groep die u hebt gemaakt. Aan groepen kan een rol worden toegewezen op het niveau van de bron, bron-groep of abonnement. In dit voorbeeld ziet u hoe u rollen toewijst binnen het bereik van de resourcegroep, omdat de meeste apps al hun Azure resources groeperen in één resourcegroep.

  1. Navigeer in de Azure-portal naar de pagina Overview van de resourcegroep die uw app bevat.

  2. Selecteer Toegangsbeheer (IAM) in de linkernavigatie.

  3. Selecteer + Toevoegen en kies vervolgens roltoewijzing toevoegen in de vervolgkeuzelijst op de pagina Toegangsbeheer (IAM). De pagina Roltoewijzing toevoegen bevat verschillende tabbladen voor het configureren en toewijzen van rollen.

  4. Gebruik op het tabblad Rol het zoekvak om de rol te vinden die u wilt toewijzen. Selecteer de rol en kies Volgende.

  5. Op het tabblad Leden :

    • Voor de waarde 'toegang toewijzen aan' selecteert u gebruiker, gebruikersgroep of service-principal.
    • Voor de waarde Leden kiest u + Leden selecteren om het flyoutdeelvenster Leden selecteren te openen.
    • Zoek naar de Microsoft Entra groep die u eerder hebt gemaakt en selecteer deze in de gefilterde resultaten. Kies Selecteren om de groep te selecteren en het uitklapdeelvenster te sluiten.
    • Selecteer Beoordelen en toewijzen onderaan het tabblad Leden .

    A schermopname waarin wordt getoond hoe u een rol toewijst aan de Microsoft Entra group.

  6. Selecteer op het tabblad Controleren en toewijzen de optie Controleren en toewijzen onderaan de pagina.

Meld u aan bij Azure met behulp van hulpprogramma's voor ontwikkelaars

Meld u vervolgens aan bij Azure met behulp van een van de ontwikkelhulpprogramma's die u kunt gebruiken om verificatie uit te voeren in uw ontwikkelomgeving. Het account dat u verifieert, moet ook aanwezig zijn in de Microsoft Entra groep die u eerder hebt gemaakt en geconfigureerd.

Ontwikkelaars die Visual Studio Code gebruiken, kunnen zich rechtstreeks verifiëren met hun ontwikkelaarsaccount via de editor via de broker. Apps die DefaultAzureCredential of VisualStudioCodeCredential gebruiken, kunnen dit account vervolgens gebruiken om app-verzoeken te verifiëren via een naadloze single-sign-on ervaring.

  1. Ga in Visual Studio Code naar het deelvenster Extensions en installeer de extensie Azure Resources. Met deze extensie kunt u Azure resources rechtstreeks vanuit Visual Studio Code bekijken en beheren. Het maakt ook gebruik van de ingebouwde Visual Studio Code Microsoft-verificatieprovider voor verificatie met Azure.

    Schermafbeelding met de extensie Azure Resources.

  2. Open het opdrachtenpalet in Visual Studio Code en zoek en selecteer Azure: Aanmelden.

    Schermafbeelding van het aanmelden bij Azure in Visual Studio Code.

    Aanbeveling

    Open het opdrachtenpalet met Ctrl+Shift+P op Windows/Linux of Cmd+Shift+P in macOS.

Verifiëren bij Azure services vanuit uw app

De Azure Identity library biedt implementaties van TokenCredential die ondersteuning bieden voor verschillende scenario's en Microsoft Entra verificatiestromen. In de volgende stappen ziet u hoe u DefaultAzureCredential of een specifieke referentie voor het ontwikkelhulpprogramma gebruikt wanneer u lokaal met gebruikersaccounts werkt.

De code implementeren

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

    <dependency>
        <groupId>com.azure</groupId>
        <artifactId>azure-identity</artifactId>
    </dependency>
    
  2. Kies een van de referentie-implementaties op basis van uw scenario.

Een referentie gebruiken die specifiek is voor uw ontwikkelhulpprogramma

Geef een TokenCredential-exemplaar door dat overeenkomt met een specifiek ontwikkelhulpprogramma aan de Azure serviceclientconstructor, zoals AzureCliCredential.

import com.azure.identity.AzureCliCredential;
import com.azure.identity.AzureCliCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;

AzureCliCredential credential = new AzureCliCredentialBuilder().build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Elke referentie voor het hulpprogramma volgt hetzelfde patroon. Vervang het referentietype en de bijbehorende bouwer indien nodig.

  • AzureCliCredential / AzureCliCredentialBuilder
  • AzureDeveloperCliCredential / AzureDeveloperCliCredentialBuilder
  • AzurePowerShellCredential / AzurePowerShellCredentialBuilder
  • IntelliJCredential / IntelliJCredentialBuilder
  • VisualStudioCodeCredential / VisualStudioCodeCredentialBuilder

Een referentie gebruiken die beschikbaar is voor gebruik in elk ontwikkelhulpprogramma

Gebruik een DefaultAzureCredential exemplaar dat is geoptimaliseerd voor alle lokale ontwikkelhulpprogramma's. Voor dit voorbeeld is de omgevingsvariabele AZURE_TOKEN_CREDENTIALS vereist die is ingesteld op dev. Zie Een categorie referentietype uitsluiten voor meer informatie.

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

DefaultAzureCredential credential = new DefaultAzureCredentialBuilder()
    .requireEnvVars(AzureIdentityEnvVars.AZURE_TOKEN_CREDENTIALS)
    .build();

SecretClient client = new SecretClientBuilder()
    .vaultUrl("https://<your-key-vault-name>.vault.azure.net")
    .credential(credential)
    .buildClient();

Volgende stappen

Dit artikel heeft betrekking op verificatie tijdens de ontwikkeling met behulp van referenties die beschikbaar zijn op uw computer. 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 authenticatie van de ontwikkelomgeving, zie Problemen met authenticatie van de ontwikkelomgeving oplossen.

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.