Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
General
Когда используется узел MSAL?
MSAL Node поддерживает проверку подлинности на основе сервера для общедоступных и конфиденциальных приложений. Это более применимо для сценариев проверки подлинности на основе сервера или веб-API, которые нуждаются в проверке подлинности. Полный список поддерживаемых сценариев можно найти здесь и поддерживаемые потоки перечислены здесь.
Что такое состояние узла ADAL? Доступно ли руководство по миграции?
В настоящее время ADAL Node находится в режиме сопровождения, и мы рекомендуем всем пользователям перейти на MSAL Node. Узел MSAL предназначен для полной замены узла ADAL. Для тех, кто ищет миграцию из ADAL в MSAL, мы предоставили документ миграции , который поможет в миграции. Обратите внимание, что переход может пройти не совсем гладко не для всех приложений, так как старая функциональность была полностью переработана.
Какие службы поддерживаются?
MsAL Node поддерживает Microsoft Entra ID, MSA, ADFS и B2C. Наши примеры демонстрируют использование здесь. MSAL Node также поддерживает отдельные и мультитенантные приложения.
Примечание. В настоящее время поддерживается ADFS, автономный пример еще не опубликован. Скоро загляните сюда за обновлениями.
Что такое общедоступное приложение или конфиденциальное приложение? Что нужно знать во время регистрации приложения?
Найдите это в основах MSAL
Какое значение строка authority использует по умолчанию, если я указываю "authority" и "azureCloudOptions"?
Если разработчик предоставляет azureCloudOptions, MSAL.js перезаписывает любое значение, указанное в файле authority. MSAL.js также будет отдавать предпочтение параметрам, указанным в request, а не в configuration. Обратите внимание, что если azureCloudOptions заданы в конфигурации, они будут иметь приоритет над authority в request. Если разработчику нужно перезаписать это, необходимо установить azureCloudOptions в поле request.
Каков будет срок действия токенов?
- Microsoft Entra. Найдите последнюю ссылку на Microsoft Entra здесь. Обратите внимание, что некоторые из настраиваемых функций для определенных типов маркеров недавно сняты.
- B2C: См. рекомендации по сроку действия токена B2C здесь
Как получить маркер обновления?
MSAL Node не предоставляет доступ к токенам обновления по соображениям безопасности. Вместо этого мы управляем токеном обновления с помощью кэша и обновляем его по мере необходимости, чтобы получать соответствующие токен идентификации и токен доступа для разработчика. Используйте соответствующий API acquireToken* для получения токенов доступа, и MSAL обеспечит их обновление при необходимости. Если у вас есть маркер обновления, приобретенный другими средствами, можно использовать API acquireTokenByRefreshToken (см. также : пример маркера обновления). Дополнительные сведения о маркерах Microsoft Entra см. здесь
Поддерживается ли Electron?
Yes. Ознакомьтесь с примерами узлов MSAL.
Поддерживается ли интерактивный поток?
Yes. MSAL Node предоставляет API acquireTokenInteractive() в PublicClientApplication, который обрабатывает оба этапа потока кода авторизации. Открывает окно браузера, в котором пользователь может войти в систему, и возвращает AuthenticationResult. Дополнительные сведения см. в документации по запросам на получение токенов, а пример реализации — в образце auth-code-cli-app.
Поддерживаются ли SPA в MSAL Node?
Ознакомьтесь с MSAL Browser для сценариев использования SPA. Узел MSAL должен быть выбором для классических приложений, веб-приложений, веб-API или сценариев проверки подлинности на стороне сервера.
Что такое расширения для MSAL Node? Что такое плагин кэширования?
Расширения MSAL Node — это вспомогательная библиотека для MSAL Node, которая предоставляет безопасные механизмы, позволяющие клиентским приложениям выполнять кроссплатформенную сериализацию и хранение кэша токенов. Здесь вы найдете сведения об использовании, примерах и других возможностях .
Можно ли использовать плагин кэша, предоставляемый расширениями MSAL Node, в приложениях Electron?
Да, это может. Если у вас возникли проблемы, связанные с версией узла, обратитесь к этой заметке , которая содержит инструкции по устранению неполадок.
Какие версии Node.js поддерживаются? Как обойти ошибку установки, если требуется использовать активную версию Node.js разработки?
MSAL Node официально поддерживает стабильные LTS-выпуски с чётными номерами, как указано здесь.
Если вы хотите обойти эту проблему, обратите внимание:
-
Yarn: Передайте флаг
--ignore-enginesкомандеyarn. -
npm: добавьте
engine-strict=falseв NPMRC-файл.
Important
Для узла MSAL версии 5 требуется Node.js 20 или более поздней версии. Node.js 16 и 18 больше не поддерживаются.
Как реализовать самостоятельную регистрацию с помощью MSAL Node?
MSAL Node поддерживает самостоятельную регистрацию в потоке кода авторизации. Сведения о поддерживаемых значениях prompt в запросе и их ожидаемых результатах см. в нашей документации здесь, а обзор самостоятельной регистрации и изменений конфигурации, которые необходимо внести в ваш клиент Azure, — здесь. Обратите внимание, что самостоятельная регистрация недоступна в средах B2C и тестов.
Почему моё приложение работает неправильно при работе через прокси-сервер?
По состоянию на MSAL Node версии 5 конфигурация прокси-сервера обрабатывается через пользовательский HTTP-клиент. Реализуйте собственный сетевой клиент, создав экземпляр INetworkModule с поддержкой прокси-сервера и предоставив его в качестве networkClientпараметров конфигурации системы. См. пример пользовательского INetworkModule.
Как реализовать пользовательский агент http(s) в MSAL Node?
Начиная с MSAL Node v5 параметр customAgentOptions был удалён. Чтобы использовать пользовательский агент HTTP(S), реализуйте собственный сетевой клиент, создав экземпляр INetworkModule и настроив агент в нем. Укажите пользовательский сетевой клиент в качестве networkClientпараметров конфигурации системы. См. пользовательский пример INetworkModule.
B2C (бизнес для потребителя)
Как настроить пользовательский сценарий сброса пароля?
Теперь новый интерфейс сброса пароля является частью политики регистрации или входа. Когда пользователь выбирает Забыли пароль?, он немедленно отправляется в процедуру забытого пароля.
Наша рекомендация заключается в переходе к новому интерфейсу сброса пароля, так как это упрощает состояние приложения и уменьшает обработку ошибок в пользовательском интерфейсе. Если по какой-то причине вам придется использовать устаревший пользовательский поток сброса пароля, вам нужно будет обрабатывать код ошибки AADB2C90118, возвращаемый службой B2C, когда пользователь выбирает ссылку Забыли пароль?. Чтобы узнать, как это сделать, см. пример веб-приложения MSAL Node B2C (с использованием кода проверки подлинности)
Compatibility
Можно ли использовать MSAL Node с пакетом SDK Microsoft Graph для JavaScript?
Да, MSAL Node можно использовать в качестве настраиваемого поставщика аутентификации для пакета SDK Microsoft Graph JavaScript. Пример реализации см. в примере: веб-приложение Express, вызывающее API Graph.
Можно ли подготовить приложения MSAL Node с помощью командной строки?
Да, мы рекомендуем новый пакет SDK PowerShell Graph для этого. Например, приведенный ниже сценарий создает приложение Microsoft Entra с настраиваемым URI перенаправления типа Мобильные и настольные приложения (то есть InstalledClient) и с разрешением User.Read для Microsoft Graph в арендаторе, указанном пользователем, а затем создает субъект-службу в том же арендаторе на основе этого объекта приложения:
Import-Module Microsoft.Graph.Applications
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Connect-MgGraph -TenantId "ENTER_TENANT_ID_HERE" -Scopes "Application.ReadWrite.All"
# User.Read delegated permission for Microsoft Graph
$mgUserReadScope = @{
"Id" = "e1fe6dd8-ba31-4d61-89e7-88639da4683d" # permission Id
"Type" = "Scope"
}
# Add additional permissions to array below
$mgResourceAccess = @($mgUserReadScope)
[object[]]$requiredResourceAccess = @{
"ResourceAppId" = "00000003-0000-0000-c000-000000000000" # MS Graph App Id
"ResourceAccess" = $mgResourceAccess
}
# Create the application
$msalApplication = New-MgApplication -displayName myMsalDesktopApp `
-SignInAudience AzureADMyOrg `
-PublicClient @{RedirectUris = "msal://redirect"} `
-RequiredResourceAccess $requiredResourceAccess
# Provision the service principal
New-MgServicePrincipal -AppId $msalApplication.AppId