Delen via


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

Tijdens lokale ontwikkeling moeten toepassingen worden geverifieerd bij Azure om toegang te krijgen tot verschillende Azure-services. Twee veelvoorkomende methoden voor lokale verificatie zijn het gebruik te maken van een service-principal of om een ontwikkelaarsaccount te gebruiken. In dit artikel wordt uitgelegd hoe u een ontwikkelaarsaccount gebruikt. In de volgende secties leert u het volgende:

  • Microsoft Entra-groepen gebruiken om machtigingen voor meerdere ontwikkelaarsaccounts efficiënt te beheren
  • Rollen toewijzen aan ontwikkelaarsaccounts om de reikwijdte van toestemmingen te bepalen
  • Aanmelden bij ondersteunde lokale ontwikkelhulpprogramma's
  • Verifiëren met behulp van een ontwikkelaarsaccount vanuit uw app-code

A diagram showing an app running in local development using a developer tool identity to connect to Azure resources.Een diagram dat een app toont die lokaal wordt uitgevoerd met een ontwikkelaarstoolidentiteit voor verbinding met Azure-resources.

Voor een app die tijdens lokale ontwikkeling bij Azure kan worden geverifieerd met behulp van de Azure-referenties van de ontwikkelaar, moet de ontwikkelaar zijn aangemeld bij Azure vanuit een van de volgende ontwikkelhulpprogramma's:

  • Azure-CLI
  • Azure Developer CLI
  • Azure PowerShell
  • Visual Studio

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 bij Azure als de aangemelde gebruiker.

Deze benadering 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 vereist is voor de app, waardoor de machtigingen van de app 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 Microsoft Entra ID overzichtspagina in Azure Portal.

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

  3. Op de pagina Groepen, selecteer Nieuwe groep.

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

    • groepstype: selecteer Security.
    • groepsnaam: voer een naam in voor de groep die een verwijzing naar de naam van de app of omgeving bevat.
    • beschrijving van de groep: voer een beschrijving in waarmee het doel van de groep wordt uitgelegd.

    Een schermopname waarin wordt getoond hoe u een groep maakt in 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 serviceprincipal die u eerder hebt gemaakt en selecteer deze uit de gefilterde resultaten. Kies de Select knop onderaan het deelvenster om uw selectie te bevestigen.

  7. Selecteer Maak aan onder aan de Nieuwe groep pagina om de groep te maken en terug te keren naar de Alle groepen pagina. 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 Azure Portal naar de pagina Overzicht van de resourcegroep die uw app bevat.

  2. Selecteer Toegangsbeheer (IAM) in de linker navigatie.

  3. Selecteer op de Toegangsbeheer (IAM) pagina, de optie + Toevoegen en kies vervolgens Roltoewijzing toevoegen uit de vervolgkeuzelijst. 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 vervolgens Volgende.

  5. Op het tabblad Leden:

    • Voor de Toegang tot waarde toewijzen, selecteert u gebruiker, groep of service-principal.
    • Voor de leden waarde, kies + Selecteer leden om het deelvenster Selecteer leden te openen.
    • Zoek naar de Microsoft Entra-groep die u eerder hebt gemaakt en selecteer deze in de gefilterde resultaten. Selecteer Selecteer om de groep te selecteren en het flyoutpaneel te sluiten.
    • Selecteer Beoordelen en wijs onder aan het Leden tabblad toe.

    Een schermopname waarin wordt getoond hoe u een rol toewijst aan de Microsoft Entra-groep.

  6. Op het tabblad Review + assign, selecteer onderaan de pagina Review + assign.

Aanmelden bij Azure met behulp van hulpprogramma's voor ontwikkelaars

Meld u vervolgens aan bij Azure met behulp van een van de verschillende ontwikkelhulpprogramma's die kunnen worden gebruikt 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 2017 of hoger gebruiken, kunnen zich verifiëren met hun ontwikkelaarsaccount via de IDE. Apps die gebruikmaken van DefaultAzureCredential of VisualStudioCredential kunnen dit account detecteren en gebruiken om app-aanvragen te verifiëren wanneer ze lokaal worden uitgevoerd. Dit account wordt ook gebruikt wanneer u apps rechtstreeks vanuit Visual Studio naar Azure publiceert.

Belangrijk

U moet de Azure-ontwikkeling workload installeren om Visual Studio-hulpprogramma's in te schakelen voor Azure-verificatie, -ontwikkeling en -implementatie.

  1. Navigeer in Visual Studio naar Tools>Options om het dialoogvenster Opties te openen.

  2. Typ in het Zoekopties vak bovenaan Azure om de beschikbare opties te filteren.

  3. Kies accountselectie onder Azure-serviceverificatie.

  4. Selecteer de vervolgkeuzelijst onder Kies een account en kies ervoor om een Microsoft-account toe te voegen.

  5. Voer in het venster dat wordt geopend de referenties voor uw gewenste Azure-account in en bevestig uw invoer.

    Een schermopname waarin wordt getoond hoe u zich aanmeldt bij Azure met behulp van Visual Studio.

  6. Klik OK om het dialoogvenster Opties te sluiten.

Verifiëren bij Azure-services vanuit uw app

De Azure Identity-bibliotheek biedt verschillende referenties: implementaties van TokenCredential die zijn aangepast voor de ondersteuning van diverse scenario's en Microsoft Entra-authenticatiestromen. In de volgende stappen ziet u hoe u DefaultAzureCredential gebruikt wanneer u lokaal met gebruikersaccounts werkt.

De code implementeren

DefaultAzureCredential- is een bewust gekozen en geordende reeks van mechanismen voor authenticatie bij Microsoft Entra ID. Elk verificatiemechanisme is een klasse die is afgeleid van de TokenCredential-klasse en wordt een authenticatiegegevens genoemd. Tijdens de uitvoertijd probeert DefaultAzureCredential te authenticeren met behulp van de eerste referentie. Als deze referentie geen toegangstoken kan verkrijgen, wordt de volgende referentie in de reeks geprobeerd, enzovoort, totdat een toegangstoken is verkregen. Op deze manier kan uw app verschillende referenties in verschillende omgevingen gebruiken zonder omgevingsspecifieke code te schrijven.

Om DefaultAzureCredential te gebruiken, voegt u de Azure.Identity en eventueel de Microsoft.Extensions.Azure pakketten toe aan uw toepassing:

Navigeer in een terminal van uw keuze naar de projectmap van de toepassing en voer de volgende opdrachten uit:

dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure

Azure-services worden geopend met behulp van gespecialiseerde clientklassen uit de verschillende Azure SDK-clientbibliotheken. Deze klassen en uw eigen aangepaste services moeten worden geregistreerd, zodat ze kunnen worden geopend via afhankelijkheidsinjectie in uw app. Voer in Program.cs de volgende stappen uit om een clientklasse te registreren en DefaultAzureCredential:

  1. Neem de Azure.Identity en Microsoft.Extensions.Azure naamruimten op via using instructies.
  2. Registreer de Azure-serviceclient met behulp van de bijbehorende Add-voorvoegselextensiemethode.
  3. Geef een exemplaar van DefaultAzureCredential door aan de UseCredential methode.
builder.Services.AddAzureClients(clientBuilder =>
{
    clientBuilder.AddBlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"));

    clientBuilder.UseCredential(new DefaultAzureCredential());
});

Een alternatief voor de UseCredential methode is om de referentie rechtstreeks aan de serviceclient te verstrekken.

builder.Services.AddSingleton<BlobServiceClient>(_ =>
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));