Uwierzytelnianie aplikacji platformy .NET w usługach platformy Azure podczas programowania lokalnego przy użyciu kont deweloperów
Podczas programowania lokalnego aplikacje muszą uwierzytelniać się na platformie Azure, aby uzyskać dostęp do różnych usług platformy Azure. Dwa typowe podejścia do uwierzytelniania lokalnego to użycie jednostki usługi lub użycie konta dewelopera. W tym artykule wyjaśniono, jak używać konta dewelopera. W poniższych sekcjach nauczysz się:
- Jak używać grup firmy Microsoft Entra do wydajnego zarządzania uprawnieniami dla wielu kont deweloperów
- Jak przypisać role do kont deweloperów w celu określenia zakresu uprawnień
- Jak zalogować się do obsługiwanych lokalnych narzędzi programistycznych
- Jak uwierzytelniać się przy użyciu konta dewelopera z poziomu kodu aplikacji
Diagram przedstawiający aplikację działającą w środowisku lokalnym przy użyciu tożsamości narzędzia dewelopera do łączenia się z zasobami platformy Azure.
Aby aplikacja uwierzytelniła się na platformie Azure podczas programowania lokalnego przy użyciu poświadczeń platformy Azure dla deweloperów, deweloper musi zalogować się na platformę Azure z jednego z następujących narzędzi deweloperskich:
- Interfejs Azure CLI
- Azure Developer CLI
- Azure PowerShell
- Visual Studio
Biblioteka tożsamości platformy Azure może wykryć, że deweloper jest zalogowany z jednego z tych narzędzi. Biblioteka może następnie uzyskać token dostępu firmy Microsoft Entra za pośrednictwem narzędzia w celu uwierzytelnienia aplikacji na platformie Azure jako zalogowanego użytkownika.
Takie podejście korzysta z istniejących kont platformy Azure dewelopera w celu usprawnienia procesu uwierzytelniania. Jednak konto dewelopera prawdopodobnie ma więcej uprawnień niż wymagane przez aplikację, w związku z czym przekracza uprawnienia uruchamiane przez aplikację w środowisku produkcyjnym. Alternatywnie, można utworzyć konta usługi aplikacji do użycia podczas lokalnego tworzenia, które mogą mieć jedynie dostęp wymagany przez aplikację.
Utwórz grupę Microsoft Entra do rozwoju lokalnego
Utwórz grupę Entra w Microsoft, aby zgrupować role (uprawnienia), których aplikacja potrzebuje w środowisku lokalnym, zamiast przypisywać te role do poszczególnych obiektów głównych usługi. Takie podejście zapewnia następujące korzyści:
- Każdy deweloper ma te same role przypisane na poziomie grupy.
- Jeśli dla aplikacji jest potrzebna nowa rola, należy ją dodać tylko do grupy aplikacji.
- Jeśli nowy deweloper dołączy do zespołu, zostanie utworzona nowa jednostka usługi aplikacji dla dewelopera i dodana do grupy, zapewniając deweloperowi odpowiednie uprawnienia do pracy nad aplikacją.
Przejdź do strony przeglądu Microsoft Entra ID w portalu Azure.
Wybierz opcję Wszystkie grupy z menu po lewej stronie.
Na stronie grupy wybierz pozycję Nowa grupa.
Na stronie Nowa grupa wypełnij następujące pola formularza:
- Typ grupy: wybierz pozycję Security.
- nazwa grupy: wprowadź nazwę grupy zawierającej odwołanie do nazwy aplikacji lub środowiska.
- opis grupy: wprowadź opis wyjaśniający cel grupy.
Wybierz link „Brak wybranych członków” w obszarze „Członkowie”, aby dodać członków do grupy.
W wyświetlonym panelu wysuwanym wyszukaj utworzoną wcześniej jednostkę usługi i wybierz ją z filtrowanych wyników. Wybierz przycisk Wybierz na dole panelu, aby potwierdzić swój wybór.
Wybierz pozycję Utwórz u dołu strony Nowa grupa, aby utworzyć grupę i wrócić do strony Wszystkie grupy. Jeśli nie widzisz nowej grupy na liście, zaczekaj chwilę i odśwież stronę.
Przypisywanie ról do grupy
Następnie określ, jakich ról (uprawnień) potrzebuje twoja aplikacja na temat zasobów i przypisz te role do utworzonej grupy firmy Microsoft Entra. Grupy można przypisać do roli w zakresie zasobu, grupy zasobów lub subskrypcji. W tym przykładzie pokazano, jak przypisywać role w zakresie grupy zasobów, ponieważ większość aplikacji grupuje wszystkie zasoby platformy Azure w jedną grupę zasobów.
W portalu Azure przejdź do strony Przegląd grupy zasobów zawierającej Twoją aplikację.
Wybierz Kontrola dostępu (IAM) z nawigacji po lewej stronie.
Na stronie kontroli dostępu (IAM) wybierz pozycję + Dodaj, a następnie wybierz pozycję Dodaj przypisanie roli z rozwijanego menu. Strona Dodawania ról zawiera kilka zakładek do konfigurowania i przypisywania ról.
Na karcie Rola użyj pola wyszukiwania, aby zlokalizować rolę, którą chcesz przypisać. Wybierz rolę, a następnie wybierz pozycję Dalej.
Na karcie Członkowie:
- Dla wartości Przypisz dostęp do wybierz użytkownik, grupa lub jednostka usługi .
- Dla wartości członkowie wybierz pozycję + Wybierz członków, aby otworzyć panel wysuwany Wybierz członków.
- Wyszukaj utworzoną wcześniej grupę Microsoft Entra i wybierz ją z filtrowanych wyników. Wybierz , a następnie, aby wybrać grupę i zamknąć wysuwane okno.
- Wybierz Przejrzyj i przypisz w dolnej części karty Członków.
Na zakładce Przeglądanie i przypisywanie wybierz pozycję Przeglądanie i przypisywanie na dole strony.
Logowanie się do platformy Azure przy użyciu narzędzi deweloperskich
Następnie zaloguj się do platformy Azure przy użyciu jednego z kilku narzędzi deweloperskich, których można użyć do przeprowadzenia uwierzytelniania w środowisku projektowym. Konto, które uwierzytelnisz, powinno również istnieć w utworzonej i skonfigurowanej wcześniej grupie Microsoft Entra.
Deweloperzy korzystający z programu Visual Studio 2017 lub nowszego mogą uwierzytelniać się przy użyciu konta dewelopera za pośrednictwem środowiska IDE. Aplikacje korzystające z DefaultAzureCredential lub VisualStudioCredential mogą odnajdywać i używać tego konta do uwierzytelniania żądań aplikacji podczas uruchamiania lokalnego. To konto jest również używane podczas publikowania aplikacji bezpośrednio z programu Visual Studio na platformę Azure.
Ważne
Musisz zainstalować obciążenie programistyczne Azure, aby umożliwić użycie narzędzi programu Visual Studio do uwierzytelniania, tworzenia i wdrażania w Azure.
W programie Visual Studio przejdź do Tools>Options, aby otworzyć okno dialogowe opcji.
W polu Opcje wyszukiwania u góry wpisz Azure, aby filtrować dostępne opcje.
W obszarze Uwierzytelnianie usługi Azure wybierz Wybór konta.
Wybierz menu rozwijane w obszarze Wybierz konto i wybierz opcję dodania konta Microsoft.
W otwartym oknie wprowadź poświadczenia wybranego przez ciebie konta Azure, a następnie potwierdź wprowadzone dane.
Wybierz przycisk OK , aby zamknąć okno dialogowe opcji.
Uwierzytelnianie w usługach platformy Azure z aplikacji
Biblioteka Azure Identity udostępnia różne poświadczenia— implementacje TokenCredential
dostosowane do obsługi różnych scenariuszy i przepływów uwierzytelniania Microsoft Entra. Poniższe kroki pokazują, jak używać DefaultAzureCredential podczas pracy z lokalnymi kontami użytkowników.
Implementowanie kodu
DefaultAzureCredential to przemyślana, uporządkowana sekwencja mechanizmów do uwierzytelniania w usłudze Microsoft Entra ID. Każdy mechanizm uwierzytelniania jest klasą pochodzącą z klasy TokenCredential i jest nazywany poświadczeniem. W czasie wykonywania DefaultAzureCredential
próbuje uwierzytelnić się przy użyciu pierwszego poświadczenia. Jeśli to poświadczenie nie może uzyskać tokenu dostępu, zostanie podjęta próba następnego poświadczenia w sekwencji itd., dopóki token dostępu nie zostanie pomyślnie uzyskany. W ten sposób aplikacja może używać różnych poświadczeń w różnych środowiskach bez konieczności pisania kodu specyficznego dla środowiska.
Aby użyć DefaultAzureCredential
, dodaj pakiety Azure.Identity i opcjonalnie Microsoft.Extensions.Azure do aplikacji:
W wybranym terminalu przejdź do katalogu projektu aplikacji i uruchom następujące polecenia:
dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Azure
Dostęp do usług platformy Azure jest uzyskiwany przy użyciu wyspecjalizowanych klas klientów z różnych bibliotek klienckich zestawu Azure SDK. Te klasy i własne usługi niestandardowe powinny być zarejestrowane, aby można było uzyskać do nich dostęp za pośrednictwem wstrzykiwania zależności w całej aplikacji. W programie Program.cs
wykonaj następujące kroki, aby zarejestrować klasę klienta oraz DefaultAzureCredential
:
- Uwzględnij przestrzenie nazw
Azure.Identity
iMicrosoft.Extensions.Azure
za pomocą dyrektywusing
. - Zarejestruj klienta usługi Azure używając odpowiedniej metody rozszerzenia z prefiksem
Add
. - Przekaż wystąpienie
DefaultAzureCredential
do metodyUseCredential
.
builder.Services.AddAzureClients(clientBuilder =>
{
clientBuilder.AddBlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"));
clientBuilder.UseCredential(new DefaultAzureCredential());
});
Alternatywą dla metody UseCredential
jest bezpośrednie podanie poświadczenia klientowi usługi.
builder.Services.AddSingleton<BlobServiceClient>(_ =>
new BlobServiceClient(
new Uri("https://<account-name>.blob.core.windows.net"),
new DefaultAzureCredential()));