Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
MSAL.js permite pasar un valor de aviso como parte de sus métodos de inicio de sesión o solicitud de token. En función del escenario de la aplicación, para personalizar el comportamiento de solicitud de Microsoft Entra correspondiente a una solicitud, establezca el parámetro prompt en el objeto de solicitud:
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
});
Valores de solicitud admitidos
Al autenticarse con la plataforma de identidad de Microsoft, puede usar los valores de solicitud siguientes:
Parámetro | Comportamiento |
---|---|
login |
Obliga al usuario a escribir sus credenciales en esa solicitud, negando el inicio de sesión único. |
none |
Garantiza que al usuario no le aparecerá ningún mensaje interactivo. Si la solicitud no se puede completar sin notificaciones mediante el inicio de sesión único, la plataforma de identidad de Microsoft devuelve un error login_required o interaction_required. |
consent |
Desencadena el diálogo de consentimiento de OAuth una vez que el usuario inicia sesión y le pide a este que conceda permisos a la aplicación. |
select_account |
Interrumpe el inicio de sesión único al proporciona una experiencia de selección de cuentas en la que se muestran todas las cuentas de la sesión, o bien una opción para elegir una cuenta diferente. |
create |
Desencadena un diálogo de registro que permite que usuarios externos creen una cuenta. Para más información, consulte: Registro de autoservicio. |
MSAL.js generará un error invalid_prompt
para cualquiera de los valores de solicitud no admitidos:
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
Valores de solicitud predeterminada
A continuación, se muestran los valores predeterminados del indicador que utiliza MSAL.js:
Método de MSAL.js | Solicitud predeterminada | Solicitudes permitidas |
---|---|---|
loginPopup |
No disponible | Cualquiera |
loginRedirect |
No disponible | Cualquiera |
ssoSilent |
none |
N/D (se omite) |
acquireTokenPopup |
No disponible | Cualquiera |
acquireTokenRedirect |
No disponible | Cualquiera |
acquireTokenSilent |
none |
N/D (se omite) |
Nota:
Tenga en cuenta que prompt es un parámetro a nivel de protocolo e indica el comportamiento de autenticación deseado al proveedor de identidad. No afecta el comportamiento de MSAL.js, y MSAL.js no tiene control sobre cómo el servicio controlará la solicitud en última instancia. En la mayoría de los casos, Microsoft Entra ID intentará cumplir con la solicitud. Si no es posible, podría devolver una respuesta de error, o bien ignorar por completo el valor de solicitud que se proporcionó.
Solicitudes compartidas con prompt=none
Por lo general, cuando necesite realizar una solicitud sin notificaciones, utilice un método de MSAL.js sin notificaciones (ssoSilent
, acquireTokenSilent
) y controle cualquier error de tipo login_required o interaction_required con un método interactivo (loginPopup
, loginRedirect
, acquireTokenPopup
, acquireTokenRedirect
).
Sin embargo, en algunos casos, el valor de solicitud none
se puede usar junto con un método de MSAL.js interactivo para lograr la autenticación sin notificaciones. Por ejemplo, debido a las restricciones de las cookies de terceros en algunos exploradores, las solicitudes ssoSilent
generarán un error a pesar de una sesión de usuario activa con Microsoft Entra ID. Como solución, puede pasar el valor de solicitud none
a una solicitud interactiva, como loginPopup
. Luego, MSAL.js abrirá una ventana emergente hacia Microsoft Entra ID y Microsoft Entra ID respetará el valor del aviso utilizando la cookie de sesión existente. En este caso, el usuario verá una ventana emergente breve, pero no se le solicitará que escriba ninguna credencia.
Pasos siguientes
- Inicio de sesión único con MASL.js
- Control de errores y excepciones en MSAL.js
- Control de ITP en Safari y otros exploradores donde se han bloqueado las cookies de terceros
- Flujo de código de autorización de OAuth 2.0 en la plataforma de identidad de Microsoft
- OpenID Connect en la plataforma de identidad de Microsoft