Udostępnij przez


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. Broker uwierzytelniania systemu to aplikacja uruchomiona na komputerze użytkownika, która zarządza uzgadniania uwierzytelniania i konserwacją 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 systemu: Aplikacje korzystające z wtyczki i odtwarzania brokera z wbudowanym selektorem kont, co umożliwia użytkownikowi szybkie wybranie istniejącego konta zamiast ponownego wprowadzania tych samych poświadczeń.
  • 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 obsługiwane przez brokera umożliwia aplikacji wszystkie operacje dozwolone 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.

System Linux używa logowania jednokrotnego firmy Microsoft dla systemu Linux jako brokera 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 identyfikator URI przekierowania do rejestracji aplikacji za pomocą 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 obszarze Niestandardowe identyfikatory URI przekierowania wprowadź następujący identyfikator URI przekierowania dla platformy:

      Platforma URI przekierowania
      Windows 10 lub 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 {your_client_id} wartość lub {bundle_id}identyfikatorem aplikacji (klienta) w okienku 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: przypisywanie roli oficera 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, która decyduje się na dyskretny przepływ uwierzytelniania obsługiwanego przez brokera z domyślnym kontem systemowym. W ten sposób użytkownik nie musi wielokrotnie wybierać tego samego konta. Jeśli uwierzytelnianie dyskretne, uwierzytelnianie obsługiwane przez brokera kończy się niepowodzeniem lub useDefaultBrokerAccount jest ustawione na falsewartość , InteractiveBrowserCredential wraca do uwierzytelniania interakcyjnego, obsługiwanego przez brokera.

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

Zrzut ekranu przedstawiający środowisko logowania systemu Windows w przypadku 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 środowisko logowania systemu Linux w przypadku korzystania z wystąpienia InteractiveBrowserCredential z obsługą brokera w celu uwierzytelnienia użytkownika.