Autentisera .NET-appar till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton
Utvecklare måste felsöka och testa molnappar på sina lokala arbetsstationer. När en app körs på en utvecklares arbetsstation under den lokala utvecklingen måste den fortfarande autentiseras mot alla Azure-tjänster som används av appen. Den här artikeln beskriver hur du använder en utvecklares Azure-autentiseringsuppgifter för att autentisera appen till Azure under den lokala utvecklingen.
För att en app ska kunna autentisera till Azure under lokal utveckling med utvecklarens Azure-autentiseringsuppgifter måste utvecklaren loggas in på Azure från något av följande utvecklarverktyg:
- Visual Studio
- Azure CLI
- Azure Developer CLI
- Azure PowerShell
Azure Identity-biblioteket kan identifiera att utvecklaren är inloggad från något av dessa verktyg. Biblioteket kan sedan hämta Microsoft Entra-åtkomsttoken via verktyget för att autentisera appen till Azure som den inloggade användaren.
Den här metoden är enklast att konfigurera för ett utvecklingsteam eftersom den utnyttjar utvecklarnas befintliga Azure-konton. Ett utvecklarkonto har dock sannolikt fler behörigheter än vad som krävs av appen, och överskrider därför de behörigheter som appen körs med i produktion. Alternativt kan du skapa huvudnamn för programtjänsten som ska användas under den lokala utvecklingen, vilket kan begränsas till att endast ha den åtkomst som krävs av appen.
1 – Skapa Microsoft Entra-grupp för lokal utveckling
Eftersom det nästan alltid finns flera utvecklare som arbetar med en app rekommenderar vi att en Microsoft Entra-grupp kapslar in de roller (behörigheter) som appen behöver i den lokala utvecklingen. Den här metoden erbjuder följande fördelar:
- Varje utvecklare är säker på att ha samma roller tilldelade eftersom roller tilldelas på gruppnivå.
- Om en ny roll behövs för appen behöver den bara läggas till i gruppen för appen.
- Om en ny utvecklare ansluter till teamet får de de behörigheter som krävs för att arbeta med appen efter att ha lagts till i gruppen.
Om du har en befintlig Microsoft Entra-grupp för ditt utvecklingsteam kan du använda den gruppen. I annat fall utför du följande steg för att skapa en Microsoft Entra-grupp.
Kommentar
Som standard är skapandet av Microsoft Entra-grupper begränsat till vissa privilegierade roller i en katalog. Om du inte kan skapa en grupp kontaktar du en administratör för din katalog. Om du inte kan lägga till medlemmar i en befintlig grupp kontaktar du gruppägaren eller en katalogadministratör. Mer information finns i Hantera Microsoft Entra-grupper och gruppmedlemskap.
2 – Tilldela roller till Microsoft Entra-gruppen
Bestäm sedan vilka roller (behörigheter) din app behöver på vilka resurser och tilldela dessa roller till din app. I det här exemplet tilldelas rollerna till den Microsoft Entra-grupp som skapades i steg 1. Grupper kan tilldelas en roll i ett resurs-, resursgrupps- eller prenumerationsomfång. Det här exemplet visar hur du tilldelar roller i resursgruppen, omfång eftersom de flesta appar grupperar alla sina Azure-resurser i en enda resursgrupp.
3 – Logga in på Azure med hjälp av utvecklarverktyg
Logga sedan in på Azure med något av flera utvecklarverktyg. Det konto som du autentiserar bör också finnas i den Microsoft Entra-grupp som du skapade och konfigurerade tidigare.
Gå till Verktygsalternativ> för att öppna alternativdialogrutan.
I rutan Sökalternativ överst skriver du Azure för att filtrera de tillgängliga alternativen.
Under Azure Service Authentication väljer du Kontoval.
Välj den nedrullningsbara menyn under Välj ett konto och välj att lägga till ett Microsoft-konto. Ett fönster öppnas där du uppmanas att välja ett konto. Ange autentiseringsuppgifterna för ditt önskade Azure-konto och välj sedan bekräftelsen.
Välj OK för att stänga alternativdialogrutan.
4 – Implementera DefaultAzureCredential i ditt program
DefaultAzureCredential är en åsiktsbaserad, ordnad sekvens med mekanismer för autentisering till Microsoft Entra. Varje autentiseringsmekanism är en klass som härleds från klassen TokenCredential och kallas för en autentiseringsuppgift. Vid körning DefaultAzureCredential
försöker autentisera med hjälp av den första autentiseringsuppgiften. Om det inte går att hämta en åtkomsttoken görs nästa autentiseringsuppgifter i sekvensen och så vidare tills en åtkomsttoken har hämtats. På så sätt kan din app använda olika autentiseringsuppgifter i olika miljöer utan att skriva miljöspecifik kod.
Ordningen och platserna där DefaultAzureCredential
du söker efter autentiseringsuppgifter finns i StandardAzureCredential.
Om du vill använda DefaultAzureCredential
lägger du till Azure.Identity och eventuellt Microsoft.Extensions.Azure-paketen i ditt program:
I valfri terminal går du till programprojektkatalogen och kör följande kommandon:
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Azure-tjänster används med hjälp av specialiserade klientklasser från de olika Azure SDK-klientbiblioteken. Dessa klasser och dina egna anpassade tjänster bör registreras så att de kan nås via beroendeinmatning i hela appen. I Program.cs
utför du följande steg för att registrera en klientklass och DefaultAzureCredential
:
Azure.Identity
Inkludera namnrymderna ochMicrosoft.Extensions.Azure
viausing
direktiv.- Registrera Azure-tjänstklienten med hjälp av motsvarande
Add
-prefixed extension-metod. - Skicka en instans av
DefaultAzureCredential
tillUseCredential
-metoden.
Till exempel:
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());
});
Ett alternativ till UseCredential
är att instansiera DefaultAzureCredential
direkt:
using Azure.Identity;
builder.Services.AddSingleton<BlobServiceClient>(_ =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));
När föregående kod körs på din lokala utvecklingsarbetsstation letar den i miljövariablerna efter ett huvudnamn för programtjänsten eller lokalt installerade utvecklarverktyg, till exempel Visual Studio, för en uppsättning autentiseringsuppgifter för utvecklare. Endera metoden kan användas för att autentisera appen till Azure-resurser under lokal utveckling.
När den distribueras till Azure kan samma kod även autentisera din app till andra Azure-resurser. DefaultAzureCredential
kan hämta miljöinställningar och hanterade identitetskonfigurationer för att autentisera till andra tjänster automatiskt.