Dela via


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.

Ett diagram som visar en app som körs i lokal utveckling med hjälp av en utvecklarverktygsidentitet för att ansluta till Azure-resurser.

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.

Instruktioner Skärmbild
Gå till sidan Microsoft Entra-ID i Azure-portalen genom att skriva Microsoft Entra-ID i sökrutan överst på sidan. Välj Microsoft Entra-ID under avsnittet Tjänster . En skärmbild som visar hur du använder det översta sökfältet i Azure-portalen för att söka efter och navigera till sidan Microsoft Entra-ID.
På sidan Microsoft Entra-ID väljer du Grupper på den vänstra menyn. En skärmbild som visar platsen för menyalternativet Grupper i den vänstra menyn på sidan Standardkatalog för Microsoft Entra-ID.
På sidan Alla grupper väljer du Ny grupp. En skärmbild som visar platsen för knappen Ny grupp på sidan Alla grupper.
På sidan Ny grupp :
  1. Välj Säkerhet i listrutan Grupptyp .
  2. Gruppnamn → Ett namn för säkerhetsgruppen, som vanligtvis skapas från programnamnet. Det är också bra att inkludera en sträng som local-dev i namnet på gruppen för att ange syftet med gruppen.
  3. Gruppbeskrivning → En beskrivning av gruppens syfte.
  4. Välj länken Inga medlemmar har valts under Medlemmar för att lägga till medlemmar i gruppen.
En skärmbild som visar hur du skapar en ny Microsoft Entra-grupp. Platsen för länken som ska väljas för att lägga till medlemmar i den här gruppen är markerad.
I dialogrutan Lägg till medlemmar:
  1. Använd sökrutan för att filtrera listan med användarnamn i listan.
  2. Välj en eller flera användare för lokal utveckling för den här appen. När du väljer ett objekt flyttas objektet till listan Markerade objekt längst ned i dialogrutan.
  3. När du är klar väljer du knappen Välj .
En skärmbild av dialogrutan Lägg till medlemmar som visar hur du väljer utvecklarkonton som ska ingå i gruppen.
På sidan Ny grupp väljer du Skapa för att skapa gruppen. Gruppen skapas och du kommer tillbaka till sidan Alla grupper . Det kan ta upp till 30 sekunder innan gruppen visas och du kan behöva uppdatera sidan på grund av cachelagring i Azure-portalen. En skärmbild av sidan Ny grupp som visar hur du slutför processen genom att välja knappen Skapa.

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.

Instruktioner Skärmbild
Leta upp resursgruppen för din app genom att söka efter resursgruppens namn med hjälp av sökrutan överst i Azure-portalen. Gå till resursgruppen genom att välja resursgruppens namn under rubriken Resursgrupper i dialogrutan. En skärmbild som visar hur du använder den översta sökrutan i Azure-portalen för att hitta och navigera till den resursgrupp som du vill tilldela roller (behörigheter) till.
På sidan för resursgruppen väljer du Åtkomstkontroll (IAM) på den vänstra menyn. En skärmbild av resursgruppssidan som visar platsen för menyalternativet Åtkomstkontroll (IAM).
På sidan Åtkomstkontroll (IAM):
  1. Välj fliken Rolltilldelningar.
  2. Välj + Lägg till på den översta menyn och sedan Lägg till rolltilldelning från den resulterande nedrullningsbara menyn.
En skärmbild som visar hur du navigerar till fliken rolltilldelningar och platsen för knappen som används för att lägga till rolltilldelningar i en resursgrupp.
sidan Lägg till rolltilldelning visas alla roller som kan tilldelas för resursgruppen.
  1. Använd sökrutan för att filtrera listan till en mer hanterbar storlek. Det här exemplet visar hur du filtrerar efter Storage Blob-roller.
  2. Välj den roll du vill tilldela.
Välj Nästa för att gå till nästa skärm.
En skärmbild som visar hur du filtrerar och väljer rolltilldelningar som ska läggas till i resursgruppen.
På nästa sida För att lägga till rolltilldelning kan du ange vilken användare som ska tilldela rollen till.
  1. Välj Användare, grupp eller tjänstens huvudnamn under Tilldela åtkomst till.
  2. Välj + Välj medlemmar under Medlemmar.
En dialogruta öppnas till höger i Azure-portalen.
En skärmbild som visar alternativknappen för att välja för att tilldela en roll till en Microsoft Entra-grupp och länken som används för att välja den grupp som rollen ska tilldelas till.
I dialogrutan Välj medlemmar:
  1. Textrutan Välj kan användas för att filtrera listan över användare och grupper i din prenumeration. Om det behövs skriver du de första tecknen i microsoft entra-gruppen för lokal utveckling som du skapade för appen.
  2. Välj den microsoft entra-grupp för lokal utveckling som är associerad med ditt program.
Välj Välj längst ned i dialogrutan för att fortsätta.
En skärmbild som visar hur du filtrerar efter och väljer Microsoft Entra-gruppen för programmet i dialogrutan Välj medlemmar.
Microsoft Entra-gruppen visas som markerad på skärmen Lägg till rolltilldelning . Välj Granska + tilldela för att gå till den sista sidan och sedan Granska + tilldela igen för att slutföra processen. En skärmbild som visar sidan Lägg till rolltilldelning och platsen för knappen Granska + tilldela som används för att slutföra processen.

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.

  1. Gå till Verktygsalternativ> för att öppna alternativdialogrutan.

  2. I rutan Sökalternativ överst skriver du Azure för att filtrera de tillgängliga alternativen.

  3. Under Azure Service Authentication väljer du Kontoval.

  4. 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.

    En skärmbild som visar hur du loggar in på Azure med Visual Studio.

  5. 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 DefaultAzureCredentiallä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.csutför du följande steg för att registrera en klientklass och DefaultAzureCredential:

  1. Azure.Identity Inkludera namnrymderna och Microsoft.Extensions.Azure via using direktiv.
  2. Registrera Azure-tjänstklienten med hjälp av motsvarande Add-prefixed extension-metod.
  3. Skicka en instans av DefaultAzureCredential till UseCredential -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.