Toepassingstypen voor het Microsoft-identiteitsplatform

Het Microsoft Identity Platform ondersteunt verificatie voor verschillende moderne app-architecturen, allemaal op basis van industriestandaard protocollen OAuth 2.0 of OpenID Verbinding maken. In dit artikel worden de typen apps beschreven die u kunt bouwen met behulp van het Microsoft Identity Platform, ongeacht uw voorkeurstaal of -platform. De informatie is ontworpen om u te helpen bij het begrijpen van scenario's op hoog niveau voordat u aan de slag gaat met de code in de toepassingsscenario's.

De basisbeginselen

U moet elke app registreren die gebruikmaakt van het Microsoft Identity Platform in het Microsoft Entra-beheercentrum App-registraties. Tijdens het app-registratieproces worden enkele waarden verzameld en toegewezen aan uw app:

  • Een toepassings-id (client-id) die de app op unieke wijze identificeert
  • Een omleidings-URI die u kunt gebruiken om reacties naar uw app terug te sturen
  • Enkele andere waarden specifiek voor het scenario, zoals ondersteunde accounttypen

Zie Een app registreren voor meer informatie.

Nadat de app is geregistreerd, communiceert de app met het Microsoft Identity Platform door aanvragen naar het eindpunt te verzenden. We bieden opensource-frameworks en -bibliotheken die de details van deze aanvragen verwerken. U hebt ook de mogelijkheid om de verificatielogica zelf te implementeren door aanvragen voor deze eindpunten te maken:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token

De app-typen die worden ondersteund door het Microsoft Identity Platform zijn;

  • App met één pagina (SPA)
  • Webapp
  • Web-API
  • Mobiele en systeemeigen apps
  • Service, daemon, script

Toepassingen met één pagina

Veel moderne apps hebben een spa-front-end (single-page app) die voornamelijk in JavaScript is geschreven, vaak met een framework zoals Angular, React of Vue. Het Microsoft Identity Platform ondersteunt deze apps met behulp van het OpenID-Verbinding maken-protocol voor verificatie en een van de twee typen autorisatietoestemmingen die zijn gedefinieerd door OAuth 2.0. De ondersteunde toekenningstypen zijn de impliciete toekenningsstroom OAuth 2.0 of de recentere OAuth 2.0-autorisatiecode + PKCE-stroom (zie hieronder).

In het stroomdiagram ziet u de stroom voor het verlenen van OAuth 2.0-autorisatiecode (met details over PKCE weggelaten), waarbij de app een code ontvangt van het Microsoft Identity Platform-eindpunt authorize en deze inwisselt voor een toegangstoken en een vernieuwingstoken met behulp van webaanvragen tussen sites. Voor SPA's is het toegangstoken 1 uur geldig en moet een andere code worden aangevraagd met behulp van het vernieuwingstoken. Naast het toegangstoken wordt ook doorgaans een id_token die de aangemelde gebruiker voor de clienttoepassing vertegenwoordigt aangevraagd, via dezelfde stroom en/of een afzonderlijke OpenID Connect-aanvraag (hier niet weergegeven).

Diagram met de OAuth 2.0-autorisatiecodestroom tussen een app met één pagina en het service-eindpunt van het beveiligingstoken.

Als u dit in actie wilt zien, raadpleegt u de quickstart: Gebruikers aanmelden in een app met één pagina (SPA) en de Microsoft Graph API aanroepen met behulp van JavaScript.

Autorisatiecodestroom versus impliciete stroom

De OAuth 2.0-autorisatiecodestroom is nu de aanbevolen manier om SPA's te bouwen om de compatibiliteit van uw app in Safari en andere privacybewuste browsers te garanderen. Na het verwijderen van cookies van derden en meer aandacht wordt het continue gebruik van de impliciete stroom niet aanbevolen.

Web-apps

Voor web-apps (.NET, PHP, Java, Ruby, Python, Node) waartoe de gebruiker toegang heeft via een browser, kunt u OpenID Connect gebruiken voor aanmelding van gebruikers. In OpenID Connect ontvangt de web-app een id-token. Een id-token is een beveiligingstoken waarmee de identiteit van de gebruiker wordt geverifieerd en informatie wordt verstrekt over de gebruiker in de vorm van claims:

// Partial raw ID token
abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...

// Partial content of a decoded ID token
{
    "name": "Casey Jensen",
    "email": "casey.jensen@onmicrosoft.com",
    "oid": "ab12cd34-effe-5678-9012-abcdef012345"
    ...
}

Meer informatie over verschillende typen tokens die in het Microsoft Identity Platform worden gebruikt, zijn beschikbaar in de verwijzing naar het toegangstoken en de verwijzing naar het id_token.

In webserver-apps voert de verificatiestroom voor aanmelding de volgende stappen op hoog niveau uit:

Toont de verificatiestroom van de web-app

U kunt de identiteit van de gebruiker controleren door het id-token te valideren met een openbare ondertekeningssleutel die wordt ontvangen van het Microsoft Identity Platform. Hiermee wordt ook een sessiecookie ingesteld waarmee de gebruiker bij volgende pagina-aanvragen kan worden geïdentificeerd.

Meer informatie door een ASP.NET Core-web-app te bouwen waarmee gebruikers worden aangemeld in de volgende reeks meerdelige zelfstudies

Naast eenvoudige aanmelding moet een webserver-app mogelijk toegang krijgen tot een andere webservice, zoals een REST-API (Representational State Transfer). In dit geval maakt de webserver-app gebruik van een gecombineerde OpenID Connect- en OAuth 2.0-stroom met behulp van de OAuth 2.0-autorisatiecodestroom. Raadpleeg ons codevoorbeeld voor meer informatie over dit scenario.

