Udostępnij za pośrednictwem


Uwierzytelnianie w zasobach platformy Azure z lokalnych aplikacji JavaScript

Aplikacje działające poza platformą Azure (na przykład lokalne lub w centrum danych innej firmy) powinny używać jednostki usługi aplikacji do uwierzytelniania na platformie Azure podczas uzyskiwania dostępu do zasobów platformy Azure. Obiekty jednostki usługi aplikacji są tworzone przy użyciu procesu rejestracji aplikacji na platformie Azure. Po utworzeniu jednostki usługi aplikacji identyfikator klienta i klucz tajny klienta są generowane dla aplikacji. Identyfikator klienta, klucz tajny klienta i identyfikator dzierżawy są przechowywane w zmiennych środowiskowych, aby zestaw Azure SDK dla języka JavaScript używał zmiennych środowiskowych do uwierzytelniania aplikacji na platformie Azure w czasie wykonywania.

Dla każdego środowiska (takiego jak test, etap, produkcja) należy utworzyć inną rejestrację aplikacji. Umożliwia to skonfigurowanie uprawnień zasobów specyficznych dla środowiska dla każdej jednostki usługi i upewnienie się, że aplikacja wdrożona w jednym środowisku nie rozmawia z zasobami platformy Azure, które są częścią innego środowiska.

1 — Rejestrowanie aplikacji na platformie Azure

Aplikację można zarejestrować na platformie Azure przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure.

Zaloguj się do witryny Azure Portal i wykonaj następujące kroki.

Instrukcje Zrzut ekranu
W witrynie Azure Portal:
  1. Wprowadź rejestracje aplikacji na pasku wyszukiwania w górnej części witryny Azure Portal.
  2. Wybierz element z etykietą Rejestracje aplikacji pod nagłówkiem Usługi w menu wyświetlanym poniżej paska wyszukiwania.
Zrzut ekranu przedstawiający sposób użycia górnego paska wyszukiwania w witrynie Azure Portal w celu znalezienia i przejścia do strony Rejestracje aplikacji.
Na stronie Rejestracje aplikacji wybierz pozycję + Nowa rejestracja. Zrzut ekranu przedstawiający lokalizację przycisku Nowa rejestracja na stronie Rejestracje aplikacji.
Na stronie Rejestrowanie aplikacji wypełnij formularz w następujący sposób.
  1. Nazwa → wprowadź nazwę rejestracji aplikacji na platformie Azure. Zaleca się, aby ta nazwa zawierała nazwę aplikacji i środowisko (test, prod), dla których jest włączona rejestracja aplikacji.
  2. Obsługiwane typy kont → Konta tylko w tym katalogu organizacyjnym.
Wybierz pozycję Zarejestruj, aby zarejestrować aplikację i utworzyć jednostkę usługi aplikacji.
Zrzut ekranu przedstawiający wypełnienie pola Rejestrowanie, podając nazwę aplikacji i określając obsługiwane typy kont jako konta tylko w tym katalogu organizacyjnym.
Na stronie Rejestracja aplikacji dla aplikacji:
  1. Identyfikator aplikacji (klienta) → Jest to identyfikator aplikacji, którego aplikacja będzie używać do uzyskiwania dostępu do platformy Azure podczas programowania lokalnego. Skopiuj tę wartość do lokalizacji tymczasowej w edytorze tekstów, ponieważ będzie ona potrzebna w przyszłym kroku.
  2. Identyfikator katalogu (dzierżawy) → Ta wartość będzie również potrzebna przez aplikację podczas uwierzytelniania na platformie Azure. Skopiuj tę wartość do lokalizacji tymczasowej w edytorze tekstów, która będzie również potrzebna w przyszłym kroku.
  3. Poświadczenia klienta → Należy ustawić poświadczenia klienta dla aplikacji, zanim aplikacja będzie mogła uwierzytelnić się na platformie Azure i korzystać z usług platformy Azure. Wybierz pozycję Dodaj certyfikat lub wpis tajny , aby dodać poświadczenia dla aplikacji.
