.NET-apps verifiëren bij Azure-services tijdens lokale ontwikkeling met behulp van ontwikkelaarsaccounts
Ontwikkelaars moeten fouten opsporen en testen op cloud-apps op hun lokale werkstations. Wanneer een app 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.
Als een app zich tijdens lokale ontwikkeling bij Azure kan verifiëren met behulp van de Azure-referenties van de ontwikkelaar, moet de ontwikkelaar zijn aangemeld bij Azure vanuit een van de volgende ontwikkelhulpprogramma's:
- Visual Studio
- Azure-CLI
- Azure Developer CLI
- Azure PowerShell
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 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 app, 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 app werken, wordt een Microsoft Entra-groep aanbevolen om de rollen (machtigingen) die de app nodig heeft in lokale ontwikkeling in te kapselen. Deze aanpak 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 aan de groep voor de app te worden toegevoegd.
- Als een nieuwe ontwikkelaar lid wordt van het team, krijgt deze de benodigde machtigingen om aan de app te werken nadat deze aan de groep is toegevoegd.
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.
Notitie
Standaard is het maken van Microsoft Entra-groepen beperkt tot bepaalde bevoorrechte rollen in een directory. Als u geen groep kunt maken, neemt u contact op met een beheerder voor uw adreslijst. Als u geen leden kunt toevoegen aan een bestaande groep, neemt u contact op met de groepseigenaar of een adreslijstbeheerder. Zie Microsoft Entra-groepen en groepslidmaatschap beheren voor meer informatie.
2 - Rollen toewijzen aan de Microsoft Entra-groep
Bepaal vervolgens welke rollen (machtigingen) uw app nodig heeft voor welke resources en wijs deze rollen toe aan uw app. In dit voorbeeld worden de rollen toegewezen aan de Microsoft Entra-groep die in stap 1 is gemaakt. Aan groepen kan een rol worden toegewezen voor een resource, resourcegroep of abonnementsbereik. In dit voorbeeld ziet u hoe u rollen toewijst aan de resourcegroep, omdat de meeste apps al hun Azure-resources groeperen in één resourcegroep.
3 - 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. Het account dat u verifieert, moet ook aanwezig zijn in de Microsoft Entra-groep die u eerder hebt gemaakt en geconfigureerd.
Ga naar Extra-opties> om het dialoogvenster Opties te openen.
Typ in het vak Zoekopties bovenaan Azure om de beschikbare 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.
Selecteer OK om het dialoogvenster Opties te sluiten.
4 - DefaultAzureCredential implementeren in uw toepassing
DefaultAzureCredential is een geordende volgorde van mechanismen voor verificatie bij Microsoft Entra. Elk verificatiemechanisme is een klasse die is afgeleid van de TokenCredential-klasse en wordt een referentie genoemd. Tijdens runtime DefaultAzureCredential
wordt geprobeerd om te verifiëren 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.
De volgorde en locaties waarin DefaultAzureCredential
wordt gezocht naar referenties, vindt u op DefaultAzureCredential.
Als u dit wilt gebruiken DefaultAzureCredential
, 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 Program.cs
in de volgende stappen de volgende stappen uit om een clientklasse te registreren en DefaultAzureCredential
:
- Neem de
Azure.Identity
enMicrosoft.Extensions.Azure
naamruimten op viausing
instructies. - Registreer de Azure-serviceclient met behulp van de bijbehorende
Add
-voorvoegselextensiemethode. - Geef een exemplaar van
DefaultAzureCredential
deUseCredential
methode door.
Voorbeeld:
using Microsoft.Extensions.Azure;
using Azure.Identity;
builder.Services.AddAzureClients(clientBuilder =>
{
clientBuilder.AddBlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"));
clientBuilder.UseCredential(new DefaultAzureCredential());
});
Een alternatief UseCredential
is om rechtstreeks te instantiëren DefaultAzureCredential
:
using Azure.Identity;
builder.Services.AddSingleton<BlobServiceClient>(_ =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
Wanneer de voorgaande code wordt uitgevoerd op uw lokale ontwikkelwerkstation, wordt er gezocht in de omgevingsvariabelen voor een toepassingsservice-principal of in lokaal geïnstalleerde ontwikkelhulpprogramma's, zoals Visual Studio, voor een set ontwikkelaarsreferenties. Beide benaderingen kunnen worden gebruikt om de app te verifiëren bij Azure-resources tijdens lokale ontwikkeling.
Wanneer deze code wordt geïmplementeerd in Azure, kan dezelfde code uw app ook verifiëren bij andere Azure-resources. DefaultAzureCredential
kan omgevingsinstellingen en beheerde identiteitsconfiguraties ophalen om automatisch te verifiëren bij andere services.