Web-API's

U kunt het Microsoft Identity Platform gebruiken om webservices te beveiligen, zoals de RESTful-web-API van uw app. Web-API's kunnen worden geïmplementeerd in tal van platformen en talen. Ze kunnen ook worden geïmplementeerd met behulp van HTTP-triggers in Azure Functions. In plaats van id-tokens en sessiecookies gebruikt een web-API een OAuth 2.0-toegangstoken om de gegevens 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, zoals dit:

GET /api/items HTTP/1.1
Host: www.mywebapi.com
Authorization: Bearer abC1dEf2Ghi3jkL4mNo5Pqr6stU7vWx8Yza9...
Accept: application/json
...

De web-API gebruikt het token om de identiteit van de API-aanroeper te verifiëren en om informatie over de aanroeper te extraheren uit de claims die in het toegangstoken zijn gecodeerd. Meer informatie over verschillende typen tokens die worden gebruikt in het Microsoft Identity Platform zijn beschikbaar in de verwijzing naar het toegangstoken en de id-tokenreferentie.

Met een web-API kunnen gebruikers zich aanmelden of afmelden voor specifieke functionaliteit of gegevens door machtigingen weer te geven, ook wel bereiken genoemd. Voor een aanroepende app om machtigingen voor een bereik te verkrijgen, moet de gebruiker toestemming geven voor het bereik tijdens een stroom. Het Microsoft Identity Platform vraagt de gebruiker om toestemming en registreert vervolgens machtigingen in alle toegangstokens die de web-API ontvangt. De web-API valideert de toegangstokens die het ontvangt voor elke aanroep en voert autorisatiecontroles uit.

Een web-API kan toegangstokens ontvangen van alle typen apps, waaronder webserver-apps, desktop- en mobiele apps, apps van één pagina, daemons aan serverzijde en zelfs andere web-API's. De stroom op hoog niveau voor een web-API ziet er als volgt uit:

Toont de verificatiestroom van de web-API

Als u wilt weten hoe u een web-API beveiligt met behulp van OAuth2-toegangstokens, bekijkt u de voorbeelden van web-API-code in de zelfstudie over beveiligde web-API's.

In veel gevallen moeten web-API's ook uitgaande aanvragen indienen bij andere web-API's downstream die worden beveiligd door het Microsoft Identity Platform. Hiervoor kunnen web-API's gebruikmaken van de stroom On-Behalf-Of (OBO), waarmee de web-API een binnenkomend toegangstoken kan uitwisselen voor een ander toegangstoken dat in uitgaande aanvragen kan worden gebruikt. Zie de Microsoft identity platform and OAuth 2.0 On-Behalf-Of flow (Microsoft Identity Platform- en OAuth 2.0 On-Behalf-Of-stroom) voor meer informatie.

Mobiele en systeemeigen apps

Door apparaten geïnstalleerde apps, zoals mobiele en desktop-apps, hebben vaak toegang nodig tot back-endservices of web-API's die gegevens opslaan en functies uitvoeren namens een gebruiker. Deze apps kunnen aanmelding en autorisatie toevoegen aan back-endservices met behulp van de OAuth 2.0-autorisatiecodestroom.

In deze stroom ontvangt de app een autorisatiecode van het Microsoft Identity Platform wanneer de gebruiker zich aanmeldt. De autorisatiecode vertegenwoordigt de machtiging van de app om back-endservices aan te roepen namens de gebruiker die is aangemeld. De app kan de autorisatiecode op de achtergrond uitwisselen voor een OAuth 2.0-toegangstoken en een vernieuwingstoken. De app kan het toegangstoken gebruiken om te verifiëren bij web-API's in HTTP-aanvragen en het vernieuwingstoken gebruiken om nieuwe toegangstokens op te halen wanneer oudere toegangstokens verlopen.

Toont de verificatiestroom van de systeemeigen app

Notitie

Als de toepassing gebruikmaakt van de standaardsysteemwebweergave, controleert u de informatie over de functionaliteit 'Mijn aanmelding bevestigen' en foutcode AADSTS50199 in Microsoft Entra-verificatie- en autorisatiefoutcodes.

Server, daemons en scripts

Apps die langlopende processen bevatten of die werken zonder de interactie met een gebruiker, hebben een manier nodig om toegang te krijgen tot beveiligde resources, zoals web-API's. Deze apps kunnen tokens verifiëren en verkrijgen door de identiteit van de app (in plaats van een gedelegeerde gebruikersidentiteit) met de referentiestroom van de OAuth 2.0-client te gebruiken. U kunt de identiteit van de app bewijzen met behulp van een clientgeheim of certificaat. Zie de .NET daemon-consoletoepassing met behulp van het Microsoft Identity Platform voor meer informatie.

In deze stroom communiceert de app rechtstreeks met het /token-eindpunt om toegang te krijgen:

Toont de verificatiestroom van de daemon-app

Als u een daemon-app wilt bouwen, zie de client credentials documentation (documentatie over clientreferenties) of probeert u een .NET sample app (.NET-sample-app).

Zie ook

Nu u bekend bent met de typen toepassingen die worden ondersteund door het Microsoft Identity Platform, moet u meer leren over OAuth 2.0 en OpenID Connect om inzicht te krijgen in de protocolonderdelen die door de verschillende scenario's worden gebruikt.