JavaScript-apps verifiëren bij Azure-services tijdens lokale ontwikkeling met behulp van ontwikkelaarsaccounts

Wanneer u cloudtoepassingen maakt, moeten ontwikkelaars fouten opsporen en toepassingen testen op hun lokale werkstation. Wanneer een toepassing wordt uitgevoerd op het werkstation van een ontwikkelaar tijdens de lokale ontwikkeling, moet deze nog steeds worden geverifieerd bij alle Azure-services die door de app worden gebruikt. In dit artikel wordt beschreven hoe u de Azure-referenties van een ontwikkelaar gebruikt om de app tijdens lokale ontwikkeling bij Azure te verifiëren.

Een diagram met een lokale dev-app die een service-principal uit een .env-bestand haalt en die identiteit gebruikt om verbinding te maken met Azure-resources.

Voor een app om tijdens lokale ontwikkeling bij Azure te verifiëren met behulp van de Azure-referenties van de ontwikkelaar, moet de ontwikkelaar zijn aangemeld bij Azure vanuit de Visual Studio Code Azure Tools-extensie, de Azure CLI of Azure PowerShell. De Azure SDK voor JavaScript kan detecteren dat de ontwikkelaar is aangemeld vanuit een van deze hulpprogramma's en vervolgens de benodigde referenties ophaalt uit de cache met referenties om de app te verifiëren bij Azure als de aangemelde gebruiker.

Deze benadering is het eenvoudigst in te stellen voor een ontwikkelteam, omdat deze gebruikmaakt van de bestaande Azure-accounts van de ontwikkelaars. Het account van een ontwikkelaar heeft echter waarschijnlijk meer machtigingen dan vereist is voor de toepassing, waardoor de machtigingen van de app in productie worden overschreden. Als alternatief kunt u service-principals voor toepassingen maken die moeten worden gebruikt tijdens de lokale ontwikkeling. Dit kan worden beperkt tot alleen de toegang die nodig is voor de app.

1 - Microsoft Entra-groep maken voor lokale ontwikkeling

Omdat er bijna altijd meerdere ontwikkelaars zijn die aan een toepassing werken, is het raadzaam eerst een Microsoft Entra-groep te maken om de rollen (machtigingen) die de app nodig heeft in lokale ontwikkeling in te kapselen. Dit biedt de volgende voordelen.

  • Elke ontwikkelaar weet zeker dat dezelfde rollen zijn toegewezen omdat rollen op groepsniveau worden toegewezen.
  • Als er een nieuwe rol nodig is voor de app, hoeft deze alleen te worden toegevoegd aan de Microsoft Entra-groep voor de app.
  • Als een nieuwe ontwikkelaar lid wordt van het team, moet deze worden toegevoegd aan de juiste Microsoft Entra-groep om de juiste machtigingen te krijgen om aan de app te kunnen werken.

Als u een bestaande Microsoft Entra-groep voor uw ontwikkelteam hebt, kunt u die groep gebruiken. Voer anders de volgende stappen uit om een Microsoft Entra-groep te maken.

Instructies Schermafbeelding
Navigeer naar de pagina Microsoft Entra-id in Azure Portal door Microsoft Entra-id in het zoekvak boven aan de pagina te typen en vervolgens Microsoft Entra-id te selecteren onder services. Een schermopname die laat zien hoe u de bovenste zoekbalk in Azure Portal gebruikt om naar de pagina Microsoft Entra-id te zoeken en te navigeren.
Selecteer Groepen in het linkermenu op de pagina Microsoft Entra-id. Een schermopname van de locatie van de menuopdracht Groepen in het linkermenu van de pagina Standaardmap van Microsoft Entra-id.
Selecteer Nieuwe groep op de pagina Alle groepen. Een schermopname van de locatie van de knop Nieuwe groep op de pagina Alle groepen.
Op de pagina Nieuwe groep :
  1. GroepstypeBeveiliging.
  2. Groepsnaam → A-naam voor de beveiligingsgroep, meestal gemaakt op basis van de naam van de toepassing. Het is ook handig om een tekenreeks zoals local-dev op te nemen in de naam van de groep om het doel van de groep aan te geven.
  3. Groepsbeschrijving → Een beschrijving van het doel van de groep.
  4. Selecteer de koppeling Geen leden geselecteerd onder Leden om leden toe te voegen aan de groep.
