Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
MSAL.js поддерживает получение токенов через Диспетчер учетных записей Интернета (WAM) в Windows. Эти токены привязаны к устройству, на котором они были получены, и не сохраняются в localStorage или sessionStorage браузера.
Поддерживаемая среда
Эта функция в настоящее время поддерживается только в следующей среде:
- Компьютер под управлением сборки Windows, поддерживающей функцию (дополнительные сведения об этом).
- Браузеры Chrome и Edge или Teams
- расширение учетных записей Windows (версия 1.0.5 или более поздней версии) устанавливается при использовании Chrome или Edge
- Приложение должно размещаться в
https
Кроме того, эта функция в настоящее время поддерживается только для рабочих и учебных учетных записей.
Включение функции в MSAL.js
Чтобы включить эту функцию в MSAL.js задайте для флага allowPlatformBroker значение true в объекте конфигурации следующим образом:
const msalConfig = {
auth: {
clientId: "insert-clientId"
},
system: {
allowPlatformBroker: true
}
};
Кроме того, прежде чем вызывать любые другие API MSAL.js, необходимо вызвать новый API initialize и дождаться его завершения.
const pca = new PublicClientApplication(msalConfig);
// Initialize will establish a connection with the browser extension, if present
await pca.initialize();
// Call handleRedirectPromise, after initialization is complete
await pca.handleRedirectPromise();
// After initialize and handleRedirectPromise have completed, you may call any of the other APIs as you would without this feature
pca.acquireTokenSilent();
Для поддержки этой новой функции другие изменения не требуются. Теперь любой пользователь, обращаюющийся к приложению из поддерживаемой среды, сможет получить привязанные к устройству маркеры. Пользователи в неподдерживаемых средах будут продолжать получать токены через традиционные веб-процессы.
Рабочий пример можно найти здесь
Различия при получении токенов с помощью WAM
Есть несколько особенностей, из-за которых получение токенов через WAM может немного отличаться.
- Все связанные с кэшем конфигурации применяются только к локальному кэшу MSAL. Локальный брокер управляет собственным, более защищённым кэшем, который используется вместо хранилища браузера, и не поддерживает настройку поведения этого кэша. Это означает, что вы можете получить кэшированный маркер независимо от значения параметров запроса, таких как:
forceRefreshcacheLookupPolicyилиstoreInCache. Кроме того, токены, полученные от нативного брокера, не хранятся в локальном или сеансовом хранилище независимо от параметров, заданных в PublicClientApplication. - Если WAM потребуется запросить взаимодействие пользователя, откроется системный запрос. Этот запрос выглядит немного иначе, чем всплывающие окна браузера, к которым вы, возможно, привыкли.
- Если это произойдет, переключение учетной записи в запросе WAM не поддерживается, MSAL.js вызовет ошибку (код ошибки: user_switch). Это ответственность вашего приложения за перехват этой ошибки и его обработку таким образом, что имеет смысл для ваших сценариев (например, показывать страницу ошибок, повторить попытку с новой учетной записью, повторить попытку с исходной учетной записью и т. д.).