Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Расширения аутентификации Microsoft для Node.js позволяют разработчикам выполнять сериализацию кэша токенов на разных платформах и сохранять его на диске. Он обеспечивает дополнительную поддержку Microsoft Authentication Library (MSAL) для Node.
MSAL Node поддерживает кэш в памяти по умолчанию и предоставляет интерфейс ICachePlugin для сериализации кэша, но не предоставляет стандартный способ хранения кэша маркеров на диске. Расширения аутентификации Microsoft для Node.js — это реализация по умолчанию для сохранения кэша на диске на разных платформах.
Расширения Microsoft Authentication Extensions для Node.js поддерживают следующие платформы:
- Windows — API защиты данных (DPAPI) используется для защиты.
- Mac — используется цепочка ключей Mac.
- Linux — LibSecret используется для хранения данных в «Secret Service».
Installation
Пакет msal-node-extensions доступен на узле диспетчер пакетов (NPM).
npm i @azure/msal-node-extensions --save
Настройка кэша токенов
Вот пример кода, в котором Microsoft Authentication Extensions for 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...
}
);
В следующей таблице приведено объяснение всех аргументов конфигурации сохраняемости.
| Имя поля | Description | Требуется для |
|---|---|---|
| cachePath | Путь к файлу блокировки, который используется библиотекой для синхронизации операций чтения и записи | Windows, Mac и Linux |
| Область защиты данных | Указывает область защиты данных на Windows текущего пользователя или локального компьютера. | Windows |
| serviceName | Указывает имя службы, используемое в Mac и (или) Linux | Mac и Linux |
| accountName | Указывает имя учетной записи для использования в Mac и (или) Linux | Mac и Linux |
| usePlaintextFileOnLinux | Флаг для перехода по умолчанию на открытый текст в Linux, если LibSecret завершится сбоем. Значение по умолчанию false |
Linux |