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é aplikace
- 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.
- Zaregistrujte novou aplikaci v centru pro správu Microsoft Entra s následující konfigurací a poznamenejte si její identifikátory ze stránky přehledu aplikace. Další informace najdete v tématu Registrace aplikace.
- název: identity-client-spa
- podporované typy účtů: Účty v tomto organizačním adresáři (pouze jeden tenant)
- Konfigurace platformy: Jednostránkové aplikace (SPA)
- URI přesměrování
http://localhost:3000/
:
- Node.js
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
V integrovaném vývojovém prostředí otevřete složku projektu ms-identity-docs-code-javascriptobsahující ukázku.
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 */ 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:
Pokud chcete spustit server, spusťte v adresáři projektu následující příkazy:
cd vanillajs-spa/App npm install npm start
Zkopírujte
https
adresu URL, která se zobrazí v terminálu, napříkladhttps://localhost:3000
a vložte ji do prohlížeče. Doporučujeme použít soukromou nebo inkognito relaci prohlížeče.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.
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.
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é aplikace
- Externí nájemce. Pokud ho chcete vytvořit, zvolte některou z následujících metod:
- Pomocí rozšíření Microsoft Entra External ID, nastavte externího tenanta přímo v editoru Visual Studio Code. (doporučeno)
- Vytvoření nového externího tenanta v Centru pro správu Microsoft Entra.
- Tok uživatele. Další informace najdete v tématu vytvoření uživatelských toků samoobslužné registrace pro aplikace v externích tenantech. Tento tok uživatele lze použít pro více aplikací.
- Visual Studio Code nebo jiného editoru kódu.
- Zaregistrujte novou aplikaci v centru pro správu Microsoft Entra s následující konfigurací a poznamenejte si její identifikátory ze stránky přehledu aplikace. Další informace najdete v tématu Registrace aplikace.
- název: identity-client-spa
- podporované typy účtů: Účty v tomto organizačním adresáři (pouze jeden tenant)
- Konfigurace platformy: Jednostránkové aplikace (SPA)
- Přesměrování URI:
http://localhost:3000/
- Přidání aplikace do toku uživatele
- Node.js
Udělení souhlasu správce
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:
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.
V části Spravovatvyberte oprávnění rozhraní API.
- Vyberte Udělit souhlas správce pro <název vašeho tenanta>a poté vyberte Ano.
- Vyberte Aktualizovat, a ověřte, že se v části Stav pro oprávnění zobrazuje Udělena oprávnění pro <název vašeho tenanta>.
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
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 tenantacontoso.onmicrosoft.com
, použijtecontoso
. Pokud nemáte název nájemce, zjistěte, jak si zobrazit podrobnosti o nájemci.
-
Uložte soubor.
Spusťte projekt a přihlaste se
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
Zkopírujte
https
adresu URL, která se zobrazí v terminálu, napříkladhttps://localhost:3000
a vložte ji do prohlížeče. Doporučujeme použít soukromou nebo inkognito relaci prohlížeče.Přihlaste se pomocí účtu zaregistrovaného u klienta.
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.
Odhlásit se z aplikace
- Najděte na stránce tlačítko Odhlásit se a vyberte ho.
- 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.
Související obsah
- rychlý start : Ochrana webového rozhraní API ASP.NET Core pomocí platformy Microsoft Identity Platform.
- Získejte více informací tím, že vytvoříte React SPA, které přihlašuje uživatele v kurzech v následující vícedílné sérii.
- Povolitresetování hesla .
- Přizpůsobit výchozí značku.
- Konfigurace přihlášení pomocí Google.