Logo Logo
GitHub Designed by Logto

Wat is een OAuth 2.0 grant?

Een OAuth 2.0 grant is een autorisatieproces dat een Client in staat stelt om een Toegangstoken (Access token) aan te vragen bij een Autorisatieserver (Authorization server) . Je kunt ook andere termen tegenkomen die met dit concept te maken hebben, dus laten we deze verduidelijken voordat we dieper ingaan:

Omwille van de duidelijkheid zullen we de termen die hierboven worden vermeld, consequent gebruiken in dit artikel.

Het hoog-niveau proces van een OAuth 2.0 grant is vrij eenvoudig:

Nadat de client het toegangstoken ontvangt, kan het dit gebruiken om toegang te krijgen tot beveiligde bronnen (bijv. API’s) namens een gebruiker of zichzelf.

Let op dat afhankelijk van de specifieke grant, de client en de autorisatieserver aanvullende informatie kunnen uitwisselen en meer stappen kunnen omvatten in het proces. Bijvoorbeeld, de autorisatiecodegrant omvat gebruikersauthenticatie en autorisatie, codegeneratie en uitwisseling van token.

Verschillende OAuth 2.0 grants

De basis OAuth 2.0 specificatie definieert vier grants die clients kunnen gebruiken om toegangstokens te verkrijgen:

  1. Autorisatiecodegrant : De meest veilige en aanbevolen grant voor de meeste toepassingen. Het is verplicht om Bewijs Sleutel voor Code Uitwisseling (Proof Key for Code Exchange, PKCE) te gebruiken voor alle clients in OAuth 2.1 .
  2. Impliciete grant : Een vereenvoudigde grant die is verouderd in OAuth 2.1 vanwege beveiligingsproblemen.
  3. Resource eigenaar wachtwoordreferenties (ROPC) grant : Een grant waarbij de gebruikersgegevens rechtstreeks worden uitgewisseld voor een toegangstoken. Het wordt niet aanbevolen voor de meeste toepassingen vanwege veiligheidsrisico’s.
  4. Clientreferentiesgrant : Een grant gebruikt door Vertrouwelijke clients om een toegangstoken te verkrijgen zonder gebruikersbetrokkenheid.

Naarmate de industrie evolueert, worden impliciete en ROPC-grants uitgefaseerd ten gunste van veiligere en gestandaardiseerde flows. Voor nieuwe toepassingen zijn de keuzes eenvoudig:

Andere OAuth 2.0 grants

Naast de vier basisgrants zijn er andere extensies die nieuwe grants definiëren voor specifieke gebruikssituaties. Bijvoorbeeld:

  • Device autorisatiegrant is een grant ontworpen voor apparaten met beperkte invoermogelijkheden, zoals smart tv’s en IoT-apparaten.
  • Hybride flow is een OpenID Connect grant die de autorisatiecodegrant combineert met de impliciete grant.

Grants in OpenID Connect (OIDC)

In OpenID Connect (OIDC) , wordt het concept van grants uitgebreid om ID tokens te omvatten die gebruikersidentiteitsinformatie vertegenwoordigen naast toegangstokens. OIDC breidt twee OAuth 2.0 grants uit (autorisatiecode en impliciet) om ID tokens op te nemen, en introduceert een nieuwe grant genaamd de hybride flow die beide combineert.

Net als bij OAuth 2.0 wordt aanbevolen om de autorisatiecodegrant met PKCE in OIDC te gebruiken voor gebruikersauthenticatie en autorisatie.

Intussen, aangezien OIDC bovenop OAuth 2.0 is gebouwd, kunnen andere grants zoals de clientreferentiesgrant nog steeds worden gebruikt op dezelfde autorisatieserver, zolang de server ze ondersteunt.

Zie ook