Megosztás a következőn keresztül:


Rövid útmutató: Jelentkezzen be felhasználóként egyetlen oldalas alkalmazásban (SPA), és használja a Microsoft Graph API-t.

A következőkre vonatkozik:Zöld kör fehér pipa jellel.Munkaerő-bérlők Zöld kör fehér pipa jellel. Külső bérlők (további információ)

Ebben a gyorsútmutatóban bemutatjuk, hogyan lehet bejelentkeztetni a felhasználókat egy minta egyoldalas alkalmazás (SPA) segítségével a engedélyezési kódfolyamat és a Kódcseréhez használt hitelesítési kulcs (PKCE) alkalmazásával, valamint hogyan érhető el a Microsoft Graph API. A minta a Microsoft Authentication Library használatával kezeli a hitelesítést.

Előfeltételek

  • Aktív előfizetéssel rendelkező Azure-fiók. Ha még nem rendelkezik ilyen fiókkal, hozzon létre egy fiókot ingyenes.
  • Ennek az Azure-fióknak rendelkeznie kell az alkalmazások kezeléséhez szükséges engedélyekkel. Az alábbi Microsoft Entra-szerepkörök bármelyike tartalmazza a szükséges engedélyeket:
    • Alkalmazásadminisztrátor
    • Alkalmazásfejlesztő
  • Munkaerőt igénybe vevő. Használhatja az alapértelmezett címtárat, vagy beállíthat egy új bérlőt.
  • Visual Studio Code vagy más kódszerkesztő.

A mintaalkalmazás klónozása vagy letöltése

A mintaalkalmazás beszerzéséhez klónozhatja a GitHubról, vagy letöltheti .zip fájlként.

  • A minta klónozásához nyisson meg egy parancssort, navigáljon ahhoz a helyhez, ahol létre kívánja hozni a projektet, majd írja be a következő parancsot:

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-javascript.git
    
  • Töltse le a .zip fájlt. Helyezze el egy olyan elérési útra, ahol a fájlnév hossza kevesebb, mint 260 karakter.

A projekt konfigurálása

  1. Az IDE-ben nyissa meg a mintát tartalmazó projektmappát, ms-identity-docs-code-javascript.

  2. Nyissa meg vanillajs-spa/App/public/authConfig.js, és frissítse a következő értékeket a felügyeleti központban rögzített információkkal.

    /**
     * Configuration object to be passed to MSAL instance on creation. 
     * For a full list of MSAL.js configuration parameters, visit:
     * https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-browser/docs/configuration.md 
     */
    const msalConfig = {
        auth: {
             clientId: "Enter_the_Application_Id_Here",
             // WORKFORCE TENANT
             authority: "https://login.microsoftonline.com/Enter_the_Tenant_Info_Here", //  Replace the placeholder with your tenant info
             // EXTERNAL TENANT
             // authority: "https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/", // Replace the placeholder with your tenant subdomain
            redirectUri: '/', // You must register this URI on App Registration. Defaults to window.location.href e.g. http://localhost:3000/
            navigateToLoginRequestUrl: true, // If "true", will navigate back to the original request location before processing the auth code response.
        },
        cache: {
            cacheLocation: 'sessionStorage', // Configures cache location. "sessionStorage" is more secure, but "localStorage" gives you SSO.
            storeAuthStateInCookie: false, // set this to true if you have to support IE
        },
        system: {
            loggerOptions: {
                loggerCallback: (level, message, containsPii) => {
                    if (containsPii) {
                        return;
                    }
                    switch (level) {
                        case msal.LogLevel.Error:
                            console.error(message);
                            return;
                        case msal.LogLevel.Info:
                            console.info(message);
                            return;
                        case msal.LogLevel.Verbose:
                            console.debug(message);
                            return;
                        case msal.LogLevel.Warning:
                            console.warn(message);
                            return;
                    }
                },
            },
        },
    };
    
    /**
     * Scopes you add here will be prompted for user consent during sign-in.
     * By default, MSAL.js will add OIDC scopes (openid, profile, email) to any login request.
     * For more information about OIDC scopes, visit: 
     * https://learn.microsoft.com/en-us/entra/identity-platform/permissions-consent-overview#openid-connect-scopes
     */
    const loginRequest = {
        scopes: ["User.Read"],
    };
    
    /**
     * An optional silentRequest object can be used to achieve silent SSO
     * between applications by providing a "login_hint" property.
     */
    
    // const silentRequest = {
    //   scopes: ["openid", "profile"],
    //   loginHint: "example@domain.net"
    // };
    
    // exporting config object for jest
    if (typeof exports !== 'undefined') {
        module.exports = {
            msalConfig: msalConfig,
            loginRequest: loginRequest,
        };
    }
    
    • clientId – Az alkalmazás azonosítója, más néven az ügyfél. Cserélje le az idézőjelek szövegét a korábban rögzített alkalmazás (ügyfél) azonosító értékével.
    • authority – A hatóság egy olyan URL-cím, amely egy könyvtárat jelöl, ahonnan az MSAL jogkivonatokat kérhet. Cserélje le a Enter_the_Tenant_Info_Here a korábban rögzített könyvtár (bérlő) azonosítóra.
    • redirectUri – Az alkalmazás átirányítási URI-ja . Szükség esetén cserélje le az idézőjelek szövegét a korábban rögzített átirányítási URI-ra.

