Promptgedrag met MSAL.js

MSAL.js staat het doorgeven van een promptwaarde toe als onderdeel van de aanmeldings- of tokenaanvraagmethoden. Op basis van uw toepassingsscenario kunt u het gedrag van de Microsoft Entra-prompt voor een aanvraag aanpassen door de promptparameter in te stellen in het aanvraagobject:

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

Ondersteunde promptwaarden

De volgende promptwaarden kunnen worden gebruikt bij verificatie met het Microsoft Identity Platform:

Parameter Gedrag
login Hiermee dwingt u de gebruiker hun referenties in die aanvraag in te voeren, waarbij eenmalige aanmelding wordt genegeerd.
none Zorgt ervoor dat de gebruiker geen interactieve prompt wordt weergegeven. Als de aanvraag niet op de achtergrond kan worden voltooid met behulp van eenmalige aanmelding, retourneert het Microsoft Identity Platform een fout login_required of interaction_required .
consent Hiermee wordt het dialoogvenster OAuth-toestemming geactiveerd nadat de gebruiker zich heeft aangemeld, waarbij de gebruiker wordt gevraagd machtigingen aan de app te verlenen.
select_account Onderbreekt eenmalige aanmelding door een accountselectieervaring op te geven waarin alle accounts in een sessie worden vermeld of een optie om een ander account te kiezen.
create Hiermee wordt een aanmeldingsdialoogvenster geactiveerd waarmee externe gebruikers een account kunnen maken. Zie voor meer informatie: Selfservice-registratie

MSAL.js genereert een invalid_prompt fout voor niet-ondersteunde promptwaarden:

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

Standaardpromptwaarden

Hieronder ziet u de standaardpromptwaarden die door MSAL.js worden gebruikt:

METHODE MSAL.js Standaardprompt Toegestane prompts
loginPopup N.v.t. Alle
loginRedirect N.v.t. Alle
ssoSilent none N/B (genegeerd)
acquireTokenPopup N.v.t. Alle
acquireTokenRedirect N.v.t. Alle
acquireTokenSilent none N/B (genegeerd)

Notitie

Houd er rekening mee dat de prompt een parameter op protocolniveau is en het gewenste verificatiegedrag aangeeft aan de id-provider. Dit heeft geen invloed op het gedrag van MSAL.js en MSAL.js heeft geen controle over hoe de service uiteindelijk de aanvraag afhandelt. In de meeste gevallen probeert Microsoft Entra ID de aanvraag te respecteren. Als dit niet mogelijk is, kan er een foutbericht worden geretourneerd of de opgegeven promptwaarde volledig worden genegeerd.

Interactieve aanvragen met prompt=geen

Wanneer u een stille aanvraag moet indienen, gebruikt u een stille MSAL.js-methode (ssoSilent, acquireTokenSilent), en verwerkt u eventuele login_required- of interaction_required-fouten met een interactieve methode (loginPopup, loginRedirect, acquireTokenPopup, ). acquireTokenRedirect

In sommige gevallen kan de promptwaarde none echter samen met een interactieve MSAL.js-methode worden gebruikt om stille verificatie te bereiken. Vanwege de cookiebeperkingen van derden in sommige browsers ssoSilent mislukken aanvragen bijvoorbeeld ondanks een actieve gebruikerssessie met Microsoft Entra-id. Als oplossing kunt u de promptwaarde none doorgeven aan een interactieve aanvraag, zoals loginPopup. MSAL.js opent vervolgens een pop-upvenster voor Microsoft Entra ID en Microsoft Entra ID zal de promptwaarde respecteren door gebruik te maken van de bestaande sessiecookor. In dit geval ziet de gebruiker een kort pop-upvenster, maar wordt niet gevraagd om een referentievermelding.

Volgende stappen