Condividi tramite


Comportamento della richiesta con MSAL.js

MSAL.js consente di passare un valore di prompt come parte dei relativi metodi di richiesta di accesso o token. In base allo scenario dell'applicazione, è possibile personalizzare il comportamento del prompt di Microsoft Entra per una richiesta impostando il parametro prompt nell'oggetto richiesta:

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
    });

Valori dei prompt supportati

Quando si esegue l'autenticazione con Microsoft Identity Platform, è possibile usare i valori di prompt seguenti:

Parametro Comportamento
login Forza l'utente a immettere le sue credenziali alla richiesta, negando l'accesso Single Sign-On.
none Garantisce che l'utente non visualizzi alcuna richiesta interattiva. Se la richiesta non può essere completata automaticamente tramite Single Sign-On, Microsoft Identity Platform restituisce un errore login_required o interaction_required.
consent Attiva la finestra di dialogo di consenso di OAuth dopo l'accesso dell'utente, che chiede all'utente di concedere le autorizzazioni all'app.
select_account Interrompe l'accesso Single Sign-On fornendo un'esperienza di selezione dell'account che elenca tutti gli account nella sessione o un'opzione per scegliere completamente un account diverso.
create Attiva una finestra di dialogo di iscrizione che consente agli utenti esterni di creare un account. Per altre informazioni, vedere Iscrizione self-service

MSAL.js genererà un errore invalid_prompt per i valori di prompt non supportati:

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

Valori di prompt predefiniti

Di seguito sono riportati i valori di prompt predefiniti usati da MSAL.js:

metodo MSAL.js Prompt predefinito Richieste consentite
loginPopup N/D Any
loginRedirect N/D Any
ssoSilent none N/D (ignorato)
acquireTokenPopup N/D Any
acquireTokenRedirect N/D Any
acquireTokenSilent none N/D (ignorato)

Nota

Si noti che prompt è un parametro a livello di protocollo e segnala al provider di identità il comportamento di autenticazione desiderato. Non influisce sul comportamento MSAL.js e MSAL.js non ha il controllo sulla modalità di gestione della richiesta da parte del servizio. Nella maggior parte dei casi, Microsoft Entra ID tenterà di rispettare la richiesta. Se non è possibile, può restituire una risposta di errore o ignorare completamente il valore del prompt specificato.

Richieste interattive con prompt=none

In genere, quando è necessario effettuare una richiesta automatica, usare un metodo MSAL.js automatico (ssoSilent, acquireTokenSilent) e gestire eventuali errori login_required o interaction_required con un metodo interattivo (loginPopup, loginRedirect, acquireTokenPopup, acquireTokenRedirect).

In alcuni casi, tuttavia, il valore di prompt none può essere usato insieme a un metodo interattivo MSAL.js per ottenere l'autenticazione automatica. Ad esempio, a causa delle restrizioni dei cookie di terze parti in alcuni browser, le richieste ssoSilent avranno esito negativo nonostante una sessione utente attiva con Microsoft Entra ID. Come rimedio, è possibile passare il valore di prompt none a una richiesta interattiva, ad esempio loginPopup. MSAL.js aprirà quindi una finestra popup in Microsoft Entra ID e Microsoft Entra ID rispetterà il valore del prompt utilizzando il cookie di sessione esistente. In questo caso l'utente visualizzerà una breve finestra popup, ma non verrà richiesta l'immissione di informazioni di accesso.

Passaggi successivi