Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
MSAL.js позволяет передавать значение подсказки в рамках методов запроса логина или токена. В зависимости от сценария приложения можно настроить поведение запроса Microsoft Entra для запроса, задав параметр запроса в объекте запроса:
import { PublicClientApplication } from "@azure/msal-browser";
const pca = new PublicClientApplication({
auth: {
clientId: "YOUR_CLIENT_ID"
}
});
const loginRequest = {
scopes: ["user.read"],
prompt: 'select_account',
}
pca.loginPopup(loginRequest)
.then(response => {
// do something with the response
})
.catch(error => {
// handle errors
});
Поддерживаемые значения подсказок
При проверке подлинности с помощью платформы удостоверений Майкрософт можно использовать следующие значения запроса:
| Параметр | Поведение |
|---|---|
login |
Заставляет пользователя вводить свои учетные данные в этом запросе, отрицая единый вход. |
none |
Обеспечивает, что пользователь не сталкивается с интерактивным запросом. Если запрос не может быть выполнен автоматически с помощью единого входа, платформа удостоверений Майкрософт возвращает ошибку login_required или interaction_required . |
consent |
Активирует диалоговое окно согласия OAuth после входа пользователя, запрашивая у пользователя предоставление разрешений приложению. |
select_account |
Прерывает единый вход, предоставляя опыт выбора учетной записи, предоставляя список всех учетных записей в текущем сеансе или возможность выбрать другую учетную запись. |
create |
Активирует диалоговое окно регистрации, позволяющее внешним пользователям создавать учетную запись. Дополнительные сведения см. в статье "Самостоятельная регистрация" |
MSAL.js вызовет ошибку invalid_prompt для любых неподдерживаемых значений запроса:
invalid_prompt_value: Supported prompt values are 'login', 'select_account', 'consent', 'create' and 'none'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest Given value: my_custom_prompt
Значения запроса по умолчанию
Ниже показаны значения запроса по умолчанию, используемые MSAL.js:
| метод MSAL.js | Запрос по умолчанию | Разрешенные запросы |
|---|---|---|
loginPopup |
Не применимо | Любое |
loginRedirect |
Не применимо | Любое |
ssoSilent |
none |
N/A (игнорируется) |
acquireTokenPopup |
Не применимо | Любое |
acquireTokenRedirect |
Не применимо | Любое |
acquireTokenSilent |
none |
N/A (игнорируется) |
Замечание
Обратите внимание, что запрос является параметром уровня протокола и сигнализирует о требуемом поведении проверки подлинности поставщику удостоверений. Это не влияет на поведение MSAL.js и MSAL.js не имеет контроля над тем, как служба в конечном итоге будет обрабатывать запрос. В большинстве случаев идентификатор Microsoft Entra попытается выполнить запрос. Если это невозможно, он может вернуть ответ на ошибку или полностью игнорировать заданное значение запроса.
Интерактивные запросы с параметром без запроса
Как правило, если требуется выполнить тихий запрос, используйте тихий метод MSAL.js (ssoSilent, acquireTokenSilent) и обрабатывайте любые ошибки login_required или interaction_required с помощью интерактивного метода (loginPopup, loginRedirect, acquireTokenPopup, acquireTokenRedirect).
Однако в некоторых случаях значение none запроса можно использовать вместе с интерактивным методом MSAL.js для достижения тихой аутентификации. Например, из-за ограничений на сторонние файлы cookie в некоторых браузерах ssoSilent запросы завершаются ошибкой, несмотря на активный сеанс пользователя с идентификатором Microsoft Entra. В качестве решения можно передать значение none интерактивному запросу, например loginPopup. MSAL.js откроет всплывающее окно с Microsoft Entra ID, и Microsoft Entra ID будет учитывать параметр запроса, используя существующий куки сеанса. В этом случае пользователь увидит краткое всплывающее окно, но не будет предложено ввести запись учетных данных.