Rychlý start: Přihlášení uživatelů do ukázkové webové aplikace
V tomto úvodu použijete ukázkovou webovou aplikaci, abyste se naučili, jak přihlásit uživatele a použít rozhraní Microsoft Graph API ve vašem podnikovém tenantovi. Ukázková aplikace používá knihovnu Microsoft Authentication Library ke zpracování autentizace.
Než začnete, pomocí výběru Zvolte typ nájemce v horní části této stránky vyberte typ nájemce. Microsoft Entra ID poskytuje dvě konfigurace tenantů, zaměstnanců a externí. Konfigurace tenanta pracovních sil je určená pro zaměstnance, interní aplikace a další organizační prostředky. Externí tenant je určený pro vaše aplikace určené pro zákazníky.
Požadavky
- Předplatné Azure. Vytvořit předplatné Azure zdarma.
- Node.js
- Visual Studio Code nebo jiného editoru kódu.
- Tenant Microsoft Entra pro zaměstnance. Další informace naleznete v části Jak získat tenanta Microsoft Entra.
Registrace webové aplikace
Aby vaše aplikace mohla povolit přihlašování uživatelů, musí být ID Microsoft Entra informováno o vámi vytvořené aplikaci. 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í.
K dokončení registrace zadejte název aplikace a zadejte podporované typy účtů. Po registraci aplikace podokno Přehled zobrazí identifikátory potřebné ve zdrojovém kódu aplikace.
Přihlaste se do administrátorského centra Microsoft Entra.
Pokud máte přístup k více tenantům, pomocí ikony Nastavení
v horní nabídce přepněte do tenanta, ve kterém chcete aplikaci zaregistrovat z nabídky Adresáře a předplatná.
Přejděte k Identity>Applications>Registrace aplikace, a vyberte Nová registrace.
Zadejte Název aplikace, například identity-client-web-app.
U podporovaných typů účtůvyberte možnost Účty pouze v tomto organizačním adresáři. Pokud chcete získat informace o různých typech účtů, vyberte možnost Pomozte mi zvolit možnost.
Vyberte Zaregistrovat.
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.
Poznámka
Typy podporovaných účtů lze změnit odkazem na Upravit účty podporované aplikací.
Přidání platformy a adres URL
Platforma určuje typ aplikace, kterou chcete integrovat. Přesměrovací URI je místo, kam server platformy identity odešle uživatele po úspěšné autorizaci a udělení bezpečnostních tokenů.
Pokud se chcete přihlásit uživatele, musí vaše aplikace odeslat žádost o přihlášení s identifikátorem URI přesměrování zadaným jako parametr a musí odpovídat libovolnému identifikátoru URI přesměrování, které jste přidali do registrace aplikace.
Pokud chcete zadat typ aplikace pro registraci aplikace, postupujte takto:
- V části Spravovatvyberte Ověřování.
- Na stránce konfigurací platformy vyberte Přidat platformua pak vyberte možnost Web.
- Pro identifikátory URI přesměrování zadejte
http://localhost:3000/auth/redirect
. - V části adresa URL odhlášení z front-kanáluzadejte
https://localhost:5001/signout-callback-oidc
pro odhlášení. - Vyberte Konfigurovat k uložení změn.
Přidání tajného klíče klienta aplikace nebo certifikátu
Vytvořte tajný klíč klienta pro zaregistrovanou aplikaci. Aplikace používá tajný klíč klienta k prokázání své identity při žádostech o tokeny:
- Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například klientský tajný klíč webové aplikace), a otevřete tak její stránku Přehled.
- V části Spravovatvyberte Certifikáty & tajných kódů>Tajné kódy klienta>Nový tajný klíč klienta.
- Do pole Popis zadejte popis tajného klíče klienta (například tajný kód klienta webové aplikace).
- V části Konec platnostizvolte dobu, po kterou je tajný klíč platný (podle pravidel zabezpečení vaší organizace), poté vyberte Přidat.
- Zaznamenejte hodnotu tajného . Tuto hodnotu použijete pro konfiguraci v pozdějším kroku. Hodnota tajného kódu se znovu nezobrazí a není možné ji žádným způsobem načíst, když přejdete mimo Certifikáty a tajné kódy. Ujistěte se, že jste ho nahráli.
Při vytváření přihlašovacích údajů pro důvěrnou klientskou aplikaci:
Microsoft doporučuje, abyste před přesunutím aplikace do produkčního prostředí používali certifikát místo tajného klíče klienta. Další informace o tom, jak používat certifikát, najdete v pokynech v přihlašovacích údajů ověřovacího certifikátu aplikace Microsoft Identity Platform.
Pro účely testování můžete vytvořit certifikát podepsaný svým držitelem a nakonfigurovat aplikace tak, aby se s ním ověřily. Ale v produkčnímbyste měli zakoupit certifikát podepsaný dobře známou certifikační autoritou a pak použít Azure Key Vault ke správě přístupu k certifikátu a jeho životnosti.
Klonování nebo stažení ukázkové webové aplikace
Pokud chcete získat ukázkovou aplikaci, můžete ji buď naklonovat z GitHubu, nebo si ji stáhnout jako soubor .zip.
stáhněte soubor .zip, a pak ho extrahujte do cesty k souboru, kde délka názvu je menší než 260 znaků, nebo naklonujte úložiště:
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-node.git
Konfigurace ukázkové webové aplikace
Abyste mohli přihlásit uživatele pomocí ukázkové aplikace, musíte ji aktualizovat pomocí podrobností o aplikaci a tenantovi:
Ve složce ms-identity-node-main otevřete soubor .env ve složce App. Nahraďte následující zástupné symboly:
Proměnná | Popis | Příklady |
---|---|---|
Enter_the_Cloud_Instance_Id_Here |
Cloudová instance Azure, ve které je vaše aplikace zaregistrovaná |
https://login.microsoftonline.com/ (včetně koncového lomítka) |
Enter_the_Tenant_Info_here |
ID tenanta nebo primární doména |
contoso.microsoft.com nebo aaaabbbb-0000-cccc-1111-dddd2222eeee |
Enter_the_Application_Id_Here |
ID klienta aplikace, kterou jste zaregistrovali | 00001111-aaaa-2222-bbbb-3333cccc4444 |
Enter_the_Client_Secret_Here |
Tajný klíč klienta aplikace, kterou jste zaregistrovali | A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u |
Enter_the_Graph_Endpoint_Here |
Cloudová instance rozhraní Microsoft Graph API, kterou vaše aplikace volá |
https://graph.microsoft.com/ (včetně koncového lomítka) |
Enter_the_Express_Session_Secret_Here |
Náhodný řetězec znaků pro podepsání cookie relace Express | A1b-C2d_E3f.H4... |
Po provedení změn by měl soubor vypadat podobně jako následující fragment kódu:
CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...
REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000
GRAPH_API_ENDPOINT=https://graph.microsoft.com/
EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k
Spuštění a testování ukázkové webové aplikace
Nakonfigurovali jste ukázkovou aplikaci. Můžete pokračovat spuštěním a otestováním.
Pokud chcete spustit server, spusťte v adresáři projektu následující příkazy:
cd App npm install npm start
Přejděte na
http://localhost:3000/
.Vyberte Přihlásit se pro zahájení procesu přihlášení.
Při prvním přihlášení se zobrazí výzva k zadání souhlasu, abyste aplikaci povolili přihlášení a přístup k vašemu profilu. Po úspěšném přihlášení budete přesměrováni zpět na domovskou stránku aplikace.
Jak aplikace funguje
Ukázka hostuje webový server na localhostu, port 3000. Když webový prohlížeč přistupuje k této adrese, aplikace vykreslí domovskou stránku. Jakmile uživatel vybere Přihlásit se, aplikace přesměruje prohlížeč na přihlašovací obrazovku Microsoft Entra přes adresu URL vygenerovanou knihovnou uzlů MSAL. Po vyjádření souhlasu uživatele prohlížeč přesměruje uživatele zpět na domovskou stránku aplikace spolu s ID a přístupovým tokenem.
Související obsah
- Naučte se, jak vytvořit Node.js webovou aplikaci, která přihlašuje uživatele a volá rozhraní Microsoft Graph API v Kurzu: Přihlášení uživatelů a získání tokenu pro Microsoft Graph ve Node.js & Express webové aplikaci.
V tomto rychlém startu použijete ukázkovou webovou aplikaci, která vám ukáže, jak přihlásit uživatele ve vašem externím tenantovi. Ukázková aplikace používá ke zpracování ověřování knihovnu Microsoft Authentication Library.
Než začnete, pomocí Zvolte typ tenanta selektor v horní části této stránky vyberte typ tenanta. Microsoft Entra ID poskytuje dvě konfigurace tenantů: pro pracovníky a pro externí. Konfigurace tenanta pracovních sil je určená pro zaměstnance, interní aplikace a další organizační prostředky. Externí tenant je určený pro vaše aplikace určené pro zákazníky.
Požadavky
- uzel
- ASP.NET Core
- Python Django
- Python Flask
- editoru Visual Studio Code nebo jiného editoru kódu.
- Node.js.
- Externí nájemce. Pokud ho chcete vytvořit, zvolte některou z následujících metod:
- (Doporučeno) Pomocí rozšíření Microsoft Entra External ID nastavíte externího tenanta přímo ve Visual Studio Code.
- Vytvoření nového externího tenanta v Centru pro správu Microsoft Entra.
Registrace webové aplikace
Aby vaše aplikace mohla přihlašovat uživatele pomocí Microsoft Entra, je třeba nastavit externí ID Microsoft Entra pro aplikaci, 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:
Přihlaste se do centra pro správu Microsoft Entra alespoň na pozici vývojáře aplikací.
Pokud máte přístup k více tenantům, pomocí
ikony Nastavení v horní nabídce přepněte do externího tenanta z nabídky Adresáře a předplatná.
Přejděte na Identity>Applications>Registrace aplikací.
Vyberte + Nová registrace.
Na stránce Zaregistrovat aplikaci, která se zobrazí;
- Zadejte smysluplnou aplikaci Název, která se zobrazí uživatelům aplikace, například ciam-client-app .
- V části Podporované typy účtůvyberte Pouze účty v tomto organizačním adresáři.
Vyberte Zaregistrovat.
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řidání platformy a adres URL
Platforma určuje typ aplikace, kterou chcete integrovat. URI přesměrování je umístění, kam ověřovací server platformy identity odešle uživatele po úspěšné autorizaci a udělení tokenů zabezpečení.
Pokud se chcete přihlásit uživatele, musí vaše aplikace odeslat žádost o přihlášení s identifikátorem URI přesměrování zadaným jako parametr a musí odpovídat libovolnému identifikátoru URI přesměrování, které jste přidali do registrace aplikace.
- uzel
- ASP.NET Core
- Python Django
- Python Flask
Pokud chcete zadat typ aplikace pro registraci aplikace, postupujte takto:
- V části Spravovatvyberte Ověřování.
- Na stránce konfigurace platformy vyberte Přidat platformua pak vyberte možnost Web.
- Pro přesměrování URI zadejte
http://localhost:3000/auth/redirect
. - Výběrem možnosti Konfigurovat uložte změny.
Přidání tajného klíče klienta aplikace
Vytvořte tajný klíč klienta pro zaregistrovanou aplikaci. Aplikace používá tajný klíč klienta k prokázání své identity při žádostech o tokeny:
- Na stránce Registrace aplikací vyberte aplikaci, kterou jste vytvořili (například klientský tajný klíč webové aplikace), abyste otevřeli její stránku Přehled.
- V části Spravovatvyberte Certifikáty & tajných kódů>Tajné kódy klienta>Nový tajný klíč klienta.
- Do pole Popis zadejte popis tajného klíče klienta (například tajný kód klienta webové aplikace).
- V části Konec platnostivyberte dobu, po kterou je tajemství platné (podle pravidel zabezpečení vaší organizace), poté vyberte Přidat.
- Zaznamenejte hodnotu tajemství . Tuto hodnotu použijete pro konfiguraci v pozdějším kroku. Hodnota tajného kódu se znovu nezobrazí a není možné ji žádným způsobem načíst, když přejdete mimo Certifikáty a tajné kódy. Ujistěte se, že jste ho nahráli.
Při vytváření přihlašovacích údajů pro důvěrnou klientskou aplikaci:
Microsoft doporučuje, abyste před přesunutím aplikace do produkčního prostředí používali certifikát místo tajného klíče klienta. Další informace o tom, jak používat certifikát, najdete v pokynech v přihlašovacích údajů ověřovacího certifikátu aplikace Microsoft Identity Platform.
Pro účely testování můžete vytvořit certifikát podepsaný svým držitelem a nakonfigurovat aplikace tak, aby se s ním ověřily. Ale v produkčnímbyste měli zakoupit certifikát podepsaný dobře známou certifikační autoritou, a pak použít Azure Key Vault ke správě přístupu a životnosti certifikátu.
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 vlastní uživatelé zákazníka 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ší instance>a poté vyberte Ano.
- Vyberte Aktualizovata ověřte, že uděleno <název vašeho tenanta> se zobrazí v části Stav oprávnění.
Vytvořte uživatelský tok
Pokud chcete vytvořit tok uživatele, který může zákazník použít k přihlášení nebo registraci aplikace, postupujte podle těchto kroků.
Přihlaste se do centra pro správu Microsoft Entra alespoň na úrovni správce uživatelského toku externího ID.
Pokud máte přístup k více tenantům, pomocí
ikony Nastavení v horní nabídce přepněte do externího tenanta z nabídky Adresáře a předplatná.
Přejděte na Identity>externí identity>toky uživatelů.
Vyberte + Nový uživatelský tok.
Na stránce Vytvořit:
Zadejte název pro tok uživatele, například SignInSignUpSample.
V seznamu Poskytovatelé identity vyberte E-mailové účty. Tento zprostředkovatel identity umožňuje uživatelům přihlásit se nebo zaregistrovat pomocí jejich e-mailové adresy.
Poznámka
Další zprostředkovatelé identity se tady zobrazí až po nastavení federace s nimi. Pokud jste například nastavili federaci s Google, Facebook, Apple nebo OIDC identity provider, budete moci vybrat tyto další zprostředkovatele identity.
V části E-mailové účtymůžete vybrat jednu ze dvou možností. Pro účely tohoto kurzu vyberte E-mail s heslem.
- e-mail s heslem: Umožňuje novým uživatelům zaregistrovat se a přihlásit se pomocí e-mailové adresy jako přihlašovací jméno a heslo jako jejich první přihlašovací údaje.
- E-mailu jednorázové heslo: Umožňuje novým uživatelům zaregistrovat se a přihlásit se pomocí e-mailové adresy jako přihlašovacího jména a jednorázového hesla zaslaného e-mailem jako jejich prvního faktoru ověření. Jednorázové heslo e-mailu musí být povolené na úrovni tenanta (Všichni zprostředkovatelé identity>jednorázové heslo e-mailu), aby tato možnost byla dostupná na úrovni toku uživatele.
V části Atributy uživatelezvolte atributy, které chcete shromažďovat od uživatele při registraci. Výběrem možnosti Zobrazit dalšímůžete zvolit atributy a nároky pro zemi/oblast, zobrazované jménoa poštovní směrovací číslo. Vyberte OK. (Uživatelům se při první registraci zobrazí výzva pouze k zadání atributů.)
Vyberte Vytvořit. Nový uživatelský tok se zobrazí v seznamu Toky uživatelů. V případě potřeby aktualizujte stránku.
Pokud chcete povolit samoobslužné resetování hesla, postupujte podle pokynů v článku Povolení samoobslužného resetování hesla článku.
Přidružení webové aplikace k toku uživatele
Aby zákazničtí uživatelé viděli prostředí registrace nebo přihlášení, 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.
V nabídce bočního panelu vyberte Identity.
Vyberte Externí identitya pak Uživatelské toky.
Na stránce Toky uživatelů vyberte název uživatelského toku, který jste již vytvořili, například SignInSignUpSample.
V části Použítvyberte Aplikace.
Vyberte Přidat aplikaci.
Vyberte aplikaci ze seznamu, například ciam-client-app nebo pomocí vyhledávacího pole vyhledejte aplikaci a pak ji vyberte.
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. K tomu použijte kroky v testování uživatelského procesu registrace a přihlášení.
Klonování nebo stažení ukázkové webové aplikace
- uzel
- ASP.NET Core
- Python Django
- Python Flask
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
Případně stáhněte ukázkový soubor .zip, a poté ho extrahujte do cesty k souboru, kde je název kratší než 260 znaků.
Instalace závislostí projektu
Otevřete okno konzoly a přejděte do adresáře, který obsahuje ukázkovou aplikaci Node.js:
cd 1-Authentication\5-sign-in-express\App
Spuštěním následujících příkazů nainstalujte závislosti aplikací:
npm install
Konfigurace ukázkové webové aplikace
Abyste mohli přihlásit uživatele pomocí ukázkové aplikace, musíte ji aktualizovat pomocí podrobností o aplikaci a tenantovi:
- uzel
- ASP.NET Core
- Python Django
- Python Flask
V editoru kódu otevřete soubor App\authConfig.js.
Vyhledejte zástupný symbol:
-
Enter_the_Application_Id_Here
a nahraďte ho ID aplikace (klienta), kterou jste zaregistrovali dříve. - Nahraďte
Enter_the_Tenant_Subdomain_Here
subdoménou Adresář (tenanta). Pokud je například primární doména vašeho tenantacontoso.onmicrosoft.com
, použijtecontoso
. Pokud nemáte název tenanta, zjistěte, jak zjistit podrobnosti o tenantovi. -
Enter_the_Client_Secret_Here
a nahraďte ji hodnotou tajného kódu aplikace, kterou jste zkopírovali dříve.
-
Spuštění a testování ukázkové webové aplikace
- uzel
- ASP.NET Core
- Python Django
- Python Flask
Ukázkovou Node.js webovou aplikaci teď můžete otestovat. Musíte spustit Node.js server a přistupovat k němu prostřednictvím prohlížeče v http://localhost:3000
.
V terminálu spusťte následující příkaz:
npm start
Otevřete prohlížeč a přejděte na
http://localhost:3000
. Měla by se zobrazit stránka podobná následujícímu snímku obrazovky:Po dokončení načítání stránky vyberte po zobrazení výzvy Přihlásit se.
Na přihlašovací stránce zadejte e-mailovou adresu, vyberte Další, zadejte Hesloa pak vyberte Přihlásit se. Pokud účet nemáte, vyberte Žádný účet? Vytvořte jeden odkaz, který spustí tok registrace.
Pokud zvolíte možnost registrace, po vyplnění e-mailu, jednorázového hesla, nového hesla a dalších podrobností účtu dokončíte celý tok registrace. Zobrazí se stránka podobná následujícímu snímku obrazovky. Pokud zvolíte možnost přihlášení, zobrazí se podobná stránka.
Vyberte Odhlásit se, pokud chcete uživatele odhlásit z webové aplikace, nebo vyberte Zobrazit deklarace identity tokenu ID k zobrazení deklarací identity tokenů ID vrácených microsoftem Entra.
Jak to funguje
Když uživatelé vyberou odkaz Přihlášení, aplikace zahájí žádost o ověření a přesměruje uživatele na externí ID Microsoft Entra. Na přihlašovací nebo registrační stránce, která se objeví, když se uživatel úspěšně přihlásí nebo vytvoří účet, vrátí Microsoft Entra External ID token ID do aplikace. Aplikace ověří token ID, přečte deklarace identity a vrátí uživatelům zabezpečenou stránku.
Když uživatelé vyberou odkaz Odhlásit se, aplikace vymaže svoji relaci a pak přesměruje uživatele na koncový bod odhlášení Microsoft Entra External ID, aby ho informovala, že uživatel byl odhlášen.
Pokud chcete vytvořit aplikaci podobnou vzorové, kterou jste spustili, dokončete kroky v článku " Přihlášení uživatelů ve vaší vlastní webové aplikaci Node.js".