Az MSAL.js parancssori viselkedése
Az MSAL.js lehetővé teszi a parancssori érték átadását a bejelentkezési vagy jogkivonat-kérési metódusok részeként. Az alkalmazásforgatókönyv alapján testre szabhatja a Microsoft Entra kérési viselkedését a kérés objektumában található parancssori paraméter beállításával:
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
});
Támogatott parancssori értékek
A következő parancssori értékek használhatók a Microsoft Identitásplatform hitelesítéséhez:
Paraméter | Működés |
---|---|
login |
Kényszeríti a felhasználót, hogy adja meg a hitelesítő adatait a kéréshez, és ne kapcsolja be az egyszeri bejelentkezést. |
none |
Biztosítja, hogy a felhasználó ne jelenjen meg interaktív üzenettel. Ha a kérés nem hajtható végre csendben egyszeri bejelentkezéssel, a Microsoft Identitásplatform login_required vagy interaction_required hibát ad vissza. |
consent |
Aktiválja az OAuth hozzájárulási párbeszédpanelt, miután a felhasználó bejelentkezett, és megkéri a felhasználót, hogy adjon engedélyeket az alkalmazásnak. |
select_account |
Megszakítja az egyszeri bejelentkezést egy fiókválasztási felület biztosításával, amely felsorolja a munkamenet összes fiókját, vagy egy másik fiók kiválasztásának lehetőségét. |
create |
Aktivál egy regisztrációs párbeszédpanelt, amely lehetővé teszi a külső felhasználók számára, hogy fiókot hozzanak létre. További információ: Önkiszolgáló regisztráció |
Az MSAL.js hibát jelez invalid_prompt
a nem támogatott parancssori értékek esetében:
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
Alapértelmezett parancssori értékek
Az alábbiakban az MSAL.js által használt alapértelmezett parancssori értékek láthatók:
MSAL.js metódus | Alapértelmezett üzenet | Engedélyezett kérések |
---|---|---|
loginPopup |
N/A | Any |
loginRedirect |
N/A | Any |
ssoSilent |
none |
N/A (figyelmen kívül hagyva) |
acquireTokenPopup |
N/A | Any |
acquireTokenRedirect |
N/A | Any |
acquireTokenSilent |
none |
N/A (figyelmen kívül hagyva) |
Megjegyzés:
Vegye figyelembe, hogy a parancssor egy protokollszintű paraméter, és a kívánt hitelesítési viselkedést jelzi az identitásszolgáltatónak. Ez nem befolyásolja az MSAL.js viselkedését, és az MSAL.js nem szabályozza, hogy a szolgáltatás végül hogyan fogja kezelni a kérést. A legtöbb esetben a Microsoft Entra ID megpróbálja tiszteletben tartani a kérést. Ha ez nem lehetséges, hibaválaszt adhat vissza, vagy teljesen figyelmen kívül hagyhatja a megadott parancssori értéket.
Interaktív kérések a prompt=none használatával
Ha csendes kérést kell intéznie, használjon csendes MSAL.js metódust (ssoSilent
, acquireTokenSilent
), és interaktív módszerrelloginPopup
(, loginRedirect
, acquireTokenPopup
, acquireTokenRedirect
) kezelje a login_required vagy interaction_required hibákat.
Bizonyos esetekben azonban a parancssori érték none
egy interaktív MSAL.js metódussal együtt használható a csendes hitelesítés eléréséhez. Egyes böngészőkben például a harmadik féltől származó cookie-korlátozások miatt a kérések sikertelenek lesznek annak ellenére, ssoSilent
hogy aktív felhasználói munkamenet van a Microsoft Entra-azonosítóval. Megoldásként a parancssori értéket none
átadhatja egy interaktív kérésnek, például loginPopup
. Az MSAL.js ezután megnyit egy előugró ablakot a Microsoft Entra ID számára, és a Microsoft Entra ID a meglévő munkamenet-cookie használatával tiszteletben tartja a parancssori értéket. Ebben az esetben a felhasználó megjelenik egy rövid előugró ablak, de a rendszer nem kéri a hitelesítő adatok megadását.