Sdílet prostřednictvím


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

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í
    • Správce cloudových aplikací.
  • Node.js.
  • Visual Studio Code nebo jiného editoru kódu.

Registrace identifikátorů aplikace a záznamů

K dokončení registrace zadejte název aplikace, zadejte podporované typy účtů a přidejte identifikátor URI přesměrování. Po registraci se v podokně Přehled aplikace zobrazí identifikátory potřebné ve zdrojovém kódu aplikace.

  1. Přihlaste se do centra pro správu Microsoft Entra.

  2. Pokud máte přístup k více tenantům, použijte v horní nabídce ikonu Nastavení pro přepnutí na tenanta, ve kterém chcete aplikaci zaregistrovat, a to z nabídky Adresáře a předplatná.

  3. Přejděte na Identita>Aplikace>Registrace aplikacía vyberte Nová registrace.

  4. Zadejte název pro aplikaci, například identity-client-spa.

  5. U podporovaných typů účtůvyberte Účty v tomto organizačním adresáři pouze. Pokud chcete získat informace o různých typech účtů, vyberte možnost Pomozte mi zvolit možnost.

  6. Vyberte Zaregistrovat.

    Snímek obrazovky, který ukazuje, jak zadat jméno a vybrat typ účtu v Centru pro správu Microsoft Entra.

  7. Po dokončení registrace se zobrazí podokno Přehled aplikace. Poznamenejte ID adresáře (tenanta) a ID aplikace (klient), které se mají použít ve zdrojovém kódu aplikace.

    Snímek obrazovky, který zobrazuje hodnoty identifikátoru na stránce přehledu v Centru pro správu Microsoft Entra

    Poznámka

    Typy podporovaných účtů lze změnit odkazem na Upravit účty podporované aplikací.


Přidejte identifikátor URI pro přesměrování platformy

Pokud chcete zadat typ aplikace pro registraci aplikace, postupujte takto:

  1. V části Správavyberte Autentizace.
  2. Na stránce konfigurací platformy vyberte Přidat platformua pak vyberte možnost SPA.
  3. Pro URI adresy přesměrování zadejte http://localhost:3000.
  4. Vyberte Konfigurovat pro uložení změn.

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. Extrahujte ho do cesty k souboru, kde délka názvu je 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: {
    
             // 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
     * 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,
        };
        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 – identifikátor URI přesměrování 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

  • Externí nájemce. Pokud ho chcete vytvořit, zvolte některou z následujících metod:
  • Tento účet Azure musí mít oprávnění ke správě aplikací. Mezi následující role Microsoft Entra, které zahrnují požadovaná oprávnění, patří:
    • Správce aplikace
    • Vývojář aplikací
    • Správce cloudových aplikací.
  • Node.js.
  • editoru Visual Studio Code nebo jiného editoru kódu.

Registrace identifikátorů aplikace a záznamů

Aby vaše aplikace mohla přihlašovat uživatele pomocí Microsoft Entra, musí být Microsoft Entra External ID obeznámeno s aplikací, kterou vytvoříte. Registrace aplikace vytvoří vztah důvěryhodnosti mezi aplikací a Microsoft Entra. Když zaregistrujete aplikaci, externí ID vygeneruje jedinečný identifikátor označovaný jako ID aplikace (klient), což je hodnota použitá k identifikaci aplikace při vytváření žádostí o ověření.

Následující kroky ukazují, jak zaregistrovat aplikaci v Centru pro správu Microsoft Entra:

  1. Přihlaste se do centra pro správu Microsoft Entra alespoň jako Vývojář aplikací.

  2. Pokud máte přístup k více tenantům, použijte ikonu Nastavení v horní nabídce pro přepnutí na externího tenanta z nabídky Adresáře a předplatná.

  3. Přejděte na Identity>Aplikace>Registrace aplikací.

  4. Vyberte + Nová registrace.

  5. Na stránce Zaregistrujte aplikaci, která se zobrazí;

    1. Zadejte smysluplnou aplikaci Název, která se zobrazí uživatelům aplikace, například ciam-client-app .
    2. V části Podporované typy účtůvyberte Účty pouze v tomto organizačním adresáři.
  6. Vyberte Zaregistrovat.

  7. Po úspěšné registraci se zobrazí podokno Přehled aplikace . Poznamenejte si ID aplikace (klienta), které se má použít ve zdrojovém kódu aplikace.

