Beveiligingstokens

Een gecentraliseerde id-provider is vooral handig voor apps met wereldwijde gebruikers die zich niet noodzakelijkerwijs aanmelden vanuit het bedrijfsnetwerk. Het Microsoft Identity Platform verifieert gebruikers en biedt beveiligingstokens, zoals toegangstokens, vernieuwingstokens en id-tokens. Met beveiligingstokens heeft een clienttoepassing toegang tot beveiligde resources op een resourceserver.

Toegangstoken: een toegangstoken is een beveiligingstoken dat is uitgegeven door een autorisatieserver als onderdeel van een OAuth 2.0-stroom . Het bevat informatie over de gebruiker en de resource waarvoor het token is bedoeld. De informatie kan worden gebruikt voor toegang tot web-API's en andere beveiligde resources. Toegangstokens worden gevalideerd door resources om toegang te verlenen tot een client-app. Zie Toegangstokens voor meer informatie over de problemen met toegangstokens van het Microsoft-identiteitsplatform.

Vernieuwingstoken: omdat toegangstokens slechts een korte periode geldig zijn, geven autorisatieservers soms een vernieuwingstoken uit op hetzelfde moment dat het toegangstoken wordt uitgegeven. De clienttoepassing kan dit vernieuwingstoken vervolgens indien nodig inwisselen voor een nieuw toegangstoken. Zie Tokens vernieuwen voor meer informatie over hoe het Microsoft Identity Platform vernieuwingstokens gebruikt om machtigingen in te trekken.

Id-token: id-tokens worden naar de clienttoepassing verzonden als onderdeel van een OpenID Connect-stroom . Ze kunnen worden verzonden naast of in plaats van een toegangstoken. Id-tokens worden door de client gebruikt om de gebruiker te verifiëren. Zie Id-tokens voor meer informatie over hoe het Microsoft Identity Platform id-tokens uitgeeft.

Veel bedrijfstoepassingen gebruiken SAML om gebruikers te verifiëren. Zie Azure Active Directory SAML-tokenreferentie voor meer informatie over SAML-asserties.

Beveiligingstokens valideren

Het is aan de app waarvoor het token is gegenereerd, de web-app die de gebruiker heeft aangemeld of de web-API die wordt aangeroepen om het token te valideren. Het token wordt door de autorisatieserver ondertekend met een persoonlijke sleutel. De autorisatieserver publiceert de bijbehorende openbare sleutel. Om een token te valideren, controleert de app de handtekening met behulp van de openbare sleutel van de autorisatieserver om te valideren dat de handtekening is gemaakt met behulp van de persoonlijke sleutel.

Tokens zijn slechts een beperkte tijd geldig, dus de autorisatieserver biedt vaak een paar tokens;

  • Een toegangstoken, dat toegang krijgt tot de toepassing of beveiligde resource.
  • Een vernieuwingstoken, dat wordt gebruikt om het toegangstoken te vernieuwen wanneer het toegangstoken bijna verloopt.

Toegangstokens worden als bearer-token in de Authorization header doorgegeven aan een web-API. Een app kan een vernieuwingstoken leveren aan de autorisatieserver. Als de gebruikerstoegang tot de app niet is ingetrokken, krijgt deze een nieuw toegangstoken en een nieuw vernieuwingstoken terug. Dit is hoe het scenario van iemand die de onderneming verlaat, wordt afgehandeld. Wanneer de autorisatieserver het vernieuwingstoken ontvangt, geeft deze geen ander geldig toegangstoken uit als de gebruiker niet meer is geautoriseerd.

JSON-webtokens en -claims

Het Microsoft Identity Platform implementeert beveiligingstokens als JSON-webtokens (JWT's) die claims bevatten. Omdat JWT's worden gebruikt als beveiligingstokens, wordt deze vorm van verificatie ook wel JWT-verificatie genoemd.

Een claim biedt asserties over één entiteit, zoals een clienttoepassing of resource-eigenaar, aan een andere entiteit, zoals een resourceserver. Een claim kan ook worden aangeduid als een JWT-claim of een JSON-webtokenclaim.

Claims zijn naam- of waardeparen die feiten over het tokenonderwerp doorgeven. Een claim kan bijvoorbeeld feiten bevatten over de beveiligingsprincipal die is geverifieerd door de autorisatieserver. De claims die aanwezig zijn in een specifiek token, zijn afhankelijk van veel dingen, zoals het type token, het type referentie dat wordt gebruikt om het onderwerp te verifiëren en de configuratie van de toepassing.

Toepassingen kunnen claims gebruiken voor verschillende taken, zoals:

  • Valideer het token.
  • Identificeer de tenant van het tokenonderwerp.
  • Gebruikersgegevens weergeven.
  • Bepaal de autorisatie van het onderwerp.

Een claim bestaat uit sleutel-waardeparen die informatie bieden, zoals de:

  • Beveiligingstokenserver die het token heeft gegenereerd.
  • Datum waarop het token is gegenereerd.
  • Onderwerp (zoals de gebruiker, maar geen daemons).
  • Doelgroep: de app waarvoor het token is gegenereerd.
  • App (de client) die om het token heeft gevraagd. Voor web-apps kan deze app hetzelfde zijn als de doelgroep.

Zie Toegangstokens en id-tokens voor meer informatie over hoe het Microsoft Identity Platform tokens en claimgegevens implementeert.

Hoe elke stroom tokens en codes verzendt

Afhankelijk van hoe uw client is gebouwd, kan deze een (of meer) van de verificatiestromen gebruiken die worden ondersteund door het Microsoft Identity Platform. Deze stromen kunnen verschillende tokens (id-tokens, vernieuwingstokens, toegangstokens) en autorisatiecodes produceren. Ze hebben verschillende tokens nodig om ze te laten werken. Deze tabel bevat een overzicht.

Stroom Vereist Id-token Toegangstoken Token vernieuwen Autorisatiecode
Stroom voor autorisatiecode x x x x
Impliciete stroom x x
Hybride OIDC-stroom x x
Inwisseling van token vernieuwen Token vernieuwen x x x
Namens-stroom Toegangstoken x x x
Clientreferenties x (alleen app)

Tokens die zijn uitgegeven via de impliciete modus, hebben een lengtebeperking omdat ze worden doorgestuurd naar de browser via de URL, waarbij response_mode of fragmentisquery. Sommige browsers hebben een limiet voor de grootte van de URL die in de browserbalk kan worden geplaatst en mislukken wanneer deze te lang is. Als gevolg hiervan hebben groups deze tokens geen of-claims wids .

Volgende stappen

Zie de volgende artikelen voor meer informatie over verificatie en autorisatie in het Microsoft identity platform: