Beschrijving van de stageopdracht
Deze stage richt zich op de continue integratie en uitrol (CI/CD) van beveiligingsfixes en op versiebeheer voor ons product voor toegangsbeheer. Dat product is Keycloak: een open-source tool voor toegangsbeheer die wij voor onze klanten implementeren en onderhouden, en die we hebben uitgebreid met een omvangrijke reeks zelfgebouwde plug-ins. Onze infrastructuur en ons uitrolframework zijn volledig gebouwd met Ansible, dus de pipeline die je ontwerpt moet daar naadloos in passen.
Door de opkomst van AI-ondersteunde kwetsbaarheidsscans worden beveiligingsproblemen sneller dan ooit ontdekt. Daardoor verschijnen er ook vaker nieuwe beveiligingsfixes en Keycloak-versies. Momenteel moet bij elke nieuwe versie elke aangepaste extensie handmatig worden gecontroleerd om na te gaan of ze nog correct bouwt. Omdat we meer dan 100 extensies onderhouden, kost dit handmatige proces veel tijd en groeit het niet mee met ons werk.
Jouw opdracht is dit controleproces te automatiseren door een CI/CD-pipeline te ontwikkelen die alle extensies omvat. Die pipeline test en valideert de builds automatisch tegen nieuwe Keycloak-releases en signaleert compatibiliteitsproblemen vroegtijdig. Daarnaast genereert de pipeline voor elke extensie een Software Bill of Materials (SBOM), zodat we een duidelijk en actueel overzicht hebben van elke afhankelijkheid die in gebruik is. Zo zie je meteen welke extensies getroffen zijn wanneer een nieuwe kwetsbaarheid bekend wordt, zonder ze een voor een te moeten controleren. Dat versterkt ook onze compliance- en auditpositie.
Dit is een praktijkgerichte kans om te werken aan een systeem dat onze klanten en onze dagelijkse werking rechtstreeks ondersteunt. Je doet praktische ervaring op met CI/CD-ontwerp, de interne werking van Keycloak, infrastructuurautomatisering en de beveiliging van de softwaretoeleveringsketen. En ondertussen heb je een echte, meetbare impact op hoe efficiënt ons team veilige, actuele software kan leveren.
Doelen
Het doel van deze stage is een geautomatiseerde CI/CD-pipeline te ontwerpen en te implementeren die de compatibiliteit van meer dan 100 aangepaste Keycloak-extensies controleert bij elke nieuwe Keycloak-release. Tegelijk vergroot de pipeline ons zicht op de softwaretoeleveringsketen door automatisch SBOM’s te genereren. Door het huidige handmatige controleproces te vervangen, help je het team sneller en betrouwbaarder te reageren op beveiligingsupdates, verklein je risico’s en maak je engineeringtijd vrij voor werk met meer toegevoegde waarde.
Belangrijkste doelstellingen:
- Buildcontrole automatiseren
Ontwikkel een pipeline die alle aangepaste extensies automatisch bouwt en test tegen nieuwe Keycloak-versies. - Compatibiliteitsproblemen vroegtijdig opsporen
Implementeer controles die extensies signaleren die niet bouwen of zich onverwacht gedragen met een nieuwe release, nog vóór de uitrol. - SBOM’s per extensie genereren
Maak tijdens het buildproces automatisch een Software Bill of Materials voor elke extensie, zodat er altijd een actueel overzicht is van alle gebruikte afhankelijkheden. - Sneller reageren op kwetsbaarheden
Gebruik de gegenereerde SBOM’s om snel te bepalen welke extensies getroffen zijn wanneer een nieuwe kwetsbaarheid bekend wordt, in plaats van elke extensie handmatig te controleren. - Integreren met de bestaande infrastructuur
Zorg dat de pipeline naadloos werkt binnen ons op Ansible gebaseerde uitrolframework. - Schaalbaarheid garanderen
Ontwerp de pipeline zo dat nieuwe extensies eenvoudig kunnen worden toegevoegd. - Het proces documenteren
Lever duidelijke documentatie op, zodat het team de pipeline na de stage kan onderhouden en uitbreiden.
Optionele functies
- Robot Framework
Naast de basiscontrole van de builds voert de pipeline ook functionele tests uit met Robot Framework. Daartoe horen browsertests van de volledige authenticatieflow. - Statische codeanalyse met SonarQube
Scant de broncode van de extensies op bugs, code smells en beveiligingskwetsbaarheden, nog voordat de code gebouwd wordt.
Betrokken technologieën en concepten
GitLab CI/CD
Ansible
Keycloak
Docker
Java
Infrastructure as code
SBOM
Robot framework (extensie)
Projectaanpak
Het project verloopt in fasen. Zo bouw je eerst een stevig begrip op van Keycloak en onze bestaande infrastructuur, voordat je stap voor stap automatisering invoert. Hieronder een kort overzicht van de fasen.
- Onboarding en onderzoek
Maak kennis met de architectuur van Keycloak, de codebase van onze aangepaste extensies en het bestaande, op Ansible gebaseerde uitrolframework. Bekijk het huidige handmatige controleproces om de knelpunten en randgevallen zelf te leren kennen. - Vereisten en ontwerp
Bepaal samen met het team de scope van de pipeline: welke buildtools, welk CI/CD-platform en welke SBOM-tooling we gebruiken, hoe het extensiemanifest onderhouden wordt en hoe de pipeline integreert met de bestaande Ansible-workflow. - POC (Proof of Concept)
Bouw een kleinschalige versie van de pipeline voor een handvol extensies om de aanpak te valideren (buildautomatisering, parallelle uitvoering, SBOM-generatie) voordat je opschaalt. - Implementatie
Breid de proof of concept uit naar alle 100+ extensies. Implementeer parallelle builds, geautomatiseerde tests, SBOM-generatie en het koppelen van afhankelijkheden aan bekende kwetsbaarheden, en integreer elke stap geleidelijk. - Testen en valideren
Laat de pipeline draaien op actuele en eerdere Keycloak-releases om de nauwkeurigheid te valideren en randgevallen op te sporen. Vergelijk de resultaten met het vroegere handmatige proces om de betrouwbaarheid te bevestigen. - Documentatie
Documenteer de architectuur, de configuratie en de onderhoudsprocedures, zodat het team de pipeline na de stage kan onderhouden en uitbreiden. - Evaluatie
Verzamel feedback van het team, meet de impact (bespaarde tijd, problemen die eerder werden ontdekt) en verfijn de pipeline op basis van het gebruik in de praktijk.
Overzicht
Profiel
We zoeken een gemotiveerde student met interesse in automatisering, cybersecurity en IAM-tools.
Gewenst profiel:
- Basiskennis van Ansible en Linux-systemen.
- Interesse in automatisering en scripting.
- Vertrouwd met beveiligingsconcepten.
- Sterke analytische en probleemoplossende vaardigheden.
- In staat om zelfstandig te werken en tegelijk samen te werken in een technisch team.
- Leergierig om moderne bedrijfstechnologieën en CI/CD-praktijken te leren kennen.