Een schermopname die laat zien hoe u een nieuwe Microsoft Entra-groep maakt. De locatie van de koppeling die u wilt selecteren om leden aan deze groep toe te voegen, is gemarkeerd.
In het dialoogvenster Leden toevoegen:
  1. Gebruik het zoekvak om de lijst met gebruikersnamen in de lijst te filteren.
  2. Kies een of meer gebruikers voor lokale ontwikkeling voor deze app. Terwijl u een object kiest, wordt het object verplaatst naar de lijst met geselecteerde items onder aan het dialoogvenster.
  3. Wanneer u klaar bent, kiest u de knop Selecteren .
Een schermopname van het dialoogvenster Leden toevoegen waarin wordt getoond hoe u ontwikkelaarsaccounts selecteert die in de groep moeten worden opgenomen.
Selecteer Op de pagina Nieuwe groep maken de optie Maken om de groep te maken.

De groep wordt gemaakt en u gaat terug naar de pagina Alle groepen . Het kan tot 30 seconden duren voordat de groep wordt weergegeven en mogelijk moet u de pagina vernieuwen vanwege caching in Azure Portal.
Een schermopname van de pagina Nieuwe groep waarin wordt getoond hoe u het proces voltooit door de knop Maken te selecteren.

2 - Rollen toewijzen aan de Microsoft Entra-groep

Vervolgens moet u bepalen welke rollen (machtigingen) uw app nodig heeft voor welke resources en welke rollen aan uw app worden toegewezen. In dit voorbeeld worden de rollen toegewezen aan de Microsoft Entra-groep die in stap 1 is gemaakt. Rollen kunnen aan een resource, resourcegroep of abonnementsbereik worden toegewezen. In dit voorbeeld ziet u hoe u rollen toewijst aan het bereik van de resourcegroep, omdat de meeste toepassingen al hun Azure-resources groeperen in één resourcegroep.

Instructies Schermafbeelding
Zoek de resourcegroep voor uw toepassing door te zoeken naar de naam van de resourcegroep met behulp van het zoekvak boven aan Azure Portal.

Navigeer naar uw resourcegroep door de naam van de resourcegroep te selecteren onder de kop Resourcegroepen in het dialoogvenster.
Een schermopname die laat zien hoe u het bovenste zoekvak in Azure Portal kunt gebruiken om naar de resourcegroep te gaan waaraan u rollen (machtigingen) wilt toewijzen.
Selecteer op de pagina voor de resourcegroep toegangsbeheer (IAM) in het menu aan de linkerkant. Een schermopname van de pagina resourcegroep met de locatie van het menu-item Toegangsbeheer (IAM).
Op de pagina Toegangsbeheer (IAM):
  1. Selecteer het tabblad Roltoewijzingen.
  2. Selecteer + Toevoegen in het bovenste menu en voeg vervolgens roltoewijzing toe in de resulterende vervolgkeuzelijst.
Een schermopname van het navigeren naar het tabblad Roltoewijzingen en de locatie van de knop die wordt gebruikt om roltoewijzingen toe te voegen aan een resourcegroep.
De pagina Roltoewijzing toevoegen bevat alle rollen die kunnen worden toegewezen voor de resourcegroep.
  1. Gebruik het zoekvak om de lijst te filteren op een beter beheerbare grootte. In dit voorbeeld ziet u hoe u filtert op Storage Blob-rollen.
  2. Selecteer de rol die u wilt toewijzen.
    Selecteer Volgende om naar het volgende scherm te gaan.
