Autentisera .NET-appar till Azure-tjänster under lokal utveckling med hjälp av utvecklarkonton
När du skapar molnprogram måste utvecklare felsöka och testa program på sin lokala arbetsstation. När ett program körs på en utvecklares arbetsstation under den lokala utvecklingen måste det 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 vara inloggad på Azure från VS Code Azure Tools-tillägget, Azure CLI eller Azure PowerShell. Azure SDK för .NET kan identifiera att utvecklaren är inloggad från något av dessa verktyg och sedan hämta nödvändiga autentiseringsuppgifter från cacheminnet för autentiseringsuppgifter för att autentisera appen till Azure som inloggad användare.
Den här metoden är enklast att konfigurera för ett utvecklingsteam eftersom den utnyttjar utvecklarnas befintliga Azure-konton. En utvecklares konto kommer dock sannolikt att ha fler behörigheter än vad som krävs av programmet, vilket överskrider de behörigheter som appen kommer att köras med i produktion. Som ett alternativ kan du skapa huvudnamn för programtjänsten som ska användas under lokal utveckling , vilket kan begränsas till att endast ha den åtkomst som krävs av appen.
1 – Skapa Azure AD-grupp för lokal utveckling
Eftersom det nästan alltid finns flera utvecklare som arbetar med ett program rekommenderar vi att du först skapar en Azure AD-grupp för att kapsla in de roller (behörigheter) som appen behöver i den lokala utvecklingen. Detta ger 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 Azure AD-gruppen för appen.
- Om en ny utvecklare ansluter till teamet måste de helt enkelt läggas till i rätt Azure AD-grupp för att få rätt behörighet att arbeta med appen.
Om du har en befintlig Azure AD-grupp för utvecklingsteamet kan du använda den gruppen. I annat fall utför du följande steg för att skapa en Azure AD-grupp.
2 – Tilldela roller till Azure AD-gruppen
Därefter måste du bestämma 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 Azure Active Directory-grupp som skapades i steg 1. Roller kan tilldelas en roll i ett resurs-, resursgrupps- eller prenumerationsomfång. Det här exemplet visar hur du tilldelar roller i resursgruppens omfång eftersom de flesta program grupperar alla sina Azure-resurser i en enda resursgrupp.
3 – Logga in på Azure med hjälp av .NET Tooling
Därefter måste du logga in på Azure med något av flera .NET-verktygsalternativ. Det konto som du loggar in på bör också finnas i den Azure Active Directory-grupp som du skapade och konfigurerade tidigare.
På den översta menyn i Visual Studio går du till Verktygsalternativ> för att öppna alternativdialogrutan. I sökfältet i det övre vänstra hörnet skriver du Azure för att filtrera 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.
4 – Implementera DefaultAzureCredential i ditt program
DefaultAzureCredential
stöder flera autentiseringsmetoder och avgör vilken autentiseringsmetod som används vid körning. På så sätt kan din app använda olika autentiseringsmetoder i olika miljöer utan att implementera miljöspecifik kod.
Ordningen och platserna där DefaultAzureCredential
du söker efter autentiseringsuppgifter finns i StandardAzureCredential.
Om du vill implementera DefaultAzureCredential
lägger du först till Azure.Identity
och eventuellt paketen i Microsoft.Extensions.Azure
ditt program. Du kan göra detta med antingen kommandoraden eller NuGet Package Manager.
Öppna valfri terminalmiljö i programprojektkatalogen och ange kommandot nedan.
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Azure-tjänster används vanligtvis med motsvarande klientklasser från SDK:et. Dessa klasser och dina egna anpassade tjänster bör registreras i Program.cs
filen så att de kan nås via beroendeinmatning i hela appen. Program.cs
I följer du stegen nedan för att konfigurera tjänsten och DefaultAzureCredential
.
Azure.Identity
Inkludera namnrymderna ochMicrosoft.Extensions.Azure
med en using-instruktion.- Registrera Azure-tjänsten med relevanta hjälpmetoder.
- Skicka en instans av
DefaultAzureCredential
objektet tillUseCredential
-metoden.
Ett exempel på detta visas i följande kodsegment.
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());
});
Du kan också använda DefaultAzureCredential
dina tjänster mer direkt utan hjälp av ytterligare Azure-registreringsmetoder, enligt nedan.
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()));
När koden ovan körs på din lokala arbetsstation under den lokala utvecklingen kommer den att titta i miljövariablerna efter ett huvudnamn för programtjänsten eller i Visual Studio, VS Code, Azure CLI eller Azure PowerShell för en uppsättning autentiseringsuppgifter för utvecklare, som kan användas för att autentisera appen till Azure-resurser under lokal utveckling.
När den här koden distribueras till Azure kan den ä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.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för