Gebruikers aanmelden in een voorbeeld-Node.js-webtoepassing
In deze handleiding wordt een voorbeeld van Node.js webtoepassing gebruikt om u te laten zien hoe u verificatie toevoegt aan een webtoepassing. Met de voorbeeldtoepassing kunnen gebruikers zich aanmelden en afmelden. De voorbeeldwebtoepassing maakt gebruik van Microsoft Authentication Library for Node (MSAL Node) voor Node om verificatie af te handelen.
In dit artikel voert u de volgende taken uit:
Registreer een webtoepassing in het Microsoft Entra-beheercentrum.
Maak een gebruikersstroom voor aanmelden en afmelden in het Microsoft Entra-beheercentrum.
Koppel uw webtoepassing aan de gebruikersstroom.
Werk een voorbeeld van een Node.js-webtoepassing bij met behulp van uw eigen externe tenantgegevens.
Voer de voorbeeldwebtoepassing uit en test deze.
Vereisten
- Visual Studio Code of een andere code-editor.
- Node.js.
- .NET 7.0 of hoger.
- Een externe tenant. Kies een van de volgende methoden om er een te maken:
- (Aanbevolen) Gebruik de Microsoft Entra Externe ID-extensie om rechtstreeks in Visual Studio Code een externe tenant in te stellen.
- Maak een nieuwe externe tenant in het Microsoft Entra-beheercentrum.
De web-app registreren
Als u wilt dat uw toepassing gebruikers kan aanmelden met Microsoft Entra, moet Microsoft Entra Externe ID op de hoogte worden gesteld van de toepassing die u maakt. De app-registratie brengt een vertrouwensrelatie tot stand tussen de app en Microsoft Entra. Wanneer u een toepassing registreert, genereert externe id een unieke id die bekend staat als een toepassings-id (client), een waarde die wordt gebruikt om uw app te identificeren bij het maken van verificatieaanvragen.
De volgende stappen laten zien hoe u uw app registreert in het Microsoft Entra-beheercentrum:
Meld u als toepassingsontwikkelaar aan bij het Microsoft Entra-beheercentrum.
Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om vanuit het menu Mappen en abonnementen over te schakelen naar uw externe tenant.
Blader naar identiteitstoepassingen>> App-registraties.
Selecteer + Nieuwe registratie.
Op de pagina Een toepassing registreren die wordt weergegeven;
- Voer een betekenisvolle toepassingsnaam in die wordt weergegeven aan gebruikers van de app, bijvoorbeeld ciam-client-app.
- Onder Ondersteunde accounttypen selecteert u Enkel accounts in deze organisatieadreslijst.
Selecteer Registreren.
Het deelvenster Overzicht van de toepassing wordt weergegeven bij een geslaagde registratie. Noteer de toepassings-id (client) die moet worden gebruikt in de broncode van uw toepassing.
Voer de volgende stappen uit om uw app-type op te geven voor uw app-registratie:
- Selecteer Verificatie onder Beheren.
- Selecteer op de pagina Platformconfiguraties de optie Een platform toevoegen en selecteer vervolgens de optie Web.
- Voer voor de omleidings-URI's in
http://localhost:3000/auth/redirect
. - Selecteer Configureren om uw wijzigingen op te slaan.
App-clientgeheim toevoegen
Maak vervolgens een clientgeheim voor de geregistreerde toepassing. De toepassing gebruikt het clientgeheim om de identiteit te bewijzen wanneer er tokens worden aangevraagd.
- Selecteer op de pagina App-registraties de toepassing die u hebt gemaakt (zoals ciam-client-app) om de overzichtspagina te openen.
- Selecteer onder Beheren de optie Certificaten en geheimen.
- Selecteer Nieuw clientgeheim.
- Voer in het vak Beschrijving een beschrijving in voor het clientgeheim (bijvoorbeeld ciam-app-clientgeheim).
- Selecteer onder Verlopen een duur waarvoor het geheim geldig is (volgens de beveiligingsregels van uw organisatie) en selecteer vervolgens Toevoegen.
- Noteer de Waarde van het geheim. U gebruikt deze waarde voor configuratie in een latere stap. De geheime waarde wordt niet opnieuw weergegeven en kan op geen enkele manier worden opgehaald nadat u weg navigeert van de certificaten en geheimen. Zorg ervoor dat u deze opneemt.
Beheerderstoestemming verlenen
Nadat u uw toepassing hebt geregistreerd, krijgt deze de machtiging User.Read toegewezen. Omdat de tenant echter een externe tenant is, kunnen de gebruikers van de klant zelf geen toestemming geven voor deze machtiging. U als beheerder moet toestemming geven voor deze machtiging namens alle gebruikers in de tenant:
Selecteer op de pagina App-registraties de toepassing die u hebt gemaakt (zoals ciam-client-app) om de overzichtspagina te openen.
Selecteer onder Beheren de optie API-machtigingen.
- Selecteer Beheerderstoestemming verlenen voor <uw tenantnaam> en selecteer Vervolgens Ja.
- Selecteer Vernieuwen en controleer vervolgens of Verleend voor <uw tenantnaam> wordt weergegeven onder Status voor de machtiging.
Een gebruikersstroom maken
Volg deze stappen om een gebruikersstroom te maken die een klant kan gebruiken om zich aan te melden of zich te registreren voor een toepassing.
Meld u aan bij het Microsoft Entra-beheercentrum als ten minste een beheerder van de gebruikersstroom voor externe id's.
Als u toegang hebt tot meerdere tenants, gebruikt u het pictogram Instellingen in het bovenste menu om vanuit het menu Mappen en abonnementen over te schakelen naar uw externe tenant.
Blader naar gebruikersstromen> voor externe identiteiten.>
Selecteer + Nieuwe gebruikersstroom.
Op de pagina Maken :
Voer een naam in voor de gebruikersstroom, zoals SignInSignUpSample.
Selecteer E-mailaccounts in de lijst met id-providers. Met deze id-provider kunnen gebruikers zich aanmelden of registreren met hun e-mailadres.
Onder E-mailaccounts kunt u een van de twee opties selecteren. Voor deze zelfstudie selecteert u E-mail met wachtwoord.
- E-mail met wachtwoord: hiermee kunnen nieuwe gebruikers zich registreren en aanmelden met een e-mailadres als de aanmeldingsnaam en een wachtwoord als hun eerste factorreferentie.
- Eenmalige wachtwoordcode per e-mail verzenden: hiermee kunnen nieuwe gebruikers zich registreren en aanmelden met behulp van een e-mailadres als de aanmeldingsnaam en eenmalige wachtwoordcode per e-mail als hun eerste factorreferentie. Wachtwoordcode voor eenmalige e-mail moet zijn ingeschakeld op tenantniveau (Alle id-providers>voor eenmalige wachtwoordcode) om deze optie beschikbaar te maken op gebruikersstroomniveau.
Kies onder Gebruikerskenmerken de kenmerken die u wilt verzamelen van de gebruiker bij het aanmelden. Als u Meer weergeven selecteert, kunt u kenmerken en claims kiezen voor land/regio, weergavenaam en postcode. Selecteer OK. (Gebruikers worden alleen om kenmerken gevraagd wanneer ze zich voor het eerst registreren.)
Selecteer Maken. De nieuwe gebruikersstroom wordt weergegeven in de lijst gebruikersstromen . Vernieuw de pagina indien nodig.
Als u selfservice voor wachtwoordherstel wilt inschakelen, gebruikt u de stappen in het artikel Selfservice voor wachtwoordherstel inschakelen.
De webtoepassing koppelen aan de gebruikersstroom
Als de klantgebruikers de aanmeldings- of aanmeldingservaring willen zien wanneer ze uw app gebruiken, moet u uw app koppelen aan een gebruikersstroom. Hoewel veel toepassingen aan uw gebruikersstroom kunnen worden gekoppeld, kan één toepassing slechts worden gekoppeld aan één gebruikersstroom.
Selecteer Identiteit in het zijbalkmenu.
Selecteer Externe identiteiten en vervolgens Gebruikersstromen.
Selecteer op de pagina Gebruikersstromen de naam van de gebruikersstroom die u eerder hebt gemaakt, bijvoorbeeld SignInSignUpSample.
Selecteer Toepassingen onder Gebruiken.
Selecteer Toepassing toevoegen.
Selecteer de toepassing in de lijst, zoals ciam-client-app of gebruik het zoekvak om de toepassing te zoeken en selecteer deze.
Kies Selecteren.
Zodra u uw app aan een gebruikersstroom hebt gekoppeld, kunt u uw gebruikersstroom testen door de registratie- of aanmeldingservaring van een gebruiker te simuleren met uw toepassing vanuit het Microsoft Entra-beheercentrum. Gebruik hiervoor de stappen in De gebruikersstroom voor registreren en aanmelden testen.
Voorbeeldwebtoepassing klonen of downloaden
Als u de voorbeeldtoepassing wilt verkrijgen, kunt u deze klonen vanuit GitHub of downloaden als een .zip-bestand:
Als u het voorbeeld wilt klonen, opent u een opdrachtprompt en navigeert u naar de locatie waar u het project wilt maken en voert u de volgende opdracht in:
git clone https://github.com/Azure-Samples/ms-identity-ciam-javascript-tutorial.git
U kunt het voorbeeldbestand ook downloaden .zip en vervolgens uitpakken naar een bestandspad waarin de lengte van de naam minder dan 260 tekens is.
Projectafhankelijkheden installeren
Open een consolevenster en ga naar de map met de Node.js voorbeeld-app:
cd 1-Authentication\5-sign-in-express\App
Voer de volgende opdrachten uit om de vereiste app-afhankelijkheden te installeren:
npm install
De voorbeeldweb-app configureren
Open app\authConfig.js-bestand in de code-editor.
Zoek de tijdelijke aanduiding:
Enter_the_Application_Id_Here
en vervang deze door de toepassings-id (client) van de app die u eerder hebt geregistreerd.Enter_the_Tenant_Subdomain_Here
en vervang het door het subdomein Directory (tenant). Als uw primaire tenantdomein bijvoorbeeld iscontoso.onmicrosoft.com
, gebruikt ucontoso
. Als u uw tenantnaam niet hebt, leest u de details van uw tenant.Enter_the_Client_Secret_Here
en vervang deze door de app-geheime waarde die u eerder hebt gekopieerd.
Voorbeeld-web-app uitvoeren en testen
U kunt nu de voorbeeld-Node.js-web-app testen. U moet de Node.js server starten en openen via uw browser op http://localhost:3000
.
Voer in de terminal de volgende opdracht uit:
npm start
Open uw browser en ga naar
http://localhost:3000
. De pagina ziet er ongeveer als volgt uit:Nadat de pagina is geladen, selecteert u De koppeling Aanmelden . U wordt gevraagd om u aan te melden.
Typ uw e-mailadres op de aanmeldingspagina, selecteer Volgende, typ uw wachtwoord en selecteer Vervolgens Aanmelden. Als u geen account hebt, selecteert u Geen account? Maak één koppeling, waarmee de registratiestroom wordt gestart.
Als u de registratieoptie kiest, voltooit u na het invullen van uw e-mail, eenmalige wachtwoordcode, nieuw wachtwoord en meer accountgegevens de volledige aanmeldingsstroom. U ziet een pagina die vergelijkbaar is met de volgende schermopname. U ziet een vergelijkbare pagina als u de aanmeldingsoptie kiest.
Selecteer Afmelden om de gebruiker af te melden bij de web-app of selecteer Id-tokenclaims weergeven om id-tokenclaims weer te geven die worden geretourneerd door Microsoft Entra.
Hoe het werkt
Wanneer gebruikers de koppeling Aanmelden selecteren, initieert de app een verificatieaanvraag en leidt de gebruiker om naar Microsoft Entra Externe ID. Zodra een gebruiker zich heeft aangemeld of een account heeft gemaakt, wordt op de aanmeldings- of registratiepagina die wordt weergegeven, Microsoft Entra Externe ID een id-token naar de app retourneert. De app valideert het id-token, leest de claims en retourneert een beveiligde pagina aan de gebruikers.
Wanneer de gebruikers de koppeling Afmelden selecteren, wordt de sessie gewist door de gebruiker omgeleid naar Microsoft Entra Externe ID afmeldingseindpunt om te melden dat de gebruiker zich heeft afgemeld.
Als u een app wilt bouwen die vergelijkbaar is met het voorbeeld dat u hebt uitgevoerd, voert u de stappen uit in gebruikers aanmelden in uw eigen Node.js webtoepassingsartikel .