Wat is Keycloak?
Keycloak is een open-source identity en access management (IAM) platform dat toegangsbeheer voor moderne applicaties regelt. Het is in 2014 begonnen als een Red Hat-project en sinds april 2023 gedoneerd aan de Cloud Native Computing Foundation (CNCF), waar het de status van incubating project heeft. Daarmee staat Keycloak in hetzelfde rijtje als Kubernetes, Prometheus en gRPC — de fundering onder cloud-native software.
De kerngedachte: in plaats van dat elke applicatie zijn eigen gebruikersbeheer, wachtwoordreset, multi-factor authenticatie en autorisatie bouwt, doe je dat één keer centraal in Keycloak. Je applicaties praten via standaardprotocollen (OpenID Connect, OAuth 2.0 en SAML 2.0) met die centrale identity-laag. Het resultaat: Single Sign-On, consistente authenticatie en een veel kleinere security-footprint per applicatie.
Identity is geen feature van je applicatie. Het is infrastructuur. Keycloak maakt die scheiding mogelijk en geeft je controle over wie wat mag — zonder dat je voor elke applicatie het wiel opnieuw uitvindt.
Waarom centraal identity-beheer belangrijk is
De gemiddelde MKB-organisatie heeft tussen de tien en twintig applicaties die elk hun eigen inlogscherm hebben: het CRM, het ERP, de boekhouding, de interne tools, het klantportaal, de webshop, het ticketsysteem, de HR-software. Voor de gebruiker betekent dat tien tot twintig wachtwoorden om te onthouden — en in de praktijk dus één wachtwoord dat overal opnieuw wordt gebruikt. Voor IT betekent het dat een vertrekkende medewerker in tien tot twintig systemen moet worden uitgeschakeld. Bij elk systeem dat wordt vergeten ontstaat een securityrisico.
Daar bovenop komen regelgevingseisen. De AVG verlangt dat je weet wie toegang heeft tot persoonsgegevens. De NIS2-richtlijn stelt expliciete eisen aan toegangsbeheer voor essentiële en belangrijke entiteiten. ISO 27001 vraagt om gedocumenteerd identity- en access-management. Stuk voor stuk wijzen ze op hetzelfde: gedecentraliseerd toegangsbeheer is in 2026 niet meer houdbaar.
Centrale identity-management lost dat op. Een gebruiker logt één keer in, krijgt toegang tot de applicaties waarvoor hij geautoriseerd is, en bij vertrek wordt zijn account op één plek uitgeschakeld. Een audit-trail laat zien wie wanneer waar bij was. Multi-factor authenticatie hoef je maar één keer goed in te richten in plaats van per applicatie.
De kernprotocollen: OpenID Connect, OAuth 2.0 en SAML 2.0
Wat Keycloak werkt maakt: het ondersteunt drie protocollen die samen vrijwel het hele veld van authenticatie en autorisatie afdekken.
- OAuth 2.0 — een framework voor delegated authorization. Een gebruiker geeft een applicatie toestemming om namens hem iets te doen (bijvoorbeeld: lees mijn agenda) zonder zijn wachtwoord af te geven. Standaard sinds 2012, beheerd door de IETF (RFC 6749).
- OpenID Connect (OIDC) — een authenticatielaag bovenop OAuth 2.0. Voegt toe: "wie is deze gebruiker?". Beheerd door de OpenID Foundation. Dit is de moderne standaard voor "inloggen met..." en wat Google, Microsoft en Apple onder de motorkap gebruiken.
- SAML 2.0 — een oudere XML-gebaseerde standaard, dominant in enterprise- en overheidsomgevingen. Veel SaaS-leveranciers als Salesforce, SAP SuccessFactors en Microsoft Entra ID ondersteunen SAML voor zakelijke SSO.
Keycloak ondersteunt alle drie naast elkaar. Voor een modern Laravel- of Node.js-platform gebruik je OpenID Connect; voor de koppeling met een enterprise-IdP of SaaS-leverancier vaak SAML. Dat je niet hoeft te kiezen tussen "wel of geen modern protocol" is een van de redenen waarom Keycloak in heterogene IT-landschappen vaak de logische keuze is.
Kernfunctionaliteiten
De gepubliceerde Keycloak Server Administration Guide beschrijft een breed pakket aan functies. De voor bedrijven belangrijkste:
Single Sign-On (SSO)
Eén keer inloggen, toegang tot alle gekoppelde applicaties. De gebruiker authenticeert bij Keycloak, krijgt een sessie en wordt vervolgens automatisch herkend door elke applicatie die op dezelfde Keycloak-realm aangesloten is. Bij uitloggen sluit Keycloak optioneel alle sessies tegelijk (Single Log-Out).
Multi-factor authenticatie (MFA)
Keycloak ondersteunt out-of-the-box TOTP (Google Authenticator, Authy), WebAuthn en passkeys, hardware-tokens (YubiKey en vergelijkbaar) en SMS/e-mail als tweede factor. Beleid kun je per realm, per groep of per applicatie configureren — bijvoorbeeld "medewerkers verplicht WebAuthn, klanten optioneel TOTP". Voor passwordless-scenario's zie ons artikel over passkeys en passwordless authenticatie.
User federation
Heb je al een Active Directory of LDAP-server? Keycloak kan daar als "voorkant" voor draaien. Gebruikers blijven in AD/LDAP staan, maar authenticeren via Keycloak — handig in transitietrajecten waarin je niet alles tegelijk wilt migreren. Wachtwoordwijzigingen kunnen bidirectioneel gesynchroniseerd worden.
Identity brokering
Laat gebruikers inloggen via een externe identity provider: Google, Microsoft Entra ID, GitHub, Facebook, LinkedIn, of een willekeurige andere OIDC/SAML-bron. Keycloak fungeert als "broker": het accepteert het externe token, mapt het naar een Keycloak-gebruiker en verstrekt vervolgens jouw applicaties een eigen token. Daardoor blijft je applicatie onafhankelijk van de externe provider.
Social login
Een specifieke variant van identity brokering: gebruikers loggen in met hun bestaande Google-, Microsoft-, Apple- of Facebook-account. Voor B2C-toepassingen verlaagt dit de drempel om een account aan te maken aanzienlijk.
Fijnmazige autorisatie
Naast authenticatie (wie ben je?) doet Keycloak ook autorisatie (wat mag je?). Via Keycloak Authorization Services kun je policies definiëren op resource- en scope-niveau, bijvoorbeeld "gebruikers met rol ‘manager’ mogen offertes goedkeuren tot €10.000, daarboven alleen directie". Dat haalt veel autorisatielogica uit je applicatiecode.
Account management voor gebruikers
Eindgebruikers krijgen een eigen accountportaal waar ze hun profiel, wachtwoord, MFA-instellingen en gekoppelde sociale accounts beheren. Dat scheelt support-tickets voor "ik ben mijn wachtwoord vergeten" en geeft de gebruiker controle over zijn eigen data — netjes geregeld onder AVG-artikel 15.
Hoe Keycloak werkt: realms, clients, users, roles en groups
Het mentale model van Keycloak draait om vijf centrale begrippen:
- Realm — een geïsoleerde omgeving met eigen gebruikers, clients, rollen en configuratie. Voor de meeste organisaties bouw je één realm voor medewerkers en één realm voor klanten. Multi-tenant SaaS-platformen kunnen per klantorganisatie een eigen realm draaien.
- Client — een applicatie die met Keycloak praat. Elke webapp, mobile app, API of microservice die authenticatie nodig heeft is een client. Per client configureer je welke flows zijn toegestaan, welke redirect-URI's geldig zijn en welke claims in de token komen.
- User — een gebruiker, met attributen (e-mail, naam, telefoon, custom velden), credentials (wachtwoord, MFA-factoren, passkeys) en sessiehistorie.
- Role — een logische rol die je aan gebruikers toekent. Rollen kunnen realm-breed zijn ("admin", "medewerker") of client-specifiek ("crm:editor", "erp:viewer").
- Group — een verzameling gebruikers met gedeelde rollen en attributen. Handig voor afdelingen, teams of klantorganisaties binnen een realm.
Een typische realm-opzet voor een MKB-organisatie: realm "medewerkers" met een paar tientallen users, gegroepeerd per afdeling, met clients voor het CRM, het ERP, het ticketsysteem en de interne tools. Realm "klanten" met clients voor het klantportaal en de mobile app, gebruikers eventueel gesynchroniseerd met je CRM via een custom user storage SPI.
Keycloak versus Auth0, Firebase Auth en Cognito
De grote vraag: waarom Keycloak in plaats van een managed dienst? Een eerlijke vergelijking met de drie populairste alternatieven:
Auth0 (Okta)
Sinds de overname in 2021 hoort Auth0 bij Okta. Het is een volwassen, snel op te zetten managed IAM-dienst met goede documentatie en een sterke developer experience. Pricing volgens de Auth0-pricing-pagina begint bij circa $35/maand voor de B2C Essentials en schaalt fors op bij meer Monthly Active Users — boven de 10.000 MAU zit je al snel op enterprise pricing van duizenden euro's per maand. Auth0 host data in de VS, EU of Australië; voor strikte EU-dataresidency moet je de juiste regio kiezen en checken hoe sub-processors zijn ingericht.
Wanneer Auth0? Als snelheid van opzetten en developer experience zwaarder wegen dan controle en kostenvoorspelbaarheid. Voor jonge startups die in week 1 een werkend login-flow nodig hebben en daar geen tijd aan willen verliezen.
Firebase Authentication (Google)
Onderdeel van het Firebase-platform van Google. Gratis tot een ruime limiet, daarna goedkoper dan Auth0 voor B2C. Sterk geïntegreerd met de rest van Google Cloud. AVG-implicaties zijn echter aanzienlijk: data wordt deels in de VS verwerkt, en sinds het wegvallen van het EU-US Privacy Shield in 2020 is dat juridisch ingewikkeld. Het Data Privacy Framework uit 2023 biedt een werkbaar kader, maar blijft kwetsbaar voor juridische uitdaging.
Wanneer Firebase Auth? Voor B2C-mobiele apps zonder strikte EU-dataresidency-eis, waarbij je toch al diep in het Firebase-ecosysteem zit.
AWS Cognito
De managed IAM-dienst van AWS. Geïntegreerd in de AWS-stack, schaalt vrijwel oneindig, EU-regio's beschikbaar. Pricing is voor de meeste use cases redelijk, maar de developer experience is bekend grof — minder gestroomlijnd dan Auth0. Custom UI vraagt veel werk en de admin-interface is beperkt vergeleken met Keycloak of Auth0.
Wanneer Cognito? Als je serverless op AWS bouwt (zie ook ons artikel over Laravel Vapor en AWS), strikt binnen één cloud-provider wilt blijven en geen complexe identity-flows nodig hebt.
Keycloak
Open-source, gratis. Je host het zelf — bij ons standaard op AWS in Frankfurt, met PostgreSQL als backend, achter een load balancer met TLS-certificaten, met dagelijkse backups en monitoring. Geen per-gebruiker pricing: je betaalt alleen de infrastructuur (in onze ervaring €50-150/maand voor MKB-volumes). Volledige controle over data, configuratie en upgrade-momenten.
Wanneer Keycloak? Bij meerdere applicaties met SSO-behoefte, AVG- of NIS2-eisen aan dataresidency, honderden tot duizenden gebruikers, of een wens voor langetermijnonafhankelijkheid van externe leveranciers. Voor een enkele applicatie met <100 gebruikers is een managed dienst vaak praktischer.
Integratie met Laravel, Node.js, React en mobile apps
Omdat Keycloak standaardprotocollen spreekt, werkt vrijwel elke OIDC- of SAML-compliant client. De meest gebruikte integraties:
- Laravel — via SocialiteProviders/Keycloak of Vizir/laravel-keycloak-web-guard. We koppelen Keycloak doorgaans als alternatief voor de standaard Laravel-authenticatie, met behoud van Spatie Permission voor fijnmazige autorisatie binnen de Laravel-applicatie.
- Node.js — via openid-client (officieel onderhouden door de OpenID Foundation) of het oudere
keycloak-connect. Voor NestJS bestaan dedicated modules. - React, Vue en Angular — via keycloak-js of de officiële oidc-client-ts-bibliotheek. Beide ondersteunen de moderne Authorization Code Flow met PKCE.
- iOS en Android — via AppAuth, een open-source bibliotheek van Google en de OpenID Foundation. Werkt out-of-the-box met Keycloak.
- Backend-to-backend — met de OAuth 2.0 Client Credentials flow. Microservices krijgen elk hun eigen client-id en authenticeren machine-to-machine zonder gebruikersinteractie.
Een voordeel dat vaak onderschat wordt: omdat Keycloak standaardprotocollen gebruikt, kun je later weer wegmigreren. Vervang Keycloak door Auth0 of door een eigen OIDC-server: zolang het OIDC spreekt, blijven je applicaties werken zonder code-changes. Dat is precies wat vendor lock-in voorkomt.
Self-hosted versus Red Hat build of Keycloak
Sinds 2023 biedt Red Hat de Red Hat build of Keycloak aan: een commerciële, supported versie van Keycloak met enterprise support, gecertificeerde container images en een gegarandeerde patch-window. De community-versie blijft volledig gratis en functioneel identiek, alleen zonder formele support.
De keuze hangt af van wat je organisatie nodig heeft:
- Community-versie (gratis) — perfect voor MKB en scale-ups. Veroudert niet, maar je doet upgrades zelf en bent zelf verantwoordelijk voor security-patches. Wij kiezen hier voor onze klanten in vrijwel alle gevallen voor.
- Red Hat build of Keycloak — voor enterprises, banken en overheden die formele support en een Service Level Agreement op de IAM-laag nodig hebben. Kosten lopen via een Red Hat-subscription.
In de praktijk haalt een goed onderhouden community-installatie hetzelfde niveau van beschikbaarheid als een Red Hat-build. Het verschil is contractuele zekerheid en het "iemand bellen die het oplost"-comfort.
Nadelen en aandachtspunten
Keycloak is krachtig, maar geen wondermiddel. Een eerlijke lijst van de nadelen:
Leercurve
De terminologie (realms, clients, scopes, mappers, flows, identity providers, user storage SPIs) is veel voor wie nieuw is in IAM. Een eerste productiewaardige opzet voor een MKB-organisatie kost in onze ervaring twee tot vijf werkdagen, inclusief realm-ontwerp, clientconfiguratie, MFA-policy en integratie met één of twee applicaties. Wie het nog nooit gedaan heeft is daar langer mee bezig.
Hosting en onderhoud
Je bent zelf verantwoordelijk voor uptime, backups, TLS, monitoring en upgrades. Keycloak brengt elke ~3 maanden een nieuwe release uit. Tussen releases komen security-patches die je tijdig moet doorvoeren. Reken op één tot twee dagen onderhoud per kwartaal, plus incidentele patch-cycli.
Performance bij grote volumes
Voor 100.000+ gebruikers wordt het belangrijk om je PostgreSQL-backend, caching (Infinispan) en sizing van Keycloak-instances goed te tunen. Standaardconfiguratie schaalt prima tot enkele tienduizenden gebruikers; daarboven loont het om een specialist mee te laten kijken.
UI-customisatie kost werk
De standaard Keycloak-inlogpagina is functioneel maar oogt sober. Wil je een volledig in je huisstijl gestyled portaal, dan kun je themes bouwen (FreeMarker-templates) of de Account Console vervangen door een eigen React-applicatie. Reken op een paar dagen tot een week werk voor een nette branded experience.
Geen alles-in-één CIAM-features
Auth0 en Okta bieden uit de doos progressive profiling, anomalie-detectie, bot-bescherming en geavanceerde fraud-detection. Keycloak heeft de basis (brute-force-protectie, account lockout, MFA), maar geavanceerde adaptive authentication moet je zelf bouwen of via extensies toevoegen.
Praktijkvoorbeelden: wanneer kies je Keycloak?
Een paar concrete scenario's waarin Keycloak voor onze klanten de juiste keuze was:
De groothandel met vijf applicaties
Een groothandel in technische artikelen had een ERP, een CRM, een klantportaal, een chauffeurs-app en een interne BI-tool. Vijf afzonderlijke inlogschermen, vijf user databases, eindeloze tickets over vergeten wachtwoorden. Met Keycloak draait nu één identity-laag voor alle vijf. Medewerkers loggen één keer in, klanten gebruiken een aparte realm met social login via Microsoft. Vertrekkende medewerkers worden in één klik centraal uitgeschakeld.
De SaaS-leverancier met multi-tenancy
Een vertical SaaS-platform met circa veertig klantorganisaties wilde dat elke klant zijn eigen Microsoft Entra ID of Google Workspace kon koppelen voor SSO van zijn medewerkers. Met Keycloak draait per klant een aparte realm of een identity-broker-koppeling. De klanten regelen hun eigen authenticatie en compliance, en het SaaS-platform houdt één centrale plek voor autorisatielogica. Zie ook ons artikel over multi-tenancy in Laravel.
De zorgaanbieder met AVG-eisen
Een zorgorganisatie kon door AVG-overwegingen niet kiezen voor een Amerikaanse identity provider. Een EU-managed dienst zou wel kunnen, maar de organisatie wilde maximale controle over het wachtwoordbeleid, de audit-logs en de dataretentie. Keycloak op AWS Frankfurt met PostgreSQL en automatische backups was de uitkomst: AVG-conform, controleerbaar, en met audit-logging conform de eisen van de NEN 7510-norm voor de zorg.
De startup die later wil opschalen
Een SaaS-startup met <100 gebruikers koos toch voor Keycloak in plaats van Auth0 — niet vanwege de huidige kosten (dat scheelt nu niets), maar omdat de oprichters geen vendor-afhankelijkheid wilden vóór hun A-ronde. Investeerders en enterprise-klanten zien onafhankelijkheid van Amerikaanse identity-providers als pluspunt. Bij doorgroei naar 50.000+ gebruikers blijven de kosten voorspelbaar.
Hoe Coding Agency Keycloak inzet
Onze standaardaanpak voor een Keycloak-implementatie:
- Use case bepalen — hoeveel applicaties, hoeveel gebruikers, welke protocollen, welke compliance-eisen? Hier valt de keuze tussen Keycloak en een managed alternatief.
- Realm-ontwerp — medewerkers versus klanten, één realm per merk of per klantorganisatie. We documenteren het ontwerp zodat het ook over twee jaar nog houdbaar is.
- Hosting opzetten — standaard op AWS in Frankfurt met PostgreSQL, achter een Application Load Balancer met TLS, met automatische backups en CloudWatch-monitoring. Bij hogere beschikbaarheidseisen draaien we Keycloak in een multi-AZ setup.
- Federatie en brokering — koppeling met bestaande Active Directory, LDAP of externe identity providers (Microsoft Entra ID, Google Workspace).
- MFA-uitrol — beleid per realm en per groep, met TOTP en WebAuthn als standaard, hardware-tokens of passkeys voor admins.
- Integratie in applicaties — per applicatie de juiste client configureren, code aanpassen en de migratie van bestaande gebruikers regelen.
- Audit-logging en monitoring — Keycloak-events doorsturen naar een centrale log-pipeline voor inzicht en compliance (zie ook observability).
- Onderhoudscontract — we doen kwartaalupgrades en patchen security-issues binnen het afgesproken window. Voor klanten met hogere eisen koppelen we daar een SLA aan.
Een typische eerste Keycloak-implementatie voor een MKB-organisatie met drie tot vijf applicaties realiseren we in vier tot zes weken. Daarna is uitbreiden goedkoop: een nieuwe applicatie aansluiten is doorgaans een halve dag werk.
Wanneer begin je?
De vuistregel die wij hanteren: zodra je drie of meer applicaties hebt met overlappende gebruikers, of zodra je AVG-, NIS2- of ISO-eisen hebt aan toegangsbeheer, is centrale identity de moeite waard. Voor één applicatie met <100 gebruikers blijft een hosted alternatief vaak praktischer.
Wil je weten of Keycloak past bij jouw situatie? We doen vrijblijvend een korte analyse: aantal applicaties, gebruikersvolumes, compliance-eisen, bestaande directory-services. Op basis daarvan adviseren we eerlijk: Keycloak, een managed alternatief, of voorlopig nog niets veranderen. Neem contact op voor een gesprek.