Typen en verificatiestromen voor microsoft-identiteitsplatform-apps
Het Microsoft-identiteitsplatform ondersteunt verificatie voor verschillende soorten moderne toepassingsarchitecturen. Alle architecturen zijn gebaseerd op de industriestandaard protocollen OAuth 2.0 en OpenID Connect. Door de verificatiebibliotheken voor het Microsoft-identiteitsplatform gebruiken, verifiëren apps identiteiten en verkrijgen ze tokens voor toegang tot beveiligde API's.
In dit artikel worden verificatiestromen en de toepassingsscenario's beschreven waarin ze worden gebruikt.
Toepassingscategorieën
Beveiligingstokens kunnen worden verkregen uit verschillende typen toepassingen, waaronder:
- Web-apps
- Mobiele apps
- Desktop-apps
- Web-API's
Tokens kunnen ook worden verkregen door apps die worden uitgevoerd op apparaten die geen browser hebben of die worden uitgevoerd op Internet of Things (IoT).
In de volgende secties worden de toepassingscategorieën beschreven.
Beveiligde resources versus clienttoepassingen
Verificatiescenario's hebben betrekking op twee activiteiten:
- Beveiligingstokens verkrijgen voor een beveiligde web-API: We raden u aan de Microsoft Authentication Library (MSAL) te gebruiken die wordt ontwikkeld en ondersteund door Microsoft.
- Een web-API of een web-app beveiligen: Een uitdaging voor het beveiligen van deze resources is het valideren van het beveiligingstoken. Op sommige platforms biedt Microsoft middlewarebibliotheken.
Met gebruikers of zonder gebruikers
De meeste verificatiescenario's verkrijgen tokens namens aangemelde gebruikers.
Er zijn echter ook daemon-apps. In deze scenario's verkrijgen toepassingen tokens namens zichzelf zonder gebruiker.
Toepassingen met één pagina, openbare client en vertrouwelijke client
Beveiligingstokens kunnen worden verkregen door meerdere typen toepassingen. Deze toepassingen worden meestal onderverdeeld in de volgende drie categorieën. Elk wordt gebruikt met verschillende bibliotheken en objecten.
Toepassingen met één pagina: ook wel SPA’s genoemd, dit zijn web-apps waarin tokens worden verkregen door een JavaScript- of TypeScript-app die in de browser wordt uitgevoerd. Veel moderne apps hebben een app-front-end van één pagina die voornamelijk in JavaScript is geschreven. De toepassing maakt vaak gebruik van een framework zoals Angular, React of Vue. MSAL.js is de enige Microsoft Authentication Library die toepassingen met één pagina ondersteunt.
Openbare clienttoepassingen: Apps in deze categorie, zoals de volgende typen, melden altijd gebruikers aan:
- Bureaublad-apps die web-API's aanroepen namens aangemelde gebruikers
- Mobiele apps
- Apps die worden uitgevoerd op apparaten die geen browser hebben, zoals apps die worden uitgevoerd in IoT
Vertrouwelijke clienttoepassingen: apps in deze categorie zijn onder andere:
- Web-apps die een web-API aanroepen
- Web-apps die een web-API aanroepen
- Daemon-apps, zelfs wanneer deze zijn geïmplementeerd als een consoleservice, zoals een Linux-daemon of een Windows-service
Aanmeldingsdoelgroep
De beschikbare verificatiestromen verschillen, afhankelijk van de aanmeldingsdoelgroep. Sommige stromen zijn alleen beschikbaar voor werk- of schoolaccounts. Anderen zijn beschikbaar voor werk- of schoolaccounts en voor persoonlijke Microsoft-accounts.
Zie Ondersteunde accounttypen voor meer informatie.
Toepassingstypen
Het Microsoft-identiteitsplatform ondersteunt verificatie voor deze app-architecturen:
- Toepassingen met één pagina
- Web-apps
- Web-API's
- Mobiele apps
- Systeemeigen apps
- Daemon-apps
- Apps aan de serverzijde
Toepassingen gebruiken de verschillende verificatiestromen om gebruikers aan te melden en tokens op te halen om beveiligde API's aan te roepen.
Toepassing met één pagina
Veel moderne web-apps zijn gebouwd als toepassingen met één pagina (SPA’s) aan clientzijde. Deze toepassingen gebruiken JavaScript of een framework zoals Angular, Vue en React. Deze toepassingen worden uitgevoerd in een webbrowser.
Toepassingen met één pagina verschillen van traditionele web-apps aan de serverzijde qua verificatiekenmerken. Door het Microsoft-identiteitsplatform te gebruiken, kunnen toepassingen met één pagina gebruikers aanmelden en tokens verkrijgen voor toegang tot back-endservices of web-API’s. Het Microsoft-identiteitsplatform biedt twee toekenningstypen voor JavaScript-toepassingen:
MSAL.js (2.x) | MSAL.js (1.x) |
---|---|
Web-app waarmee een gebruiker wordt aangemeld
Een web-app beveiligen die een gebruiker aanmeldt:
Als u in .NET ontwikkelt, gebruikt u ASP.NET of ASP.NET Core met de ASP.NET OpenID Connect-middleware. Het beveiligen van een resource omvat het valideren van het beveiligingstoken, dat wordt uitgevoerd door de IdentityModel-extensies voor .NET-bibliotheken en andere bibliotheken dan MSAL-bibliotheken.
Als u in Node.js ontwikkelt, gebruikt u MSAL Node.
Zie Web-app waarmee gebruikers worden aangemeld voor meer informatie.
Web-app die een gebruiker aanmeldt en een web-API aanroept namens de gebruiker
Als u een web-API wilt aanroepen vanuit een web-app namens een gebruiker, gebruikt u de autorisatiecodestroom en slaat u de verkregen tokens op in de tokencache. Indien nodig vernieuwt MSAL tokens en verkrijgt de controller op de achtergrond tokens uit de cache.
Zie Web-app die web-API’s aanroept voor meer informatie.
Bureaublad-app die een web-API aanroept namens een aangemelde gebruiker
Gebruik de interactieve methoden voor het verkrijgen van tokens van MSAL om een web-API aan te roepen waarmee gebruikers worden aangemeld. Met deze interactieve methoden kunt u de gebruikersinterface-ervaring voor aanmelden beheren. MSAL gebruikt een webbrowser voor deze interactie.
Er is een andere mogelijkheid voor door Windows gehoste toepassingen op computers die zijn gekoppeld aan een Windows-domein of door Microsoft Entra ID. Deze toepassingen kunnen op de achtergrond een token verkrijgen met behulp van geïntegreerde Windows-verificatie.
Toepassingen die op een apparaat zonder browser worden uitgevoerd, kunnen nog steeds namens een gebruiker een API aanroepen. Voor verificatie moet de gebruiker zich aanmelden op een ander apparaat met een webbrowser. Voor dit scenario moet u de apparaatcodestroom gebruiken.
Hoewel we deze niet aanraden, is de gebruikersnaam-/wachtwoordstroom beschikbaar in openbare clienttoepassingen. Deze stroom is nog steeds nodig in sommige scenario's, zoals DevOps.
Als u de gebruikersnaam-/wachtwoordstroom gebruikt, worden uw toepassingen beperkt. Toepassingen kunnen zich bijvoorbeeld niet aanmelden bij een gebruiker die meervoudige verificatie of het hulpprogramma voor voorwaardelijke toegang in Microsoft Entra-id moet gebruiken. Bovendien profiteert uw toepassing niet van eenmalige aanmelding (SSO). Verificatie met de gebruikersnaam-/wachtwoordstroom gaat in tegen de principes van moderne verificatie en wordt alleen om verouderde redenen verstrekt.
Als u in desktop-apps de tokencache wilt behouden, kunt u de serialisatie van de tokencache aanpassen. Door dubbele serialisatie van de tokencache te implementeren, kunt u achterwaarts en voorwaarts compatibele tokencaches gebruiken.
Zie Bureaubladtoepassing die web-API’s aanroept voor meer informatie.
Mobiele app die een web-API aanroept namens een interactieve gebruiker
Net als bij een bureaubladtoepassing roept een mobiele app de interactieve methoden voor tokenverwerving van MSAL aan om een token te verkrijgen voor het aanroepen van een web-API.
MSAL iOS en MSAL Android gebruiken standaard de systeemwebbrowser. U kunt ze echter doorsturen om in plaats daarvan de ingesloten webweergave te gebruiken. Er zijn specifieke kenmerken die afhankelijk zijn van het mobiele platform: Universeel Windows-platform (UWP), iOS of Android.
Voor sommige scenario's, zoals scenario's die betrekking hebben op voorwaardelijke toegang met betrekking tot een apparaat-id of een apparaatinschrijving, moet een broker op het apparaat worden geïnstalleerd. Voorbeelden van brokers zijn Microsoft Bedrijfsportal op Android en Microsoft Authenticator op Android en iOS.
Zie Mobiele app die web-API’s aanroept voor meer informatie.
Notitie
Een mobiele app die gebruikmaakt van MSAL iOS of MSAL Android, kan beleid voor app-beveiliging erop toepassen. Het beleid kan bijvoorbeeld voorkomen dat een gebruiker beveiligde tekst kopieert. De mobiele app wordt beheerd door Intune en wordt door Intune herkend als een beheerde app. Zie het overzicht van de Microsoft Intune-app-SDK voor meer informatie.
De Intune App SDK staat los van MSAL-bibliotheken en communiceert zelfstandig met Microsoft Entra ID.
Beveiligde web-API
U kunt het Microsoft-identiteitsplatform-eindpunt gebruiken om webservices, zoals de RESTful-API van uw app, te beveiligen. Een beveiligde web-API wordt aangeroepen via een toegangstoken. Het token helpt de gegevens van de API te beveiligen en binnenkomende aanvragen te verifiëren. De aanroeper van een web-API voegt een toegangstoken toe in de autorisatie-header van een HTTP-aanvraag.
Als u uw ASP.NET of ASP.NET Core web-API wilt beveiligen, valideert u het toegangstoken. Voor deze validatie gebruikt u de ASP.NET JWT-middleware. De validatie wordt uitgevoerd door de IdentityModel-extensies voor .NET-bibliotheek en niet door MSAL.NET.
Zie Beveiligde web-API voor meer informatie.
Web-API die een andere web-API aanroept namens een gebruiker
Om uw beveiligde web-API namens een gebruiker een andere web-API aan te roepen, moet uw app een token verkrijgen voor de downstream-web-API. Dergelijke aanroepen worden soms ook wel service-naar-service-aanroepen genoemd. Web-API's die andere web-API's aanroepen, moeten aangepaste cacheserialisatie bieden.
Zie Web-API die web-API’s aanroept voor meer informatie.
Daemon-app die een web-API aanroept in de naam van de daemon
Apps die langlopende processen bevatten of die werken zonder de interactie met een gebruiker, hebben ook een manier nodig om toegang te krijgen tot beveiligde web-API's. Een dergelijke app kan tokens verifiëren en ophalen met behulp van de identiteit van de app. De app bewijst zijn identiteit met behulp van een clientgeheim of certificaat.
U kunt dergelijke daemon-apps schrijven die een token verkrijgen voor de aanroepende app met behulp van de methoden voor het verkrijgen van clientreferenties in MSAL. Voor deze methoden is een clientgeheim vereist dat u toevoegt aan de app-registratie in Microsoft Entra-id. De app deelt het geheim vervolgens met de aangeroepen daemon. Voorbeelden van dergelijke geheimen zijn toepassingswachtwoorden, certificaatverklaringen en clientverklaringen.
Zie Daemon-toepassing die web-API's aanroept voor meer informatie.
Scenario's en ondersteunde verificatiestromen
U gebruikt verificatiestromen om de toepassingsscenario's te implementeren die tokens aanvragen. Er is geen een-op-een-toewijzing tussen toepassingsscenario's en verificatiestromen.
Scenario's waarbij tokens worden verkregen, worden ook toegewezen aan OAuth 2.0-verificatiestromen. Zie OAuth 2.0- en OpenID Connect-protocols on het Microsoft-identiteitsplatform voor meer informatie.
Scenario | Gedetailleerd scenario-overzicht | OAuth 2.0-stroom en -toekenning | Doelgroep |
---|---|---|---|
App van één pagina | Autorisatiecode met PKCE | Werk- of schoolaccounts, persoonlijke accounts en Azure Active Directory B2C (Azure AD B2C) | |
App van één pagina | Impliciet | Werk- of schoolaccounts, persoonlijke accounts en Azure Active Directory B2C (Azure AD B2C) | |
Web-app waarmee gebruikers worden aangemeld | Autorisatiecode | Werk- of schoolaccounts, persoonlijke accounts en Azure AD B2C | |
Web-app die web-API's aanroept | Autorisatiecode | Werk- of schoolaccounts, persoonlijke accounts en Azure AD B2C | |
Desktop-app die web-API's aanroept | Interactief met behulp van autorisatiecode met PKCE | Werk- of schoolaccounts, persoonlijke accounts en Azure AD B2C | |
Geïntegreerde Windows-verificatie | Werk- of schoolaccounts | ||
Wachtwoord van resource-eigenaar | Werk- of schoolaccounts en Azure AD B2C | ||
Browserloze app | Apparaatcode | Werk- of schoolaccounts, persoonlijke accounts maar niet Azure AD B2C | |
Mobiele app die web-API's aanroept | Interactief met behulp van autorisatiecode met PKCE | Werk- of schoolaccounts, persoonlijke accounts en Azure AD B2C | |
Wachtwoord van resource-eigenaar | Werk- of schoolaccounts en Azure AD B2C | ||
Daemon-app die web-API’s aanroept | Clientreferenties | Machtigingen voor alleen apps die geen gebruiker hebben en die alleen worden gebruikt in Microsoft Entra-organisaties | |
Web-API die web-API's aanroept | On-behalf-of | Werk- of schoolaccounts en persoonlijke accounts |
Scenario's en ondersteunde platforms en talen
Microsoft Authentication Libraries ondersteunen meerdere platforms:
- .NET
- .NET Framework
- Java
- JavaScript
- macOS
- Systeemeigen Android
- Systeemeigen iOS
- Node.js
- Python
- Windows 10/UWP
U kunt ook verschillende talen gebruiken om uw toepassingen te bouwen.
In de Windows-kolom van de volgende tabel, telkens wanneer .NET wordt vermeld, is .NET Framework ook mogelijk. De laatste wordt weggelaten om te voorkomen dat de tabel overzichtelijk wordt.
Scenario | Windows | Linux | Mac | iOS | Android |
---|---|---|---|---|---|
App van één pagina |
MSAL.js |
MSAL.js |
MSAL.js |
MSAL.js | MSAL.js |
App van één pagina |
MSAL.js |
MSAL.js |
MSAL.js |
MSAL.js | MSAL.js |
Web-app waarmee gebruikers worden aangemeld |
ASP.NET Core MSAL Node |
ASP.NET Core MSAL Node |
ASP.NET Core MSAL Node |
||
Web-app die web-API's aanroept |
ASP.NET Core + MSAL.NET MSAL Java Flask + MSAL Python MSAL Node |
ASP.NET Core + MSAL.NET MSAL Java Flask + MSAL Python MSAL Node |
ASP.NET Core + MSAL.NET MSAL Java Flask + MSAL Python MSAL Node |
||
Desktop-app die web-API's aanroept |
MSAL.NET MSAL Java MSAL Python MSAL Node |
MSAL.NET MSAL Java MSAL Python MSAL Node |
MSAL.NET MSAL Java MSAL Python MSAL Node MSAL.objc |
||
Mobiele app die web-API's aanroept |
MSAL.NET MSAL.NET | MSAL.objc | MSAL. Androïde | ||
Daemon-apps |
MSAL.NET MSAL Java MSAL Python MSAL Node |
MSAL.NET MSAL Java MSAL Python MSAL Node |
MSAL.NET MSAL Java MSAL Python MSAL Node |
||
Web-API die web-API's aanroept |
ASP.NET Core + MSAL.NET MSAL Java MSAL Python MSAL Node |
ASP.NET Core + MSAL.NET MSAL Java MSAL Python MSAL Node |
ASP.NET Core + MSAL.NET MSAL Java MSAL Python MSAL Node |
Zie Verificatiebibliotheken voor het Microsoft-identiteitsplatform voor meer informatie.
Volgende stappen
Raadpleeg de volgende bronnen voor meer informatie over verificatie: