Uwierzytelnianie aplikacji platformy .NET w usługach platformy Azure podczas programowania lokalnego przy użyciu kont deweloperów

Deweloperzy muszą debugować i testować aplikacje w chmurze na lokalnych stacjach roboczych. Gdy aplikacja działa na stacji roboczej dewelopera podczas programowania lokalnego, musi ona nadal uwierzytelniać się w dowolnych usługach platformy Azure używanych przez aplikację. W tym artykule opisano, jak używać poświadczeń platformy Azure dewelopera do uwierzytelniania aplikacji na platformie Azure podczas programowania lokalnego.

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 dewelopera, deweloper musi zalogować się do platformy Azure z jednego z następujących narzędzi deweloperskich:

  • Visual Studio
  • Interfejs wiersza polecenia platformy Azure
  • Azure Developer CLI
  • Azure PowerShell

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.

To podejście jest najłatwiejsze do skonfigurowania dla zespołu deweloperów, ponieważ korzysta z istniejących kont platformy Azure deweloperów. 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ć jednostki usługi aplikacji do użycia podczas tworzenia lokalnego, które mogą być ograniczone tylko do dostępu wymaganego przez aplikację.

1 — Tworzenie grupy Microsoft Entra na potrzeby programowania lokalnego

Ponieważ prawie zawsze istnieje wielu deweloperów, którzy pracują nad aplikacją, zaleca się hermetyzowanie ról (uprawnień) wymaganych przez aplikację w programowania lokalnego. Takie podejście zapewnia następujące korzyści:

  • Każdy deweloper ma przypisane te same role, ponieważ role są przypisywane 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, uzyska niezbędne uprawnienia do pracy nad aplikacją po dodaniu do grupy.

Jeśli masz istniejącą grupę Microsoft Entra dla zespołu deweloperów, możesz użyć tej grupy. W przeciwnym razie wykonaj następujące kroki, aby utworzyć grupę firmy Microsoft Entra.

Instrukcje Zrzut ekranu
Przejdź do strony Microsoft Entra ID w witrynie Azure Portal, wpisując ciąg Microsoft Entra ID w polu wyszukiwania w górnej części strony. Wybierz pozycję Microsoft Entra ID w sekcji Usługi . Zrzut ekranu przedstawiający sposób używania górnego paska wyszukiwania w witrynie Azure Portal do wyszukiwania i przechodzenia do strony Identyfikator entra firmy Microsoft.
Na stronie Microsoft Entra ID wybierz pozycję Grupy z menu po lewej stronie. Zrzut ekranu przedstawiający lokalizację elementu menu Grupy w menu po lewej stronie domyślnego katalogu Microsoft Entra ID.
Na stronie Wszystkie grupy wybierz pozycję Nowa grupa. Zrzut ekranu przedstawiający lokalizację przycisku Nowa grupa na stronie Wszystkie grupy.
Na stronie Nowa grupa:
  1. Wybierz pozycję Zabezpieczenia z listy rozwijanej Typ grupy.
  2. Nazwa grupy → nazwa grupy zabezpieczeń, zazwyczaj utworzona na podstawie nazwy aplikacji. Warto również uwzględnić ciąg, taki jak local-dev w nazwie grupy, aby wskazać cel grupy.
  3. Opis grupy → Opis celu grupy.
  4. Wybierz link Brak wybranych członków w obszarze Członkowie, aby dodać członków do grupy.
Zrzut ekranu przedstawiający sposób tworzenia nowej grupy firmy Microsoft Entra. Lokalizacja linku do wybrania w celu dodania członków do tej grupy jest wyróżniona.
W oknie dialogowym Dodawanie członków:
  1. Użyj pola wyszukiwania, aby filtrować listę nazw użytkowników na liście.
  2. Wybierz co najmniej jednego użytkownika na potrzeby programowania lokalnego dla tej aplikacji. Po wybraniu obiektu obiekt zostanie przeniesiony do listy Wybrane elementy w dolnej części okna dialogowego.
  3. Po zakończeniu wybierz przycisk Wybierz .
