Uwierzytelnianie aplikacji JavaScript w usługach platformy Azure podczas programowania lokalnego przy użyciu uwierzytelniania obsługiwanego przez brokera

Uwierzytelnianie obsługiwane przez brokera zbiera poświadczenia użytkownika przy użyciu brokera uwierzytelniania systemu w celu uwierzytelnienia aplikacji. Systemowy broker uwierzytelniania to aplikacja uruchomiona na komputerze użytkownika, która zarządza procesami uzgadniania uwierzytelniania i obsługą tokenów dla wszystkich połączonych kont.

Uwierzytelnianie obsługiwane przez brokera oferuje następujące korzyści:

  • Włącza single Sign-On (SSO): Umożliwia aplikacjom uproszczenie sposobu uwierzytelniania użytkowników za pomocą identyfikatora Entra firmy Microsoft i chroni tokeny odświeżania identyfikatora Entra firmy Microsoft przed eksfiltracją i nieprawidłowym użyciem.
  • Zwiększone zabezpieczenia: Wiele ulepszeń zabezpieczeń jest dostarczanych z brokerem bez konieczności aktualizowania logiki aplikacji.
  • Rozszerzona obsługa funkcji: Dzięki pomocy brokera deweloperzy mogą uzyskiwać dostęp do rozbudowanych funkcji systemu operacyjnego i usług.
  • Integracja z systemem: Aplikacje korzystające z brokera działają w trybie plug and play z wbudowanym modułem wyboru konta, co pozwala użytkownikowi szybko wybrać istniejące konto zamiast wielokrotnie wprowadzać te same poświadczenia.
  • Ochrona tokenów: Gwarantuje, że tokeny odświeżania są powiązane z urządzeniem i umożliwiają aplikacjom uzyskiwanie tokenów dostępu powiązanych z urządzeniem. Zobacz Ochrona tokenów.

System Windows udostępnia brokera uwierzytelniania o nazwie Menedżer kont sieci Web (WAM). WAM umożliwia dostawcom tożsamości, takim jak Microsoft Entra ID, natywne podłączanie do systemu operacyjnego i zapewnianie bezpiecznych usług logowania do aplikacji. Uwierzytelnianie za pośrednictwem brokera umożliwia aplikacji wykonywanie wszystkich operacji dozwolonych przez poświadczenia logowania interakcyjnego.

Obsługiwane są osobiste konta Microsoft i konta służbowe. W obsługiwanych wersjach systemu Windows domyślny interfejs użytkownika oparty na przeglądarce jest zastępowany bezproblemowym środowiskiem uwierzytelniania, podobnie jak w przypadku wbudowanych aplikacji systemu Windows.

Linux używa jednokrotnego logowania Microsoft dla systemu Linux jako pośrednika uwierzytelniania.

Konfigurowanie aplikacji na potrzeby uwierzytelniania obsługiwanego przez brokera

Aby włączyć uwierzytelnianie obsługiwane przez brokera w aplikacji, wykonaj następujące kroki:

  1. W witrynie Azure Portal przejdź do pozycji Microsoft Entra ID i wybierz pozycję Rejestracje aplikacji w menu po lewej stronie.

  2. Wybierz rejestrację aplikacji, a następnie wybierz pozycję Uwierzytelnianie.

  3. Dodaj odpowiedni adres URI przekierowania w rejestracji aplikacji w konfiguracji platformy:

    1. W obszarze Konfiguracje platformy wybierz pozycję + Dodaj platformę.

    2. W obszarze Konfigurowanie platform wybierz kafelek dla typu aplikacji (platformy), aby skonfigurować jego ustawienia, takie jak aplikacje mobilne i klasyczne.

    3. W sekcji Niestandardowe identyfikatory URI przekierowań wprowadź następujący identyfikator URI przekierowania dla swojej platformy:

      Platforma URI przekierowania
      Windows 10 lub nowszy albo WSL ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}
      macOS msauth.com.msauth.unsignedapp://auth dla niepodpisanych aplikacji
      msauth.{bundle_id}://auth dla podpisanych aplikacji
      Linux https://login.microsoftonline.com/common/oauth2/nativeclient

      Zastąp element {your_client_id} lub {bundle_id}identyfikatorem aplikacji (klienta) z okienka Przegląd rejestracji aplikacji.

    4. Wybierz Konfiguruj.

    Aby dowiedzieć się więcej, zobacz Dodawanie identyfikatora URI przekierowania do rejestracji aplikacji.

  4. Po powrocie do okienka Uwierzytelnianie w obszarze Ustawienia zaawansowane wybierz pozycję Tak w obszarze Zezwalaj na przepływy klientów publicznych.

  5. Wybierz Zapisz, aby zastosować zmiany.

  6. Aby autoryzować aplikację dla określonych zasobów, przejdź do odpowiedniego zasobu, wybierz pozycję Uprawnienia interfejsu API i włącz program Microsoft Graph i inne zasoby, do których chcesz uzyskać dostęp.

    Ważne

    Musisz również być administratorem dzierżawy, aby wyrazić zgodę na aplikację podczas pierwszego logowania.

