Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
MSAL.js consente di passare un valore di prompt come parte dei suoi metodi di richiesta di login o token. In base allo scenario dell'applicazione, è possibile personalizzare il comportamento del prompt di Microsoft Entra per una richiesta impostando il parametro promptnell'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 credenziali per tale richiesta, negando l'accesso Single Sign-On. |
none |
Assicura che l'utente non venga visualizzato alcun prompt interattivo. 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 OAuth dopo l'accesso dell'utente, chiedendo all'utente di concedere le autorizzazioni all'app. |
select_account |
Interrompe il Single Sign-On fornendo un'esperienza di selezione dell'account che elenca tutti gli account nella sessione o offre l'opzione di scegliere un altro account. |
create |
Attiva una finestra di dialogo di iscrizione che consente agli utenti esterni di creare un account. Per ulteriori informazioni, vedere: Iscrizione self-service |
MSAL.js genererà un invalid_prompt
errore per i valori di richiesta 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 MSAL.js:
metodo MSAL.js | Prompt predefinito | Richieste consentite |
---|---|---|
loginPopup |
Non disponibile | Qualunque |
loginRedirect |
Non disponibile | Qualunque |
ssoSilent |
none |
N/D (ignorato) |
acquireTokenPopup |
Non disponibile | Qualunque |
acquireTokenRedirect |
Non disponibile | Qualunque |
acquireTokenSilent |
none |
N/D (ignorato) |
Annotazioni
Si noti che prompt è un parametro a livello di protocollo e segnala il comportamento di autenticazione desiderato al provider di identità. Non influisce sul comportamento MSAL.js e MSAL.js non ha il controllo sul modo in cui il servizio gestirà infine la richiesta. 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 invisibile all'utente, usare un metodo di MSAL.js invisibile all'utente (ssoSilent
, acquireTokenSilent
) e gestire eventuali errori di login_required o interaction_required con un metodo interattivo (loginPopup
, loginRedirect
, acquireTokenPopup
, acquireTokenRedirect
).
In alcuni casi, tuttavia, il valore none
del prompt può essere usato insieme a un metodo interattivo MSAL.js per ottenere l'autenticazione invisibile all'utente. Ad esempio, a causa delle restrizioni dei cookie di terze parti in alcuni browser, ssoSilent
le richieste avranno esito negativo nonostante una sessione utente attiva con l'ID Microsoft Entra. Come rimedio, è possibile passare il valore none
del prompt a una richiesta interattiva, loginPopup
ad esempio . MSAL.js aprirà quindi una finestra popup per Microsoft Entra ID e Microsoft Entra ID rispetta il valore del prompt utilizzando il cookie di sessione esistente. In questo caso, l'utente visualizzerà una breve finestra popup, ma non verrà richiesto l'inserimento di credenziali.