OpenID Connect integratie
OpenID Connect is een standaard gefinaliseerd in februari 2014, waarbij er een identity laag bovenop het REST-gebaseerde oAuth2.0 protocol wordt toegevoegd. Dit laat toe om de identiteit van een gebruiker die zich op de ACM IDP authenticeerde te ontvangen. De toepassing ontvangt de identiteit via een JWT token en kan de integriteit hiervan valideren.
OpenID Connect laat clients van meerdere types toe, waaronder web-toepassingen, mobiele toepassingen (native apps) en Javascript Clients (Single Page Applications).
Onderstaand overzicht geeft een high-level overzicht van de flow.
-
Hierbij surft de gebruiker naar de Client en wordt hij naar de ACM IDP verwezen voor het ophalen van een Authorization Code.
-
Om een Authorization Code te ontvangen dient de gebruiker zich te authenticeren bij de ACM IDP (of eventueel zelfs bij upstream IDP’s zoals de CSAM IDP). De ACM IDP beschikt vanuit het gebruikersbeheer over extra informatie van de gebruiker (werkrelatie, rollen-informatie, …). De ACM IDP beschikt ook over de mogelijkheid om externe bronnen te consulteren voor de verrijking van de gebruikerssessie (wettelijk vertegenwoordiger, BTB, SSM-mandaten, Mahis-mandaten, …). De Authorization Code wordt na een succesvolle authenticatie naar de Client gestuurd.
-
Op basis van deze Authorization Code kan de Client een ID-token opvragen bij de ACM IDP: dit is een (signed) JWT-token met daarin claims met de relevante identiteitsgegevens van de gebruiker.
De voor- en nadelen van OpenID Connect kan u in onderstaande oplijsting terugvinden.
Eigenschap | Toelichting | |
---|---|---|
+ | ideaal voor toepassingen in de cloud | Er zijn geen restricties waar de toepassing gehost kan worden. |
+ | eenvoudige integratie | De uit te wisselen informatie voor een integratie is beperkt en er zijn bvb. geen nieuwe certificaten vereist. |
+ | geen periodieke uitwisseling van certificaten | Aangezien er geen certificaten uitgewisseld worden, is er in tegenstelling tot SAML dus ook geen periodieke vernieuwing van deze certificaten vereist. |
+ | ondersteuning voor mobiele toepassingen | Dit protocol is bruikbaar voor mobiele toepassingen (apps), waarbij de app zelf optreedt als Client (het gebruik van PKCE valt hierbij aan te bevelen). |
- | datastroom vanuit de toepassing | De toepassing moet het (publiek toegankelijke) token endpoint kunnen bereiken: dit vereist langs toepassingszijde een uitgaande datastroom of een uitgaande forward proxy setup (bij voorkeur). |