Az alkalmazás futtatása és bejelentkezés és kijelentkezés

Futtassa a projektet egy webszerverrel a Node.jshasználatával:

  1. A kiszolgáló elindításához futtassa a következő parancsokat a projektkönyvtárból:

    cd vanillajs-spa/App
    npm install
    npm start
    
  2. Másolja ki a terminálban megjelenő https URL-címet( például https://localhost:3000), és illessze be egy böngészőbe. Javasoljuk, hogy privát vagy inkognitó böngésző munkamenetet használjon.

  3. Kövesse a lépéseket, és adja meg a microsoftos fiókjával való bejelentkezéshez szükséges adatokat. A rendszer egy e-mail-címet kér, hogy egyszeri pin-kód legyen elküldve Önnek. Amikor a rendszer kéri, adja meg a kódot.

  4. Az alkalmazás engedélyt kér a hozzáférés fenntartásához azokhoz az adatokhoz, amelyekhez hozzáférést adott, valamint hogy bejelentkezhessen, és elolvassa a profilját. Válassza Elfogadáslehetőséget. Megjelenik a következő képernyőkép, amely azt jelzi, hogy bejelentkezett az alkalmazásba, és a Microsoft Graph API-ból fért hozzá a profiladataihoz.

    Képernyőkép a JavaScript-alkalmazásról, amely az API-hívás eredményeit ábrázolja.

Előfeltételek

Minta SPA klónozása vagy letöltése

A mintaalkalmazás beszerzéséhez klónozhatja a GitHubról, vagy letöltheti .zip fájlként.

  • A minta klónozásához nyisson meg egy parancssort, navigáljon ahhoz a helyhez, ahol létre kívánja hozni a projektet, majd írja be a következő parancsot:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-javascript-tutorial.git
    
  • Töltse le a minta. Helyezze el egy olyan elérési útra, ahol a fájlnév hossza kevesebb, mint 260 karakter.

A minta SPA konfigurálása

  1. Nyissa meg a App/public/authConfig.js, és cserélje le a következőket a Microsoft Entra felügyeleti központból beszerzett értékekre:

    • Enter_the_Application_Id_Here és cserélje le a korábban regisztrált alkalmazás (ügyfél) azonosítójára.
    • Enter_the_Tenant_Subdomain_Here és cserélje le a Címtár (tenant) altartományra. Ha például a bérlőd elsődleges doménje contoso.onmicrosoft.com, használja a contoso. Ha nem rendelkezik a bérlő nevével, megtudhatja, hogyan olvasni a bérlő adatait.
  2. Mentse a fájlt.

A projekt futtatása és bejelentkezés

  1. A kiszolgáló elindításához futtassa a következő parancsokat a projektkönyvtárból:

    cd 1-Authentication\0-sign-in-vanillajs\App
    npm install
    npm start
    
  2. Másolja ki a terminálban megjelenő https URL-címet( például https://localhost:3000), és illessze be egy böngészőbe. Javasoljuk, hogy privát vagy inkognitó böngésző munkamenetet használjon.

  3. Jelentkezzen be a bérlőnél regisztrált fiókkal.

  4. Megjelenik a következő képernyőkép, amely azt jelzi, hogy bejelentkezett az alkalmazásba, és a Microsoft Graph API-ból fért hozzá a profiladataihoz.

    Képernyőkép a JavaScript-alkalmazásról, amely az API-hívás eredményeit ábrázolja.

Kijelentkezés az alkalmazásból

  1. Keresse meg a Kijelentkezés gombot a lapon, és jelölje ki.
  2. A rendszer kérni fogja, hogy válasszon ki egy fiókot, amelyből ki szeretne jelentkezni. Válassza ki a bejelentkezéshez használt fiókot.

Megjelenik egy üzenet, amely jelzi, hogy kijelentkezett. Most már bezárhatja a böngészőablakot.