Een schermopname van het filteren en selecteren van roltoewijzingen die moeten worden toegevoegd aan de resourcegroep.
Op de volgende pagina Roltoewijzing toevoegen kunt u opgeven aan welke gebruiker de rol moet toewijzen.
  1. Selecteer Gebruiker, groep of service-principal onder Toegang toewijzen aan.
  2. Selecteer + Leden selecteren onder Leden
Aan de rechterkant van Azure Portal wordt een dialoogvenster geopend.
Een schermopname van het keuzerondje om een rol toe te wijzen aan een Microsoft Entra-groep en de koppeling die wordt gebruikt om de groep te selecteren waaraan de rol moet worden toegewezen.
In het dialoogvenster Leden selecteren :
  1. Het tekstvak Selecteren kan worden gebruikt om de lijst met gebruikers en groepen in uw abonnement te filteren. Typ indien nodig de eerste paar tekens van de Microsoft Entra-groep voor lokale ontwikkeling die u voor de app hebt gemaakt.
  2. Selecteer de microsoft Entra-groep voor lokale ontwikkeling die is gekoppeld aan uw toepassing.
Selecteer Selecteren onderaan het dialoogvenster om door te gaan.
Een schermopname van het filteren op en selecteren van de Microsoft Entra-groep voor de toepassing in het dialoogvenster Leden selecteren.
De Microsoft Entra-groep wordt weergegeven als geselecteerd in het scherm Roltoewijzing toevoegen.

Selecteer Beoordelen + toewijzen om naar de laatste pagina te gaan en vervolgens opnieuw beoordelen en toewijzen om het proces te voltooien.
Een schermopname van de voltooide pagina Roltoewijzing toevoegen en de locatie van de knop Beoordelen en toewijzen die wordt gebruikt om het proces te voltooien.

3 - Aanmelden bij Azure met behulp van VS Code, de Azure CLI of Azure PowerShell

Open een terminal op uw ontwikkelwerkstation en meld u vanuit Azure PowerShell aan bij Azure.

Connect-AzAccount

4 - DefaultAzureCredential implementeren in uw toepassing

Als u Azure SDK-clientobjecten wilt verifiëren bij Azure, moet uw toepassing de DefaultAzureCredential klasse van het @azure/identity pakket gebruiken. In dit scenario DefaultAzureCredential wordt opeenvolgend gecontroleerd of de ontwikkelaar zich heeft aangemeld bij Azure met behulp van de extensie azure-hulpprogramma's van VS Code, de Azure CLI of Azure PowerShell. Als de ontwikkelaar is aangemeld bij Azure met behulp van een van deze hulpprogramma's, worden de referenties die worden gebruikt om u aan te melden bij het hulpprogramma door de app gebruikt om zich bij Azure te verifiëren.

Begin met het toevoegen van het @azure/identiteitspakket aan uw toepassing.

npm install @azure/identity

Voor elke JavaScript-code waarmee een Azure SDK-clientobject in uw app wordt gemaakt, wilt u het volgende doen:

  1. Importeer de DefaultAzureCredential klasse uit de @azure/identity module.
  2. Maak een DefaultAzureCredential object.
  3. Geef het DefaultAzureCredential object door aan de objectconstructor van de Azure SDK-client.

Een voorbeeld hiervan wordt weergegeven in het volgende codesegment.

import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';

// Acquire a credential object
const tokenCredential = DefaultAzureCredential();

const blobServiceClient = BlobServiceClient(
        `https://${accountName}.blob.core.windows.net`,
        tokenCredential
);

DefaultAzureCredential detecteert automatisch het verificatiemechanisme dat is geconfigureerd voor de app en haalt de benodigde tokens op om de app bij Azure te verifiëren. Als een toepassing gebruikmaakt van meer dan één SDK-client, kan hetzelfde referentieobject worden gebruikt voor elk SDK-clientobject.