Zrzut ekranu przedstawiający okno dialogowe Dodawanie członków pokazujące, jak wybrać konta deweloperów, które mają być uwzględnione w grupie.
Po powrocie na stronę Nowa grupa wybierz pozycję Utwórz , aby utworzyć grupę. Grupa zostanie utworzona i nastąpi powrót do strony Wszystkie grupy . Wyświetlenie grupy może potrwać do 30 sekund i może być konieczne odświeżenie strony z powodu buforowania w witrynie Azure Portal. Zrzut ekranu przedstawiający stronę Nowa grupa przedstawiająca sposób ukończenia procesu, wybierając przycisk Utwórz.

Uwaga

Domyślnie tworzenie grup entra firmy Microsoft jest ograniczone do niektórych ról uprzywilejowanych w katalogu. Jeśli nie możesz utworzyć grupy, skontaktuj się z administratorem katalogu. Jeśli nie możesz dodać członków do istniejącej grupy, skontaktuj się z właścicielem grupy lub administratorem katalogu. Aby dowiedzieć się więcej, zobacz Zarządzanie grupami i członkostwem w grupach firmy Microsoft.

2 — Przypisywanie ról do grupy Microsoft Entra

Następnie określ, jakich ról (uprawnień) potrzebuje twoja aplikacja na temat zasobów i przypisz te role do aplikacji. W tym przykładzie role są przypisywane do grupy Microsoft Entra utworzonej w kroku 1. Grupy można przypisać do roli w zakresie zasobu, grupy zasobów lub subskrypcji. W tym przykładzie pokazano, jak przypisywać role w grupie zasobów, zakres, ponieważ większość aplikacji grupuje wszystkie zasoby platformy Azure w jedną grupę zasobów.

Instrukcje Zrzut ekranu
Znajdź grupę zasobów aplikacji, wyszukując nazwę grupy zasobów przy użyciu pola wyszukiwania w górnej części witryny Azure Portal. Przejdź do grupy zasobów, wybierając nazwę grupy zasobów pod nagłówkiem Grupy zasobów w oknie dialogowym. Zrzut ekranu przedstawiający sposób użycia górnego pola wyszukiwania w witrynie Azure Portal w celu zlokalizowania i przejścia do grupy zasobów, do której chcesz przypisać role (uprawnienia).
Na stronie grupy zasobów wybierz pozycję Kontrola dostępu (Zarządzanie dostępem i tożsamościami) z menu po lewej stronie. Zrzut ekranu przedstawiający stronę grupy zasobów z lokalizacją elementu menu Kontrola dostępu (IAM).
Na stronie Kontrola dostępu (Zarządzanie dostępem i tożsamościami):
  1. Wybierz kartę Przypisania roli.
  2. Wybierz pozycję + Dodaj z górnego menu, a następnie pozycję Dodaj przypisanie roli z wyświetlonego menu rozwijanego.
Zrzut ekranu przedstawiający sposób przechodzenia do karty przypisania ról i lokalizacji przycisku używanego do dodawania przypisań ról do grupy zasobów.
Strona Dodawanie przypisania roli zawiera listę wszystkich ról, które można przypisać dla grupy zasobów.
  1. Użyj pola wyszukiwania, aby przefiltrować listę do bardziej możliwego do zarządzania rozmiaru. W tym przykładzie pokazano, jak filtrować role obiektów blob usługi Storage.
  2. Wybierz rolę, którą chcesz przypisać.
Wybierz przycisk Dalej , aby przejść do następnego ekranu.
Zrzut ekranu przedstawiający sposób filtrowania i wybierania przypisań ról do dodania do grupy zasobów.
Następna strona Dodawanie przypisania roli umożliwia określenie, do którego użytkownika ma zostać przypisana rola.
  1. Wybierz pozycję Użytkownik, grupa lub jednostka usługi w obszarze Przypisz dostęp do.
  2. Wybierz pozycję + Wybierz członków w obszarze Członkowie.
Zostanie otwarte okno dialogowe po prawej stronie witryny Azure Portal.
Zrzut ekranu przedstawiający przycisk radiowy do wybrania w celu przypisania roli do grupy Microsoft Entra i linku użytego do wybrania grupy w celu przypisania roli.
W oknie dialogowym Wybieranie członków:
  1. Pole tekstowe Wybierz może służyć do filtrowania listy użytkowników i grup w ramach subskrypcji. W razie potrzeby wpisz kilka pierwszych znaków lokalnej grupy deweloperów firmy Microsoft Entra utworzonej dla aplikacji.
  2. Wybierz lokalną grupę deweloperów firmy Microsoft skojarzona z twoją aplikacją.
