Wat is OAuth?

Een mechanisme waarmee gebruikers een andere applicatie (de client) beperkte toegang tot hun resources geven zonder hun wachtwoord af te staan (gedelegeerde autorisatie). Veel gebruikt wordt OAuth 2.0. Het kent vier rollen: de resource-eigenaar (de gebruiker), de client, de autorisatieserver, die de toestemming van de gebruiker verkrijgt en toegangstokens uitgeeft, en de resourceserver, die tokens controleert en resources teruggeeft. OAuth zelf is een mechanisme voor autorisatie; voor inloggen (authenticatie) wordt OpenID Connect gebruikt, dat ID-tokens toevoegt.

Japanse benaming: OAuth

“OAuth” komt voor in 2 oefenvragen uit 1 onderwerpen, bijv. Basis van webtechnologie.

Vakgebied: Basis van webtechnologie

Nu oefenen: vragen over OAuth

Een app voor het afdrukken van foto's leest, met toestemming van de gebruiker, de foto's van die gebruiker uit de foto-opslagdienst van een ander bedrijf. Welke rol in OAuth 2.0 toont de gebruiker een scherm dat om toestemming vraagt en geeft, als de gebruiker instemt, een toegangstoken (access token) aan de app uit?

  1. AResourceserver
  2. BAutorisatieserver
  3. CClient
Antwoord en toelichting tonen

Antwoord: B. Autorisatieserver

OAuth 2.0 kent vier rollen: de resource-eigenaar (de gebruiker), de client (de app voor het afdrukken van foto's), de autorisatieserver en de resourceserver (de API die de foto's teruggeeft). De autorisatieserver controleert de gebruiker en verkrijgt diens toestemming, en geeft de client vervolgens een toegangstoken dat beperkt is in reikwijdte (scope) en geldigheidsduur. De client roept met het token de API van de resourceserver aan, en de resourceserver controleert het token en geeft de foto's terug. De gebruiker hoeft het wachtwoord van de foto-opslagdienst niet aan de app te geven en kan de toestemming later ook intrekken.

Welke beschrijving van de relatie tussen OAuth 2.0 en OpenID Connect is juist?

  1. AOAuth 2.0 is een mechanisme om toestemming voor toegang tot resources te delegeren (autorisatie), en OpenID Connect bouwt daarop voort door een ID-token toe te voegen dat het resultaat van de authenticatie doorgeeft, zodat het voor inloggen kan worden gebruikt
  2. BOAuth 2.0 is een mechanisme om het resultaat van de authenticatie van gebruikers door te geven, en OpenID Connect gebruikt het niet maar stuurt het wachtwoord van de gebruiker rechtstreeks naar elke gekoppelde dienst om het te controleren
  3. COpenID Connect is een protocol voor het versleutelen van HTTP-communicatie en wordt in plaats van TLS gebruikt bij het verzenden van inlogschermen
Antwoord en toelichting tonen

Antwoord: A. OAuth 2.0 is een mechanisme om toestemming voor toegang tot resources te delegeren (autorisatie), en OpenID Connect bouwt daarop voort door een ID-token toe te voegen dat het resultaat van de authenticatie doorgeeft, zodat het voor inloggen kan worden gebruikt

Een toegangstoken van OAuth 2.0 staat voor een toestemming, met de betekenis „je mag resources binnen deze scope gebruiken”, en is niet ontworpen om te controleren wie er heeft ingelogd. OpenID Connect voegt aan de flow van OAuth 2.0 een ID-token toe in de vorm van een ondertekende JWT. Het ID-token bevat onder meer de uitgever, de identificatie van de gebruiker, de beoogde client en de vervaltijd, en de client controleert de handtekening en de inhoud om te weten wie de gebruiker is. Dit mechanisme wordt gebruikt voor functies waarmee gebruikers inloggen met een account van een andere dienst, en voor single sign-on.

“OAuth” in de toelichting

Vragen met “OAuth” (2)

  1. Een app voor het afdrukken van foto's leest, met toestemming van de gebruiker, de foto's van die gebruiker uit de foto-opslagdienst van een ander bedrijf. Welke rol in OAuth 2.0 toont de gebruiker een scherm dat om toestemming vraagt en geeft, als de gebruiker instemt, een toegangstoken (access token) aan de app uit?
  2. Welke beschrijving van de relatie tussen OAuth 2.0 en OpenID Connect is juist?

Verwante termen

JWT (JSON Web Token) Cookie (HTTP-cookie) CORS (cross-origin resource sharing) DOM (Document Object Model) Event loop HTTP (Hypertext Transfer Protocol) HTTP-methode HTTP-statuscode JSON (JavaScript Object Notation) REST-API

Naar de woordenlijst