Przypisywanie ról

Aby pomyślnie uruchomić kod aplikacji z uwierzytelnianiem obsługiwanym przez brokera, przyznaj swojemu kontu użytkownika uprawnienia przy użyciu kontroli dostępu opartej na rolach (RBAC) platformy Azure. Przypisz odpowiednią rolę do konta użytkownika dla odpowiedniej usługi platformy Azure. Przykład:

  • Azure Blob Storage: przypisz rolę Współautor danych konta magazynu .
  • Azure Key Vault: Przypisz rolę Oficer wpisów tajnych usługi Key Vault.

Jeśli określona jest aplikacja, musi mieć ustawione uprawnienia interfejsu API dla user_impersonation Access Azure Storage (krok 6 w poprzedniej sekcji). To uprawnienie interfejsu API umożliwia aplikacji dostęp do usługi Azure Storage w imieniu zalogowanego użytkownika po udzieleniu zgody podczas logowania.

Implementowanie kodu

Biblioteka tożsamości platformy Azure obsługuje uwierzytelnianie z udziałem brokera przy użyciu InteractiveBrowserCredential. Aby na przykład użyć InteractiveBrowserCredential w aplikacji konsolowej Node.js do uwierzytelniania w usłudze Azure Key Vault za pomocą klasy SecretClient, wykonaj następujące kroki:

  1. Zainstaluj pakiety @azure/identity i @azure/identity-broker :

    npm install @azure/identity @azure/identity-broker
    
  2. Utwórz wystąpienie InteractiveBrowserCredential za pomocą opcji brokera i zarejestruj natywną wtyczkę brokera:

    import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
    import { nativeBrokerPlugin } from "@azure/identity-broker";
    
    // Register the native broker plugin for brokered authentication
    useIdentityPlugin(nativeBrokerPlugin);
    
    // Use InteractiveBrowserCredential with broker for interactive or silent authentication
    
    // On Windows: Uses Windows Authentication Manager (WAM) - you'll be prompted to sign in
    // On macOS: Opens a browser window for authentication, since the broker flow isn't currently supported.
    // On Linux: Uses Microsoft Single Sign-on (SSO) for Linux.
    
    const credential = new InteractiveBrowserCredential({
        brokerOptions: {
            enabled: true,
            useDefaultBrokerAccount: true,
            // For Node.js console apps, we need to provide an empty buffer for parentWindowHandle
            parentWindowHandle: new Uint8Array(0),
        },
    });
    

Wskazówka

Wyświetl kompletny przykładowy kod aplikacji w repozytorium GitHub zestawu Azure SDK dla języka JavaScript.

W poprzednim przykładzie właściwość useDefaultBrokerAccount jest ustawiona na true, co powoduje użycie niejawnego przepływu uwierzytelniania realizowanego przez brokera przy użyciu domyślnego konta systemowego. W ten sposób użytkownik nie musi wielokrotnie wybierać tego samego konta. Jeśli dyskretne uwierzytelnianie obsługiwane przez brokera zakończy się niepowodzeniem lub jeśli parametr useDefaultBrokerAccount jest ustawiony na false, InteractiveBrowserCredential powraca do interakcyjnego uwierzytelniania obsługiwanego przez brokera.

Poniższy zrzut ekranu przedstawia alternatywne środowisko uwierzytelniania interakcyjnego obsługiwanego przez brokera:

Zrzut ekranu przedstawiający ekran logowania systemu Windows podczas korzystania z wystąpienia InteractiveBrowserCredential z obsługą brokera w celu uwierzytelnienia użytkownika.

Poniższy film wideo przedstawia alternatywne środowisko uwierzytelniania interakcyjnego obsługiwanego przez brokera:

Animowany plik GIF przedstawiający proces logowania w systemie Linux podczas używania instancji InteractiveBrowserCredential z włączoną obsługą brokera w celu uwierzytelnienia użytkownika.