Sdílet prostřednictvím


Rychlý start: Přihlášení uživatelů do jednostránkové aplikace (SPA) a volání rozhraní Microsoft Graph API

Platí pro: Zelený kruh se symbolem bílé značky zaškrtnutí, který označuje následující obsah platí pro tenanty pracovních sil. Tenanti pracovních sil zelený kruh se symbolem bílé značky zaškrtnutí, který označuje následující obsah platí pro externí tenanty. Externí tenanti (další informace)

V tomto rychlém průvodci použijete ukázkovou jednostránkovou aplikaci (SPA), která vám ukáže, jak přihlásit uživatele pomocí toku autorizačního kódu s klíčem k prokázání pro výměnu kódu (PKCE) a využít rozhraní Microsoft Graph API. Ukázka používá Microsoft Authentication Library pro zpracování autentizace.

Požadavky

  • Účet Azure s aktivním předplatným. Pokud ho ještě nemáte, vytvořte účet zdarma.
  • Tento účet Azure musí mít oprávnění ke správě aplikací. Kterákoli z následujících rolí Microsoft Entra zahrnuje potřebná oprávnění:
    • Správce aplikace
    • Vývojář aplikací
  • Tenant pracovní síly. Můžete použít výchozí adresář nebo nastavit nového nájemníka.
  • Visual Studio Code nebo jiného editoru kódu.

Klonování nebo stažení ukázkové aplikace

Pokud chcete získat ukázkovou aplikaci, můžete ji buď naklonovat z GitHubu, nebo si ji stáhnout jako soubor .zip.

  • Pokud chcete ukázku naklonovat, otevřete příkazový řádek a přejděte do umístění, kam chcete projekt vytvořit, a zadejte následující příkaz:

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-javascript.git
    
  • Stáhnout soubor .zip. Rozbalte to do složky s délkou názvu menší než 260 znaků.

Konfigurace projektu

  1. V integrovaném vývojovém prostředí otevřete složku projektu ms-identity-docs-code-javascriptobsahující ukázku.

  2. Otevřete vanillajs-spa/App/public/authConfig.js a aktualizujte následující hodnoty s informacemi zaznamenanými v Centru pro správu.

    /**
     * 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 – identifikátor aplikace, označovaný také jako klient. Nahraďte text v uvozovkách hodnotou ID aplikace (klienta) , která byla zaznamenána dříve.
    • authority – autorita je URL, která označuje umístění adresáře, ze kterého může MSAL požadovat tokeny. Nahraďte hodnotu Enter_the_Tenant_Info_Here hodnotou ID adresáře (tenanta), která byla dříve zaznamenána.
    • redirectUri – Přesměrovací URI aplikace. V případě potřeby nahraďte text v uvozovkách identifikátorem URI přesměrování, který byl zaznamenán dříve.

Spusťte aplikaci a přihlaste se a odhlaste se.

Spuštění projektu s webovým serverem pomocí Node.js:

  1. Pokud chcete spustit server, spusťte v adresáři projektu následující příkazy:

    cd vanillajs-spa/App
    npm install
    npm start
    
  2. Zkopírujte https adresu URL, která se zobrazí v terminálu, například https://localhost:3000a vložte ji do prohlížeče. Doporučujeme použít soukromou nebo inkognito relaci prohlížeče.

  3. Postupujte podle pokynů a zadejte potřebné podrobnosti pro přihlášení pomocí účtu Microsoft. Budete požádáni o e-mailovou adresu, aby vám bylo možné poslat jednorázové heslo. Po zobrazení výzvy zadejte kód.

  4. Aplikace požádá o oprávnění k údržbě přístupu k datům, ke kterým jste jim udělili přístup, a k přihlášení a čtení vašeho profilu. Vyberte Přijmout. Zobrazí se následující snímek obrazovky, který označuje, že jste se přihlásili k aplikaci a že jste z rozhraní Microsoft Graph API přistupovali k podrobnostem profilu.

    snímek obrazovky javascriptové aplikace znázorňující výsledky volání rozhraní API

Požadavky

Klonování nebo stažení ukázkové SPA

Pokud chcete získat ukázkovou aplikaci, můžete ji buď naklonovat z GitHubu, nebo si ji stáhnout jako soubor .zip.

  • Pokud chcete ukázku naklonovat, otevřete příkazový řádek a přejděte do umístění, kam chcete projekt vytvořit, a zadejte následující příkaz:

    git clone https://github.com/Azure-Samples/ms-identity-ciam-javascript-tutorial.git
    
  • Stáhnout ukázkovou verzi. Rozbalte to do složky s délkou názvu menší než 260 znaků.

Nakonfigurujte ukázkovou SPA

  1. Otevřete App/public/authConfig.js a nahraďte následující hodnoty hodnotami získanými z Centra pro správu Microsoft Entra:

    • Enter_the_Application_Id_Here a nahraďte ho ID aplikace (klienta), kterou jste zaregistrovali dříve.
    • Enter_the_Tenant_Subdomain_Here a nahraďte ji subdoménou Directory (tenant). Pokud je například primární doména vašeho tenanta contoso.onmicrosoft.com, použijte contoso. Pokud nemáte název nájemce, zjistěte, jak si zobrazit podrobnosti o nájemci.
  2. Uložte soubor.

Spusťte projekt a přihlaste se

  1. Pokud chcete spustit server, spusťte v adresáři projektu následující příkazy:

    cd 1-Authentication\0-sign-in-vanillajs\App
    npm install
    npm start
    
  2. Zkopírujte https adresu URL, která se zobrazí v terminálu, například https://localhost:3000a vložte ji do prohlížeče. Doporučujeme použít soukromou nebo inkognito relaci prohlížeče.

  3. Přihlaste se pomocí účtu zaregistrovaného u klienta.

  4. Zobrazí se následující snímek obrazovky, který označuje, že jste se přihlásili k aplikaci a že jste z rozhraní Microsoft Graph API přistupovali k podrobnostem profilu.

    snímek obrazovky javascriptové aplikace znázorňující výsledky volání rozhraní API

Odhlásit se z aplikace

  1. Najděte na stránce tlačítko Odhlásit se a vyberte ho.
  2. Zobrazí se výzva k výběru účtu, ze který se chcete odhlásit. Vyberte účet, který jste použili k přihlášení.

Zobrazí se zpráva s oznámením, že jste se odhlásili. Teď můžete okno prohlížeče zavřít.