Delen via


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

Bij het maken van cloudtoepassingen 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 waarin wordt getoond hoe een app die wordt uitgevoerd in de lokale ontwikkelaar de toepassingsservice-principal ophaalt uit een .env-bestand en die identiteit vervolgens 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 VS Code Azure Tools-extensie, de Azure CLI of Azure PowerShell. De Azure SDK voor .NET 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 als aangemelde gebruiker te verifiëren bij Azure.

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 het overschrijden van de machtigingen waarmee de app in productie wordt uitgevoerd. Als alternatief kunt u service-principals voor toepassingen maken die moeten worden gebruikt tijdens lokale ontwikkeling . Dit kan worden beperkt tot alleen de toegang die nodig is voor de app.

1 - Azure AD-groep maken voor lokale ontwikkeling

Omdat er bijna altijd meerdere ontwikkelaars zijn die aan een toepassing werken, is het raadzaam eerst een Azure AD-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 Azure AD-groep voor de app.
  • Als een nieuwe ontwikkelaar lid wordt van het team, moet deze worden toegevoegd aan de juiste Azure AD-groep om de juiste machtigingen te krijgen om aan de app te kunnen werken.

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

Instructies Schermafbeelding
Navigeer naar de Azure Active Directory-pagina in Azure Portal door Azure Active Directory in het zoekvak boven aan de pagina te typen en vervolgens Azure Active Directory te selecteren onder services. Een schermopname die laat zien hoe u de bovenste zoekbalk in Azure Portal gebruikt om naar de Azure Active Directory-pagina te zoeken en te navigeren.
Selecteer Groepen in het linkermenu op de pagina Azure Active Directory. Een schermopname van de locatie van het menu-item Groepen in het linkermenu van de azure Active Directory Default Directory-pagina.
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 waarin wordt getoond hoe u het formulier invult om een nieuwe Azure Active Directory-groep voor de toepassing te maken. In deze schermopname ziet u ook de locatie van de koppeling die u wilt selecteren om leden aan deze groep toe te voegen
In het dialoogvenster Leden toevoegen:
  1. Gebruik het zoekvak om de lijst met gebruikersnamen in de lijst te filteren.
  2. Selecteer de gebruiker(s) voor lokale ontwikkeling voor deze app. Wanneer objecten zijn geselecteerd, worden ze verplaatst naar de lijst met geselecteerde items onder aan het dialoogvenster.
  3. Wanneer u klaar bent, selecteert 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 Azure AD-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 Azure Active Directory-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 binnen 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 Azure AD-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 Azure AD-groep voor lokale ontwikkeling die u voor de app hebt gemaakt.
  2. Selecteer de Azure AD-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 Azure AD-groep voor de toepassing in het dialoogvenster Leden selecteren.
De Azure AD-groep wordt nu 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 .NET-hulpprogramma's

Vervolgens moet u zich aanmelden bij Azure met behulp van een van de verschillende .NET-hulpprogramma's. Het account waarin u zich aanmeldt, moet ook bestaan in de Azure Active Directory-groep die u eerder hebt gemaakt en geconfigureerd.

Navigeer in het bovenste menu van Visual Studio naar Extra>opties om het dialoogvenster Opties te openen. Typ in de zoekbalk linksboven Azure om de opties te filteren. Kies accountselectie onder azure-serviceverificatie.

Selecteer de vervolgkeuzelijst onder Een account kiezen en kies ervoor om een Microsoft-account toe te voegen. Er wordt een venster geopend waarin u wordt gevraagd een account te kiezen. Voer de referenties in voor uw gewenste Azure-account en selecteer vervolgens de bevestiging.

Een schermopname die laat zien hoe u zich aanmeldt bij Azure met behulp van Visual Studio.

4 - DefaultAzureCredential implementeren in uw toepassing

DefaultAzureCredential ondersteunt meerdere verificatiemethoden en bepaalt de verificatiemethode die tijdens runtime wordt gebruikt. Op deze manier kan uw app verschillende verificatiemethoden in verschillende omgevingen gebruiken zonder omgevingsspecifieke code te implementeren.

De volgorde en locaties waarin DefaultAzureCredential wordt gezocht naar referenties, vindt u op DefaultAzureCredential.

Als u wilt implementeren DefaultAzureCredential, voegt u eerst de Azure.Identity en eventueel de Microsoft.Extensions.Azure pakketten toe aan uw toepassing. U kunt dit doen met behulp van de opdrachtregel of de NuGet-Pakketbeheer.

Open een terminalomgeving naar keuze in de projectmap van de toepassing en voer de onderstaande opdracht in.

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

Azure-services worden over het algemeen geopend met behulp van bijbehorende clientklassen van de SDK. Deze klassen en uw eigen aangepaste services moeten worden geregistreerd in het Program.cs bestand, zodat ze kunnen worden geopend via afhankelijkheidsinjectie in uw app. Program.csVolg de onderstaande stappen om uw service en DefaultAzureCredential.

  1. Neem de Azure.Identity en Microsoft.Extensions.Azure naamruimten op met een using instructie.
  2. Registreer de Azure-service met behulp van relevante helpermethoden.
  3. Geef een exemplaar van het DefaultAzureCredential object door aan de UseCredential methode.

Een voorbeeld hiervan wordt weergegeven in het volgende codesegment.

using Microsoft.Extensions.Azure;
using Azure.Identity;

// Inside of Program.cs
builder.Services.AddAzureClients(x =>
{
    x.AddBlobServiceClient(new Uri("https://<account-name>.blob.core.windows.net"));
    x.UseCredential(new DefaultAzureCredential());
});

U kunt ook rechtstreeks in uw services gebruikmaken DefaultAzureCredential zonder de hulp van aanvullende Azure-registratiemethoden, zoals hieronder wordt weergegeven.

using Azure.Identity;

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

Wanneer de bovenstaande code wordt uitgevoerd op uw lokale werkstation tijdens de lokale ontwikkeling, wordt er gezocht in de omgevingsvariabelen voor een toepassingsservice-principal of in Visual Studio, VS Code, de Azure CLI of Azure PowerShell voor een set ontwikkelaarsreferenties, die beide kunnen worden gebruikt om de app tijdens lokale ontwikkeling te verifiëren bij Azure-resources.

Wanneer deze code in Azure wordt geïmplementeerd, kan uw app ook worden geverifieerd bij andere Azure-resources. DefaultAzureCredential kan omgevingsinstellingen en beheerde identiteitsconfiguraties ophalen om automatisch te verifiëren bij andere services.