Ügyfélalkalmazások inicializálása MSAL.js használatával
Ez a cikk a Microsoft Authentication Library for JavaScript (MSAL.js) inicializálását ismerteti egy felhasználói ügynök alkalmazás példányával.
A felhasználói ügynök alkalmazás a nyilvános ügyfélalkalmazások egyik formája, amelyben az ügyfélkódot egy felhasználói ügynök, például egy webböngésző hajtja végre. Az ilyen ügyfelek nem tárolnak titkos kulcsokat, mert a böngészőkörnyezet nyíltan elérhető.
Az ügyfélalkalmazások típusairól és az alkalmazáskonfigurációs lehetőségekről az MSAL nyilvános és bizalmas ügyfélalkalmazásai című témakörben olvashat bővebben.
Előfeltételek
Az alkalmazás inicializálása előtt először regisztrálnia kell azt a Microsoft Entra felügyeleti központban, és megbízhatósági kapcsolatot kell létesítenie az alkalmazás és a Microsoft Identitásplatform között.
Az alkalmazás regisztrálása után szüksége lesz a Microsoft Entra Felügyeleti központban található alábbi értékekre vagy az összesre.
Érték | Szükséges | Leírás |
---|---|---|
Alkalmazás (ügyfél) azonosítója | Kötelező | Egy GUID, amely egyedileg azonosítja az alkalmazást a Microsoft Identitásplatform. |
Hatóság | Választható | Az identitásszolgáltató URL-címe (a példány) és az alkalmazás bejelentkezési célközönsége . A példány és a bejelentkezési közönség összefűzve alkotja a szolgáltatót. |
Címtár (bérlő) azonosítója | Választható | Adja meg a címtár (bérlő) azonosítóját, ha kizárólag a szervezet számára készít üzletági alkalmazást, amelyet gyakran egy-bérlős alkalmazásnak neveznek. |
Átirányítási URI | Választható | Ha webalkalmazást készít, az redirectUri adja meg, hogy az identitásszolgáltatónak (a Microsoft Identitásplatform) hol kell visszaadnia a kiadott biztonsági jogkivonatokat. |
MSAL.js 2.x-alkalmazások inicializálása
Inicializálja a MSAL.js hitelesítési környezetet egy PublicClientApplication konfigurációs objektummal való példányosításával. A minimálisan szükséges konfigurációs tulajdonság az clientID
alkalmazás, amely az alkalmazásregisztráció Áttekintés lapján, a Microsoft Entra felügyeleti központban található alkalmazásazonosítóként jelenik meg.
Íme egy példa konfigurációs objektumra és egy példányosításra PublicClientApplication
:
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
authority: "https://login.microsoftonline.com/Enter_the_Tenant_Info_Here",
knownAuthorities: [],
redirectUri: "https://localhost:{port}/redirect",
postLogoutRedirectUri: "https://localhost:{port}/redirect",
navigateToLoginRequestUrl: true,
},
cache: {
cacheLocation: "sessionStorage",
storeAuthStateInCookie: false,
},
system: {
loggerOptions: {
loggerCallback: (
level: LogLevel,
message: string,
containsPii: boolean
): void => {
if (containsPii) {
return;
}
switch (level) {
case LogLevel.Error:
console.error(message);
return;
case LogLevel.Info:
console.info(message);
return;
case LogLevel.Verbose:
console.debug(message);
return;
case LogLevel.Warning:
console.warn(message);
return;
}
},
piiLoggingEnabled: false,
},
windowHashTimeout: 60000,
iframeHashTimeout: 6000,
loadFrameTimeout: 0,
},
};
// Create an instance of PublicClientApplication
const msalInstance = new PublicClientApplication(msalConfig);
// Handle the redirect flows
msalInstance
.handleRedirectPromise()
.then((tokenResponse) => {
// Handle redirect response
})
.catch((error) => {
// Handle redirect error
});
handleRedirectPromise
Meghívja a handleRedirectPromise parancsot , amikor az alkalmazás átirányítási folyamatokat használ. Átirányítási folyamatok handleRedirectPromise
használatakor minden oldalbetöltésen futtatni kell.
Az ígéretből három kimenetel lehetséges:
.then
a rendszer meghívja, éstokenResponse
igaz: Az alkalmazás egy sikeres átirányítási műveletből tér vissza..then
meghívásra kerül, éstokenResponse
hamis (null
): Az alkalmazás nem átirányítási műveletből tér vissza..catch
a rendszer meghívja: Az alkalmazás egy átirányítási műveletből tér vissza, és hiba történt.
MSAL.js 1.x-alkalmazások inicializálása
Inicializálja az MSAL 1.x hitelesítési környezetet egy UserAgentApplication példányosításával egy konfigurációs objektummal. A minimálisan szükséges konfigurációs tulajdonság az clientID
alkalmazás, amely az alkalmazásregisztráció Áttekintés lapján, a Microsoft Entra felügyeleti központban található alkalmazásazonosítóként jelenik meg.
Az átirányítási folyamatokkal (loginRedirect és acquireTokenRedirect) rendelkező hitelesítési módszerek esetében a MSAL.js 1.2.x vagy korábbi verzióiban kifejezetten regisztrálnia kell a visszahívást a sikeresség vagy a hiba érdekében a handleRedirectCallback()
metóduson keresztül. A visszahívás explicit regisztrálása az 1.2.x és korábbi MSAL.js szükséges, mert az átirányítási folyamatok nem adnak vissza ígéreteket, mint az előugró felülettel rendelkező metódusok. A visszahívás regisztrálása nem kötelező MSAL.js 1.3.x és újabb verzióban.
// Configuration object constructed
const msalConfig = {
auth: {
clientId: "Enter_the_Application_Id_Here",
},
};
// Create UserAgentApplication instance
const msalInstance = new UserAgentApplication(msalConfig);
function authCallback(error, response) {
// Handle redirect response
}
// Register a redirect callback for Success or Error (when using redirect methods)
// **REQUIRED** in MSAL.js 1.2.x and earlier
// **OPTIONAL** in MSAL.js 1.3.x and later
msalInstance.handleRedirectCallback(authCallback);
Egyetlen példány és konfiguráció
Az 1.x és a 2.x MSAL.js egyaránt úgy vannak kialakítva, hogy egyetlen példánysal és konfigurációval rendelkezzenek UserAgentApplication
PublicClientApplication
, illetve hogy egyetlen hitelesítési környezetet képviseljenek.
Több példány használata UserAgentApplication
javasolt vagy PublicClientApplication
nem ajánlott, mivel ütköző gyorsítótárbejegyzéseket és viselkedést okozhatnak a böngészőben.
Következő lépések
A GitHub MSAL.js 2.x kódmintája egy PublicClientApplication példányosítását mutatja be egy konfigurációs objektummal: