OpenID Connect (OIDC)
OpenID Connect (OIDC) is een authenticatielaag bovenop OAuth 2.0. Waar OAuth toegang regelt tot API’s (autorisatie), voegt OIDC daar authenticatie aan toe — oftewel: wie is de gebruiker?
Met OIDC kan een applicatie (Relying Party) betrouwbaar de identiteit van een gebruiker vaststellen op basis van een login bij een Identity Provider (IdP), zoals een overheidssysteem of commerciële aanbieder.
Hoe werkt OIDC?
De flow van OIDC lijkt sterk op OAuth, maar voegt o.a. deze elementen toe:
- ID Token: een JWT (JSON Web Token) met gebruikersinfo
- UserInfo endpoint: een optionele API om aanvullende gegevens op te halen
- Standard scopes: zoals
openid
,profile
,email
Een typische OIDC flow verloopt als volgt:
- Gebruiker wordt doorgestuurd naar de IdP.
- Gebruiker logt in en geeft toestemming.
- De app ontvangt een
code
, wisselt deze in voor een access token én een ID token. - De app valideert het ID token en weet wie de gebruiker is.
OIDC in Nederland: NL GOV OIDC-profiel
Binnen de Nederlandse overheid is er een specifiek profiel ontwikkeld: het NL GOV OpenID Connect profiel. Dit profiel specificeert hoe OIDC veilig en interoperabel gebruikt kan worden voor publieke dienstverlening.
Belangrijke kenmerken:
- Verplichte ondersteuning voor
authorization_code
flow met PKCE - Gebruik van
id_token_hint
enlogin_hint
voor login-context - Verplichte
sub
enacr
claims in ID Token - Beveiligingsmaatregelen zoals signed requests en TLS
🔗 NL GOV OIDC profiel (GitHub)
Officiële standaarden
- OpenID Connect Core 1.0
- OpenID Connect Discovery
- OpenID Connect Dynamic Client Registration
- OAuth 2.0 (RFC 6749)
Wanneer gebruik je OIDC?
OIDC is ideaal voor:
- Single Sign-On (SSO) tussen meerdere diensten
- Federatieve login (bijv. met DigiD of eHerkenning)
- Veilige identificatie van gebruikers op basis van standaarden
- Integraties in moderne web- en mobiele applicaties
Niet geschikt voor:
- Pure autorisatie zonder gebruikersidentiteit → gebruik dan alleen OAuth 2.0