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.

Scenario’s met gebruikers

Er zijn echter ook daemon-apps. In deze scenario's verkrijgen toepassingen tokens namens zichzelf zonder gebruiker.

Scenario’s met daemon-apps

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)
Verificatie van een toepassing met één pagina Impliciete toepassing met één pagina

Web-app waarmee een gebruiker wordt aangemeld

Een 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

Een web-app die web-API’s aanroept

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.

Een bureaubladtoepassing die een web-API aanroept

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.

Stroom voor apparaatcode

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.

Een mobiele app die een web-API aanroept

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. MSAL kan nu communiceren met brokers. Zie Brokers gebruiken voor Android en iOS voor meer informatie over brokers.

Zie Mobiele app die web-API’s aanroept voor meer informatie.

Notitie

Op een mobiele app die gebruikmaakt van MSAL.iOS, MSAL. Op Android of MSAL.NET op Xamarin kan app-beveiligingsbeleid worden toegepast. 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.

Een web-API die een andere web-API aanroept

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.

Een daemon-app die wordt aangeroepen door andere apps en API’s

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 met één pagina met verificatiecode App van één pagina Autorisatiecode met PKCE Werk- of schoolaccounts, persoonlijke accounts en Azure Active Directory B2C (Azure AD B2C)
App met één pagina met Implicit App van één pagina Impliciete Werk- of schoolaccounts, persoonlijke accounts en Azure Active Directory B2C (Azure AD B2C)
Web-app waarmee gebruikers worden aangemeld Web-app waarmee gebruikers worden aangemeld Autorisatiecode Werk- of schoolaccounts, persoonlijke accounts en Azure AD B2C
Web-app die web-API's aanroept Web-app die web-API's aanroept Autorisatiecode Werk- of schoolaccounts, persoonlijke accounts en Azure AD B2C
Bureaublad-app die web-API's aanroept 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
Toepassing zonder browser Apparaatcode Werk- of schoolaccounts, persoonlijke accounts maar niet Azure AD B2C
Mobiele app die web-API's aanroept 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 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 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
  • Xamarin.iOS
  • Xamarin.Android

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
Verificatie van app met één pagina
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
App van één pagina
App met één pagina met Implicit
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js
MSAL.js MSAL.js MSAL.js
MSAL.js
Web-app waarmee gebruikers worden aangemeld
Web-app die gebruikers aanmeldt
ASP.NET Core
ASP.NET Core MSAL Node
MSAL Node
ASP.NET Core
ASP.NET Core MSAL Node
MSAL Node
ASP.NET Core
ASP.NET Core MSAL Node
MSAL Node
Web-app die web-API's aanroept

Web-app die web-API's aanroept
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python MSAL Node
MSAL Node
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python MSAL Node
MSAL Node
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
Flask + MSAL Python MSAL Node
MSAL Node
Desktop-app die web-API's aanroept

Bureaublad-app die web-API's aanroeptStroom voor apparaatcode
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python
MSAL Node
MSAL Node
iOS/Objective C of swift MSAL.objc
Mobiele app die web-API's aanroept
Mobiele app die web-API's aanroept
UWP MSAL.NET Xamarin MSAL.NET iOS/Objective C of swift MSAL.objc Android MSAL. Android
Daemon-apps
Daemon-apps
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node
.NET MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node
.NETMSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node
Web-API die web-API's aanroept

Web-API die web-API's aanroept
ASP.NET Core
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node
.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node
.NET
ASP.NET Core + MSAL.NET MSAL Java
MSAL Java
MSAL Python
MSAL Python MSAL Node
MSAL Node

Zie Verificatiebibliotheken voor het Microsoft-identiteitsplatform voor meer informatie.

Volgende stappen

Raadpleeg de volgende bronnen voor meer informatie over verificatie: