Расширения проверки подлинности Microsoft для Node.js

Расширения проверки подлинности Майкрософт для Node позволяют разработчикам выполнять сериализацию и сохраняемость на диске межплатформенного кэша маркеров. Она обеспечивает дополнительную поддержку библиотеки аутентификации Майкрософт (MSAL) для Node.js.

MSAL for Node поддерживает кэш в памяти по умолчанию и предоставляет интерфейс ICachePlugin для сериализации кэша, но не предоставляет стандартный способ хранения кэша маркеров на диск. Расширения аутентификации Microsoft для Node.js — это реализация по умолчанию для сохранения кэша на диске на разных платформах.

Расширения проверки подлинности Microsoft для Node.js поддерживают следующие платформы:

  • Windows — API защиты данных (DPAPI) используется для защиты.
  • Mac — используется цепочка ключей Mac.
  • Linux — LibSecret используется для хранения в «Secret Service».

Установка

Пакет msal-node-extensions доступен в диспетчере пакетов узлов (NPM).

npm i @azure/msal-node-extensions --save

Настройка кэша токенов

Ниже приведен пример кода, использующего расширения проверки подлинности Microsoft для Node.js для настройки кэша токенов.

const {
  DataProtectionScope,
  Environment,
  PersistenceCreator,
  PersistenceCachePlugin,
} = require("@azure/msal-node-extensions");

// You can use the helper functions provided through the Environment class to construct your cache path
// The helper functions provide consistent implementations across Windows, Mac and Linux.
const cachePath = path.join(Environment.getUserRootDirectory(), "./cache.json");

const persistenceConfiguration = {
  cachePath,
  dataProtectionScope: DataProtectionScope.CurrentUser,
  serviceName: "<SERVICE-NAME>",
  accountName: "<ACCOUNT-NAME>",
  usePlaintextFileOnLinux: false,
};

// The PersistenceCreator obfuscates a lot of the complexity by doing the following actions for you :-
// 1. Detects the environment the application is running on and initializes the right persistence instance for the environment.
// 2. Performs persistence validation for you.
// 3. Performs any fallbacks if necessary.
PersistenceCreator.createPersistence(persistenceConfiguration).then(
  async (persistence) => {
    const publicClientConfig = {
      auth: {
        clientId: "<CLIENT-ID>",
        authority: "<AUTHORITY>",
      },

      // This hooks up the cross-platform cache into MSAL
      cache: {
        cachePlugin: new PersistenceCachePlugin(persistence),
      },
    };

    const pca = new msal.PublicClientApplication(publicClientConfig);

    // Use the public client application as required...
  }
);

В следующей таблице приведено объяснение всех аргументов конфигурации сохраняемости.

Имя поля Описание Требуется для
путь_кэша Путь к файлу блокировки, который используется библиотекой для синхронизации операций чтения и записи Windows, Mac и Linux
областьЗащитыДанных Указывает, что область защиты данных в Windows распространяется либо на текущего пользователя, либо на локальный компьютер. Виндоус
название сервиса Указывает имя службы, используемое в Mac и (или) Linux Mac и Linux
Имя аккаунта Указывает имя учетной записи для использования в Mac и (или) Linux Mac и Linux
usePlaintextFileOnLinux Флаг для переключения на обычный текст в Linux по умолчанию, если LibSecret завершается сбоем. По умолчанию — false. Линукс

Дальнейшие шаги

Дополнительные сведения о расширениях проверки подлинности Microsoft для Node.js и MSAL Node см. в следующей статье: