Поделиться через


Аутентификация приложений JavaScript для служб Azure во время локальной разработки с использованием посреднической аутентификации.

Проверка подлинности через брокер собирает учетные данные пользователя с помощью брокера проверки подлинности системы для проверки подлинности приложения. Брокер проверки подлинности системы — это приложение, работающее на компьютере пользователя, которое управляет подтверждением проверки подлинности и обслуживанием маркеров для всех подключенных учетных записей.

Проверка подлинности с помощью брокера обеспечивает следующие преимущества:

  • Включает один Sign-On (единый вход): Позволяет приложениям упростить проверку подлинности пользователей с помощью идентификатора Microsoft Entra и защитить маркеры обновления идентификатора Microsoft Entra от кражи и неправильного использования.
  • Улучшенная безопасность: Многие улучшения безопасности предоставляются брокером без необходимости обновлять логику приложения.
  • Расширенная поддержка функций: С помощью брокера разработчики могут получить доступ к расширенным возможностям ОС и службы.
  • Интеграция системы: Приложения, использующие подключаемый модуль брокера с встроенным средство выбора учетных записей, позволяют пользователю быстро выбрать существующую учетную запись вместо повторного ввода одинаковых учетных данных.
  • Защита маркеров: Гарантирует, что маркеры обновления привязаны к устройству и позволяют приложениям получать маркеры доступа, привязанные к устройству. См. раздел "Защита маркеров".

Windows предоставляет брокер проверки подлинности с именем диспетчера веб-учетных записей (WAM). WAM позволяет поставщикам удостоверений, таким как идентификатор Microsoft Entra, в собственном коде подключаться к ОС и предоставлять безопасные службы входа в приложения. Проверка подлинности с помощью брокера позволяет приложению выполнять все операции, разрешенные интерактивными учетными данными для входа.

Поддерживаются личные учетные записи Майкрософт и рабочие или учебные учетные записи. В поддерживаемых версиях Windows пользовательский интерфейс на основе браузера по умолчанию заменяется более плавной проверкой подлинности, аналогично встроенным приложениям Windows.

Linux использует единый вход Майкрософт для Linux в качестве брокера проверки подлинности.

Настройка приложения для проверки подлинности с помощью брокера

Чтобы включить проверку подлинности через брокер в приложении, выполните следующие действия.

  1. На портале Azure перейдите к идентификатору Microsoft Entra и выберите регистрации приложений в меню слева.

  2. Выберите регистрацию приложения, а затем выберите проверку подлинности.

  3. Добавьте соответствующий URI перенаправления в регистрацию приложения с помощью конфигурации платформы:

    1. В разделе "Конфигурации платформы" выберите +Добавить платформу.

    2. В разделе "Настройка платформ" выберите плитку для типа приложения (платформы), чтобы настроить его параметры, такие как мобильные и классические приложения.

    3. В пользовательских URI перенаправления введите следующий URI перенаправления для своей платформы:

      Platform Перенаправляющий URI
      Windows 10+ или WSL ms-appx-web://Microsoft.AAD.BrokerPlugin/{your_client_id}
      macOS msauth.com.msauth.unsignedapp://auth для неподписанных приложений
      msauth.{bundle_id}://auth для подписанных приложений
      Линукс https://login.microsoftonline.com/common/oauth2/nativeclient

      Замените {your_client_id} или {bundle_id} на идентификатор приложения (клиента) на панели обзора регистрации приложения.

    4. Выберите и настройте.

    Дополнительные сведения см. в разделе "Добавление URI перенаправления в регистрации приложения".

  4. Вернитесь на панель проверки подлинности в разделе "Дополнительные параметры" выберите "Да ", чтобы разрешить потоки общедоступного клиента.

  5. Выберите Сохранить, чтобы применить изменения.

  6. Чтобы авторизовать приложение для определенных ресурсов, перейдите к нужному ресурсу, выберите Разрешения API и включите Microsoft Graph и другие ресурсы, к которым вы хотите получить доступ.

    Это важно

    Вы также должны быть администратором вашего арендатора, чтобы предоставить согласие приложению, когда вы впервые входите в систему.

Назначьте роли

Чтобы успешно запустить код приложения с проверкой подлинности через брокер, предоставьте учетные записи пользователя разрешения с помощью управления доступом на основе ролей Azure (RBAC). Назначьте соответствующую роль учетной записи пользователя для соответствующей службы Azure. Рассмотрим пример.

  • Хранилище BLOB-объектов Azure: назначение роли участника данных учетной записи хранения .
  • Azure Key Vault: назначьте роль офицера секретов Key Vault .

Если указано приложение, оно должно иметь разрешения API для user_impersonation Доступ к хранилищу Azure (шаг 6 в предыдущем разделе). Это разрешение API позволяет приложению получить доступ к хранилищу Azure от имени пользователя, выполнившего вход после предоставления согласия во время входа.

Реализация кода

Библиотека удостоверений Azure поддерживает проверку подлинности через брокер с помощью InteractiveBrowserCredential. Например, чтобы использовать InteractiveBrowserCredential в консольном приложении Node.js для аутентификации в Azure Key Vault с помощью SecretClient, выполните следующие действия.

  1. Установите пакеты @azure/identity и @azure/identity-broker :

    npm install @azure/identity @azure/identity-broker
    
  2. Создайте экземпляр InteractiveBrowserCredential с использованием параметров брокера и зарегистрируйте нативный плагин брокера:

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

Подсказка

Просмотрите полный пример кода приложения в репозитории Azure SDK для JavaScript GitHub.

В предыдущем примере свойство useDefaultBrokerAccount имеет значение true, которое выбирает автоматический поток проверки подлинности брокера с помощью системной учетной записи по умолчанию. Таким образом, пользователю не нужно многократно выбирать одну и ту же учетную запись. Если автоматическая проверка подлинности с помощью брокера завершается ошибкой или useDefaultBrokerAccount задана, falseInteractiveBrowserCredential возвращается к интерактивной, брокерской проверке подлинности.

На следующем снимку экрана показан альтернативный интерактивный интерфейс проверки подлинности с брокером:

Снимок экрана, на котором показан интерфейс входа Windows при использовании экземпляра InteractiveBrowserCredential с поддержкой брокера для проверки подлинности пользователя.

В следующем видео показано альтернативное интерактивное взаимодействие с проверкой подлинности с помощью брокера:

Анимированный GIF-файл, показывающий интерфейс входа Linux при использовании экземпляра InteractiveBrowserCredential с поддержкой брокера для проверки подлинности пользователя.