Comportamento della richiesta con MSAL.js
MSAL.js consente di passare un valore di richiesta come parte dei 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 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 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 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 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 il comportamento di autenticazione desiderato al provider di identità. Non influisce sul comportamento di 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 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 MSAL.js interattivo 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 in 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à richiesta una voce di credenziale.
Passaggi successivi
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per