Zrzut ekranu przedstawiający rejestrację aplikacji po zakończeniu. Ten zrzut ekranu przedstawia identyfikatory aplikacji i dzierżawy, które będą potrzebne w przyszłym kroku.
Na stronie Certyfikaty i wpisy tajne wybierz pozycję + Nowy klucz tajny klienta. Zrzut ekranu przedstawiający lokalizację linku do utworzenia nowego wpisu tajnego klienta na stronie certyfikatów i wpisów tajnych.
W oknie dialogowym Dodawanie wpisu tajnego klienta zostanie wyświetlone okno dialogowe po prawej stronie. W tym oknie dialogowym:
  1. Opis → Wprowadź wartość Current.
  2. Wygasa → wybierz wartość 24 miesięcy.
Wybierz pozycję Dodaj , aby dodać wpis tajny.

WAŻNE: Ustaw przypomnienie w kalendarzu przed datą wygaśnięcia wpisu tajnego. Dzięki temu możesz dodać nowy wpis tajny przed wygaśnięciem tego wpisu tajnego i zaktualizować aplikacje przed wygaśnięciem tego wpisu tajnego i uniknąć przerw w działaniu usługi w aplikacji.
Zrzut ekranu przedstawiający stronę, na której jest dodawany nowy wpis tajny klienta dla jednostki usługi aplikacji utworzonej przez proces rejestracji aplikacji.
Na stronie Certyfikaty i wpisy tajne jest wyświetlana wartość klucza tajnego klienta.

Skopiuj tę wartość do lokalizacji tymczasowej w edytorze tekstów, ponieważ będzie ona potrzebna w przyszłym kroku.

WAŻNE: jest to jedyna godzina wyświetlenia tej wartości. Po opuszczeniu lub odświeżeniu tej strony nie będzie można ponownie wyświetlić tej wartości. Możesz dodać kolejny klucz tajny klienta bez unieważnienia tego wpisu tajnego klienta, ale ta wartość nie zostanie ponownie wyświetlona.
Zrzut ekranu przedstawiający stronę z wygenerowanym wpisem tajnym klienta.

2 — Przypisywanie ról do jednostki usługi aplikacji

Następnie należy określić, jakich ról (uprawnień) potrzebuje twoja aplikacja na temat zasobów i przypisać te role do aplikacji. Role mogą być przypisywane do roli w zakresie zasobu, grupy zasobów lub subskrypcji. W tym przykładzie pokazano, jak przypisać role dla jednostki usługi 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 górne pole 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 pierwsze kilka znaków jednostki usługi utworzonej dla aplikacji, aby przefiltrować listę.
  2. Wybierz jednostkę usługi skojarzona z 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.
Jednostka usługi 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 — Konfigurowanie zmiennych środowiskowych dla aplikacji

Należy ustawić AZURE_CLIENT_IDzmienne środowiskowe , AZURE_TENANT_IDi AZURE_CLIENT_SECRET dla procesu, który uruchamia aplikację JavaScript, aby poświadczenia jednostki usługi aplikacji dostępne dla aplikacji w czasie wykonywania. Obiekt DefaultAzureCredential szuka informacji o jednostce usługi w tych zmiennych środowiskowych.

AZURE_CLIENT_ID=<value>
AZURE_TENANT_ID=<value>
AZURE_CLIENT_SECRET=<value>

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 pakietu @azure/tożsamości .

Najpierw dodaj pakiet @azure/identity 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.

// connect-with-default-azure-credential.js
import { BlobServiceClient } from '@azure/storage-blob';
import { DefaultAzureCredential } from '@azure/identity';
import 'dotenv/config'

const accountName = process.env.AZURE_STORAGE_ACCOUNT_NAME;
if (!accountName) throw Error('Azure Storage accountName not found');

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

Gdy powyższy kod tworzy wystąpienie DefaultAzureCredential obiektu, DefaultAzureCredential odczytuje zmienne AZURE_SUBSCRIPTION_IDśrodowiskowe , AZURE_TENANT_ID, AZURE_CLIENT_IDi AZURE_CLIENT_SECRET informacje o jednostce usługi aplikacji w celu nawiązania połączenia z platformą Azure za pomocą polecenia .