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


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

Этот пакет предоставляет подключаемый модуль для библиотеки удостоверений Azure для JavaScript (@azure/identity), которая позволяет использовать брокер проверки подлинности, например WAM.

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

исходный код | примеры | справочной документации по API | [Документация по идентификатору Microsoft Entra] (https://learn.microsoft.com/entra/identity/)

Начало работы

import { useIdentityPlugin } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);

Необходимые условия

Установка пакета

Этот пакет предназначен для использования с удостоверением Azure для JavaScript. Установите @azure/identity и этот пакет с помощью npm:

npm install --save @azure/identity
npm install --save @azure/identity-broker

Поддерживаемые среды

Подключаемые модули удостоверений Azure для JavaScript поддерживают стабильные (даже нумерированные) версии Node.js начиная с версии 18. Хотя подключаемые модули могут выполняться в других Node.js версиях, поддержка не гарантируется. @azure/identity-broker не поддерживает среды браузера.

Основные понятия

Если вы впервые используете @azure/identity или идентификатор Microsoft Entra ID, рекомендуется сначала прочитать использование @azure/identity с идентификатором Microsoft Entra ID. В этом документе вы узнаете о платформе и правильной настройке учетной записи Azure.

Маркеры родительского окна

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

Сквозное руководство по учетной записи Майкрософт (MSA)

Учетные записи Майкрософт (MSA) — это личные учетные записи, созданные пользователями для доступа к службам Майкрософт. Сквозное руководство MSA — это устаревшая конфигурация, которая позволяет пользователям получать маркеры к ресурсам, которые обычно не принимают имена входа MSA. Эта функция доступна только для сторонних приложений. Пользователи, прошедшие проверку подлинности с помощью приложения, настроенного для использования сквозного руководства MSA, могут задать legacyEnableMsaPassthrough для truetrue внутри InteractiveBrowserCredentialNodeOptions.brokerOptions, чтобы разрешить перечисление этих личных учетных записей WAM.

URI перенаправления

Приложения Microsoft Entra используют URI перенаправления, чтобы определить, куда отправлять ответ проверки подлинности после входа пользователя. Чтобы включить проверку подлинности через WAM через брокер, URI перенаправления, соответствующий следующему шаблону, необходимо зарегистрировать в приложении:

ms-appx-web://Microsoft.AAD.BrokerPlugin/{client_id}

Подключаемые модули удостоверений Azure

В @azure/identity версии 2.0.0 клиентская библиотека удостоверений для JavaScript включает API подключаемого модуля. Этот пакет (@azure/identity-broker) экспортирует объект подключаемого модуля, который необходимо передать в качестве аргумента функции useIdentityPlugin верхнего уровня из пакета @azure/identity. Включите собственный брокер в программе следующим образом:

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});

После вызова useIdentityPluginподключаемый модуль собственного брокера регистрируется в пакете @azure/identity и будет доступен на InteractiveBrowserCredential, поддерживающей проверку подлинности брокера WAM. Эти учетные данные brokerOptions в параметрах конструктора.

Примеры

После регистрации подключаемого модуля можно включить проверку подлинности посредника WAM, передав brokerOptions со свойством enabled, для параметра true конструктор учетных данных. В следующем примере мы используем InteractiveBrowserCredential.

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});
// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";
// Print out part of the access token
console.log((await credential.getToken(scope)).token.substring(0, 10), "...");

Полный пример использования приложения Electron для получения дескриптора окна см. в этом примере.

Использование учетной записи по умолчанию для входа

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

import { useIdentityPlugin, InteractiveBrowserCredential } from "@azure/identity";
import { nativeBrokerPlugin } from "@azure/identity-broker";

useIdentityPlugin(nativeBrokerPlugin);
const credential = new InteractiveBrowserCredential({
  brokerOptions: {
    enabled: true,
    useDefaultBrokerAccount: true,
    parentWindowHandle: new Uint8Array(0), // This should be a handle to the parent window
  },
});
// We'll use the Microsoft Graph scope as an example
const scope = "https://graph.microsoft.com/.default";
// Print out part of the access token
console.log((await credential.getToken(scope)).token.substr(0, 10), "...");

Устранение неполадок

Дополнительные сведения о диагностике различных сценариев сбоя см. в руководстве по идентификации Azure [руководство по устранению неполадок][https://github.com/Azure/azure-sdk-for-js/blob/@azure/identity-broker_1.1.0/sdk/identity/identity/TROUBLESHOOTING.md].

Лесозаготовка

Включение ведения журнала может помочь выявить полезные сведения о сбоях. Чтобы просмотреть журнал HTTP-запросов и ответов, задайте для переменной среды AZURE_LOG_LEVEL значение info. Кроме того, ведение журнала можно включить во время выполнения путем вызова setLogLevel в @azure/logger:

import { setLogLevel } from "@azure/logger";

setLogLevel("info");

Дальнейшие действия

Предоставление отзывов

Если возникают ошибки или есть предложения, откройте проблему.

Способствует

Если вы хотите внести свой вклад в эту библиотеку, ознакомьтесь с руководством по , чтобы узнать больше о том, как создавать и тестировать код.

впечатлений