Přidejte identifikátor URI pro přesměrování platformy

Pokud chcete zadat typ aplikace pro registraci aplikace, postupujte takto:

  1. V části Spravovatvyberte Ověřování.
  2. Na stránce konfigurace platformy vyberte možnost Přidat platformua pak vyberte možnost SPA.
  3. Pro identifikátory URI přesměrování zadejte http://localhost:3000.
  4. Výběrem Konfigurovat uložte změny.

Po registraci aplikace se přiřadí oprávnění User.Read. Vzhledem k tomu, že je tenant externím tenantem, nemohou uživatelé zákazníka sami s tímto oprávněním souhlasit. Jako správce tenanta musíte souhlasit s tímto oprávněním jménem všech uživatelů v tenantovi:

  1. Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například ciam-client-app), a otevřete tak její stránku Přehled.

  2. V části Spravovatvyberte oprávnění rozhraní API.

    1. Vyberte Udělit souhlas správce pro <název vašeho tenanta>a poté vyberte Ano.
    2. Vyberte Aktualizovata ověřte, že uděleno <název vašeho tenanta> se zobrazí v části Stav oprávnění.

Vytvořte tok uživatele

Aby zákazníci viděli zkušenost registrace nebo přihlašování, když používají vaši aplikaci, musíte aplikaci přidružit k uživatelskému toku. I když k toku uživatele může být přidruženo mnoho aplikací, jedna aplikace může být přidružena pouze k jednomu toku uživatele.

  1. V nabídce bočního panelu vyberte Identity.

  2. Vyberte Externí identity, pak uživatelské toky.

  3. Na stránce Toky uživatelů vyberte název toku uživatele, který jste vytvořili dříve, například SignInSignUpSample.

  4. V části Použitívyberte Aplikace.

  5. Vyberte Přidataplikace .

  6. Vyberte aplikaci ze seznamu, například ciam-client-app nebo pomocí vyhledávacího pole vyhledejte aplikaci a pak ji vyberte.

  7. Zvolte Vybrat.

Jakmile aplikaci přidružíte k toku uživatele, můžete tok uživatele otestovat simulací registrace nebo přihlašování uživatele k aplikaci z Centra pro správu Microsoft Entra. Chcete-li to provést, použijte postupy v otestujte tok uživatelské registrace a přihlášení.

Přiřaďte SPA k uživatelskému toku

Aby zákazníci viděli prostředí registrace nebo přihlášení při použití vaší aplikace, musíte aplikaci přidružit k uživatelskému toku. I když k toku uživatele může být přidruženo mnoho aplikací, jedna aplikace může být přidružena pouze k jednomu toku uživatele.

  1. V nabídce bočního panelu vyberte Identity.

  2. Vyberte Externí identity, potom Toky uživatelů.

  3. Na stránce Toky uživatelů vyberte název toku uživatele, který jste vytvořili dříve, například SignInSignUpSample.

  4. V části Pomocívyberte Aplikace.

  5. Vyberte Přidat aplikaci.

  6. Vyberte aplikaci ze seznamu, například ciam-client-app nebo pomocí vyhledávacího pole vyhledejte aplikaci a pak ji vyberte.

  7. Zvolte Vybrat.

Jakmile aplikaci přidružíte k toku uživatele, můžete tok uživatele otestovat simulací registrace nebo přihlašování uživatele k aplikaci z Centra pro správu Microsoft Entra. Použijte postup uvedený v k otestování toku registrace a přihlášení.

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. Extrahujte ho do cesty k souboru, kde délka názvu je 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 anonymní relaci (režim) 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.