Ü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, és tokenResponse igaz: Az alkalmazás egy sikeres átirányítási műveletből tér vissza.
  • .then meghívásra kerül, és tokenResponse 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 UserAgentApplicationPublicClientApplication, 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: