Cyber Security Academy · Les

OpenID Connect (OIDC)

Identiteit toevoegen boven op OAuth

Les 2 van 413 stappen

OpenID Connect (OIDC) is een gratis Cyber Security Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cyber Security Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cyber Security Academy bevat in totaal 4 lessen.

Waarom OIDC bestaat

OpenID Connect is een dunne identiteitslaag boven op OAuth 2.0. OAuth beantwoordt de vraag wat kan deze app doen; OIDC beantwoordt de vraag wie is de gebruiker.

  • Het standaardiseert hoe clients gebruikers authenticeren en geverifieerde identiteitsclaims ontvangen.
  • Het introduceert het ID-token als een cryptografisch ondertekende authenticatiebewering.

Vóór OIDC gebruikten ontwikkelaars OAuth-toegangstokens ten onrechte voor inloggen, wat leidde tot problemen met misleide tussenpersonen en identiteitsimitatie.

Het ID-token (een JWT)

Het kenmerkende OIDC-object is het ID-token, een ondertekende JWT die de authenticatiegebeurtenis beschrijft.

  • Het bevat claims over wie zich heeft aangemeld en wanneer.
  • Het is bedoeld voor de client en niet voor de resourceserver.

Stuur een ID-token nooit naar een API als toegangsbewijs en accepteer het nooit zonder de handtekening en claims te valideren.

Header.Payload.Signature
{
  "iss": "https://idp.example",
  "sub": "248289761001",
  "aud": "app123",
  "exp": 1718000000,
  "iat": 1717996400,
  "nonce": "n-abc"
}

Belangrijkste claims van ID-tokens

Een ID-token valideren betekent specifieke claims controleren en niet alleen de handtekening.

  • De iss-uitgever moet overeenkomen met de verwachte IdP.
  • Het aud-publiek moet je client_id bevatten.
  • Het exp / iat-token mag niet verlopen zijn en moet onlangs zijn uitgegeven.
  • sub is een stabiele, unieke gebruikers-ID.
  • nonce moet overeenkomen met de waarde die je client heeft verzonden.

De OIDC-authenticatiestroom

OIDC hergebruikt de Authorization Code-stroom, maar voegt het openid-toegangsbereik en een nonce toe.

  • De client vraagt het toegangsbereik openid op, plus eventueel profile en email.
  • Het tokeneindpunt geeft naast het toegangstoken ook een ID-token terug.
  • De nonce koppelt het ID-token aan het oorspronkelijke verzoek en voorkomt herhaling.
GET /authorize?response_type=code
  &scope=openid profile email
  &client_id=app123
  &redirect_uri=https://app.example/cb
  &state=xyz&nonce=n-abc

De handtekening valideren met JWKS

OIDC-providers publiceren hun ondertekeningssleutels bij een JWKS-eindpunt, dat vindbaar is via het configuratiedocument op het bekende pad.

  • Haal sleutels op via jwks_uri en laat de header kid van het token overeenkomen.
  • Verifieer met het vermelde asymmetrische algoritme (RS256, ES256).

Wijs het algoritme none af en vertrouw nooit op een algoritmewaarde die uitsluitend door het token wordt aangeleverd.

GET /.well-known/openid-configuration
  -> { "jwks_uri": "https://idp.example/jwks", ... }
GET /jwks
  -> { "keys": [ { "kid": "k1", "kty": "RSA", ... } ] }

De nonce beschermt tegen herhaling

De nonce is voor ID-tokens wat state is voor de omleiding: een eenmalige waarde die het antwoord aan het verzoek koppelt.

  • De client genereert een willekeurige nonce en slaat die op in de sessie.
  • De IdP neemt deze op in het ID-token.
  • Bij ontvangst controleert de client of de nonce overeenkomt en nog niet eerder is gebruikt.

Zo worden herhaling van tokens en het invoegen van een token dat voor een andere sessie is uitgegeven geblokkeerd.

Het UserInfo-eindpunt

Voor aanvullende profielgegevens naast het ID-token definieert OIDC het UserInfo-eindpunt.

  • De client roept dit aan met het toegangstoken, niet met het ID-token.
  • Het geeft claims terug zoals naam, e-mailadres en afbeelding voor de geauthenticeerde gebruiker.

Controleer altijd of de teruggegeven sub overeenkomt met de sub in het ID-token om claimvervanging te voorkomen.

GET /userinfo
Authorization: Bearer <access_token>

-> { "sub": "248289761001", "email": "u@example.com" }

Ontdekking en metagegevens

OIDC standaardiseert ontdekking, zodat clients eindpunten en ondersteunde functies automatisch kunnen configureren.

  • Het document /.well-known/openid-configuration vermeldt eindpunten, ondersteunde toegangsbereiken en algoritmen.
  • Leg de uitgever vast of valideer die; volg niet blindelings ontdekkingsgegevens van een door een aanvaller beheerde host.

Ontdekking vereenvoudigt de integratie, maar de uitgever blijft een vertrouwensanker dat je moet verifiëren.

Uitloggen via frontchannel versus backchannel

Het beëindigen van sessies in gekoppelde apps wordt geregeld door OIDC-specificaties voor uitloggen.

  • Uitloggen via frontchannel gebruikt browseromleidingen en iframes om elke vertrouwende partij af te melden.
  • Uitloggen via backchannel verstuurt uitlogtokens van server naar server. Dit is betrouwbaarder, maar vereist eindpunten.

Zonder gecoördineerd uitloggen kan een gebruiker zich bij één app afmelden terwijl die bij andere apps ingelogd blijft. Dat vormt een reëel risico voor sessiebeheer.

Veelvoorkomende OIDC-valkuilen

Identiteitsfouten ontstaan vaak doordat validatiestappen worden overgeslagen.

  • Tokens accepteren zonder aud te controleren, terwijl het token voor een andere client bedoeld is.
  • iss negeren, waardoor nabootsing van een IdP mogelijk wordt.
  • De handtekening niet valideren of alg: none accepteren.
  • ID-tokens en toegangstokens door elkaar halen.
  • Noncecontroles overslaan, waardoor herhaling mogelijk wordt.
Validation checklist:
  [ ] iss == expected
  [ ] aud contains client_id
  [ ] exp not passed, iat sane
  [ ] signature verified via JWKS
  [ ] nonce matches session

OIDC versus gewone OAuth voor inloggen

Als je doel inloggen is, gebruik dan OIDC en geen pure OAuth.

  • OAuth-toegangstokens zijn voor de client ondoorzichtig en bewijzen niets over de identiteit.
  • Een toegangstoken kan geldig zijn voor een andere gebruiker of app. Als je het voor inloggen gebruikt, kan dat tot identiteitsimitatie leiden.
  • OIDC-ID-tokens zijn expliciet aan een doelgroep gebonden identiteitsbeweringen.

Dit onderscheid voorkomt de klassieke authenticatiefout door een misleide tussenpersoon.

Snelle controle: ID-tokenvalidatie

Kies de belangrijkste validatiestap voor een vertrouwende partij die een ID-token gebruikt.

Samenvatting: OpenID Connect

Belangrijkste punten:

  • OIDC voegt een identiteitslaag toe aan OAuth 2.0; het ID-token is een ondertekende JWT die authenticatie bewijst.
  • Valideer altijd iss, aud, exp, handtekening (via JWKS) en nonce.
  • ID-tokens zijn voor de client; toegangstokens zijn voor API's. Verwissel hun rollen nooit.
  • Gebruik nonce tegen herhaling en state tegen CSRF.
  • Gebruik OIDC en geen pure OAuth wanneer je gebruikers moet authenticeren.
Gratis beginnen

Leer Cyber Security Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
303

Veelgestelde vragen

Is de les “OpenID Connect (OIDC)” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Cyber Security Academy, waaronder “OpenID Connect (OIDC)”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Cyber Security Academy bevat in totaal 4 lessen.

Wat leer ik in “OpenID Connect (OIDC)”?

Identiteit toevoegen boven op OAuth Je oefent met Cyber Security Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cyber Security Academy te beginnen?

Ervaring vooraf is niet nodig. Cyber Security Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “OpenID Connect (OIDC)”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cyber Security Academy?

Ja. Elke les over Cyber Security Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. OAuth 2.0-flows
  2. OpenID Connect (OIDC)
  3. SAML en federation
  4. Tokenaanvallen en hardening
← Terug naar Cyber Security Academy