Wybierz pozycję Wybierz w dolnej części okna dialogowego, aby kontynuować.
Zrzut ekranu przedstawiający sposób filtrowania i wybierania grupy Microsoft Entra dla aplikacji w oknie dialogowym Wybieranie członków.
Grupa Microsoft Entra jest wyświetlana jako wybrana na ekranie Dodawanie przypisania roli. Wybierz pozycję Przejrzyj i przypisz , aby przejść do ostatniej strony, a następnie ponownie przejrzyj i przypisz, aby ukończyć proces. Zrzut ekranu przedstawiający ukończoną stronę Dodawanie przypisania roli i lokalizację przycisku Przeglądanie i przypisywanie używanego do ukończenia procesu.

3 — 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. Konto, które uwierzytelnisz, powinno również istnieć w utworzonej i skonfigurowanej wcześniej grupie Microsoft Entra.

  1. Przejdź do pozycji Opcje narzędzi>, aby otworzyć okno dialogowe opcji.

  2. W polu Opcje wyszukiwania u góry wpisz Azure , aby filtrować dostępne opcje.

  3. W obszarze Uwierzytelnianie usługi platformy Azure wybierz pozycję Wybór konta.

  4. Wybierz menu rozwijane w obszarze Wybierz konto i wybierz opcję dodania konta Microsoft. Zostanie otwarte okno z monitem o wybranie konta. Wprowadź poświadczenia żądanego konta platformy Azure, a następnie wybierz potwierdzenie.

    Zrzut ekranu przedstawiający sposób logowania się do platformy Azure przy użyciu programu Visual Studio.

  5. Wybierz przycisk OK , aby zamknąć okno dialogowe opcji.

4 — Implementowanie wartości domyślnejAzureCredential w aplikacji

DefaultAzureCredential to uporządkowana sekwencja mechanizmów uwierzytelniania w firmie Microsoft Entra. Każdy mechanizm uwierzytelniania jest klasą pochodzącą z klasy TokenCredential i jest nazywana poświadczeniami. 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.

Kolejność i lokalizacje, w których DefaultAzureCredential wyszukiwanie poświadczeń znajduje się w obszarze DefaultAzureCredential.

Aby użyć DefaultAzureCredentialpolecenia , dodaj pakiet Azure.Identity i opcjonalnie pakiety 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 Program.csprogramie wykonaj następujące kroki, aby zarejestrować klasę klienta i DefaultAzureCredential:

  1. Uwzględnij Azure.Identity przestrzenie nazw i Microsoft.Extensions.Azure za pomocą using dyrektyw.
  2. Zarejestruj klienta usługi platformy Azure przy użyciu odpowiedniej Addmetody rozszerzenia z prefiksem.
  3. Przekaż wystąpienie DefaultAzureCredential metody UseCredential .

Na przykład:

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());
});

Alternatywą jest UseCredential utworzenie wystąpienia DefaultAzureCredential bezpośrednio:

using Azure.Identity;

builder.Services.AddSingleton<BlobServiceClient>(_ =>
    new BlobServiceClient(
        new Uri("https://<account-name>.blob.core.windows.net"),
        new DefaultAzureCredential()));

Po uruchomieniu poprzedniego kodu na lokalnej stacji roboczej programistycznej w zmiennych środowiskowych dla jednostki usługi aplikacji lub w lokalnie zainstalowanych narzędziach deweloperskich, takich jak Program Visual Studio, dla zestawu poświadczeń dewelopera. Jedną z metod można użyć do uwierzytelniania aplikacji w zasobach platformy Azure podczas programowania lokalnego.

Po wdrożeniu na platformie Azure ten sam kod może również uwierzytelniać aplikację w innych zasobach platformy Azure. DefaultAzureCredential program może automatycznie pobierać ustawienia środowiska i konfiguracje tożsamości zarządzanej w celu automatycznego uwierzytelniania w innych usługach.