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

Podczas tworzenia aplikacji w chmurze deweloperzy muszą debugować i testować aplikacje na lokalnej stacji roboczej. Gdy aplikacja jest uruchamiana na stacji roboczej dewelopera podczas programowania lokalnego, nadal musi 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 lokalną aplikację dewelopera uruchamiającą uzyskiwanie jednostki usługi z pliku env i używanie tej tożsamości 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ę do platformy Azure z poziomu rozszerzenia narzędzi platformy Azure programu Visual Studio Code, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Zestaw Azure SDK dla języka JavaScript może wykryć, że deweloper jest zalogowany z jednego z tych narzędzi, a następnie uzyskuje niezbędne poświadczenia z pamięci podręcznej poświadczeń 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 będzie mieć więcej uprawnień niż wymagane przez aplikację, w związku z tym przekroczenie uprawnień uruchamianych 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 wiele deweloperów, którzy pracują nad aplikacją, zaleca się najpierw utworzenie grupy Entra firmy Microsoft w celu hermetyzacji ról (uprawnień) wymaganych przez aplikację w środowisku lokalnym. Oferuje to 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 Microsoft Entra dla aplikacji.
  • Jeśli nowy deweloper dołącza do zespołu, po prostu musi zostać dodany do właściwej grupy Firmy Microsoft Entra, aby uzyskać odpowiednie uprawnienia do pracy nad aplikacją.

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, a następnie wybierając pozycję Microsoft Entra ID w obszarze usług. 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. Typ grupy → Zabezpieczenia.
  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.

2 — Przypisywanie ról do grupy Microsoft Entra

Następnie należy określić, jakich ról (uprawnień) potrzebuje twoja aplikacja na temat zasobów i przypisać te role do aplikacji. W tym przykładzie role są przypisywane do grupy Microsoft Entra utworzonej w kroku 1. Role mogą być przypisywane 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.

Instrukcje Zrzut ekranu
Znajdź grupę zasobów dla 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 programu VS Code, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell

Otwórz terminal na stacji roboczej dewelopera i zaloguj się do platformy Azure z poziomu programu Azure PowerShell.

Connect-AzAccount

4 — Implementowanie wartości domyślnejAzureCredential w aplikacji

Aby uwierzytelnić obiekty klienta zestawu Azure SDK na platformie Azure, aplikacja powinna używać DefaultAzureCredential klasy z @azure/identity pakietu. W tym scenariuszu sekwencyjnie sprawdzi, DefaultAzureCredential czy deweloper zalogował się do platformy Azure przy użyciu rozszerzenia narzędzi platformy Azure programu VS Code, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Jeśli deweloper jest zalogowany na platformie Azure przy użyciu dowolnego z tych narzędzi, poświadczenia używane do logowania się do narzędzia będą używane przez aplikację do uwierzytelniania na platformie Azure za pomocą polecenia .

Zacznij od dodania pakietu @azure/tożsamości do aplikacji.

npm install @azure/identity

Następnie w przypadku dowolnego kodu JavaScript, który tworzy obiekt klienta zestawu Azure SDK w aplikacji, należy wykonać następujące czynności:

  1. Zaimportuj klasę DefaultAzureCredential z modułu @azure/identity .
  2. Utwórz DefaultAzureCredential obiekt.
  3. Przekaż obiekt do konstruktora DefaultAzureCredential obiektu klienta zestawu Azure SDK.

Przykład jest pokazany w następującym segmencie kodu.

import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';

// Acquire a credential object
const tokenCredential = DefaultAzureCredential();

const blobServiceClient = BlobServiceClient(
        `https://${accountName}.blob.core.windows.net`,
        tokenCredential
);

DefaultAzureCredential Automatycznie wykryje mechanizm uwierzytelniania skonfigurowany dla aplikacji i uzyska niezbędne tokeny do uwierzytelniania aplikacji na platformie Azure. Jeśli aplikacja korzysta z więcej niż jednego klienta zestawu SDK, ten sam obiekt poświadczeń może być używany z każdym obiektem klienta zestawu SDK.