// stage de fin d'études · mars—août 2026 · 6 mois
Infomaniak.
Développement backend PHP/Laravel au sein de l'équipe Core-Backend — sécurité applicative, OAuth2/OIDC et modernisation d'APIs.
// Contexte
Stage de 6 mois à Infomaniak (Genève, Suisse), hébergeur web et fournisseur cloud suisse reconnu pour sa souveraineté des données. Intégration à l'équipe Core-Backend, responsable de l'uniformisation backend et de l'authentification (2FA, SSO, OIDC) pour l'ensemble des produits.
La mission : contribuer à la sécurisation et la modernisation d'un écosystème hétérogène (PHP 5.6 legacy → PHP 8 Laravel), tout en assurant la continuité de services critiques d'authentification utilisés par des centaines de milliers d'utilisateurs.
// Sécurité & Authentification
// OAuth2
Implémentation d'un mécanisme de dérivation de token (grant OAuth2 token-exchange, RFC 8693) et implémentation de fonctionnalités custom sur le serveur d'autorisation OAuth2.
Gestion d'accès interne
Incrément sur l'outil interne de gestion d'accès aux projets et bases de données (système critique), ajout de fonctionnalités, Fullstack sur ce projet (front-end vue js)
// Sécurité applicative
Analyse et évaluation de plusieurs remontées de bug bounty (YesWeHack) sur différentes parties du système (login, 2FA, serveur d'autorisation OAuth2)
// SSO
Maintenance, incrément et ajout de documentation support pour l'onboarding d'organisation utilisant la fonctionnalité Single-Sign-On
// Modernisation & APIs
// Refactoring CRUD (SRP)
Ajout d'endpoints de gestion de tags produits avec application du Single Responsibility Principle : logique métier extraite dans un service, autorisations dans une policy, routing modernisé Laravel. Devenue référence interne de structuration.
// Pipeline CI/CD documentation OpenAPI
Audit et fix du générateur de documentation API (annotations PHPDoc → spec OpenAPI 3). Pipeline GitLab CI : build, validation YAML, diff vs version précédente, déploiement sur stockage S3. Transforme la doc d'une dette en actif fiable.
// Audit des permissions
Analyse des mécanismes de contrôle d'accès hétérogènes (scopes, attributs métier, listes statiques). Proposition de différentes solutions pour uniformiser le système et apporter de la granularité pour l'accès aux ressources internes par les collaborateurs
// Observabilité
Résolution d'un problème de traçabilité critique sur le système de notifications push (APNS/Firebase).
Mise en place de la propagation d'un request_context_id à travers
la chaîne de traitement, via le pattern Continuation Local Storage (CLS)
côté NestJS et RabbitMQ pour le mode asynchrone.
flowchart LR
A["Service A (Laravel)\n$_SERVER['REQUEST_CONTEXT_ID']"] -->|Sync: HTTP POST + payload enrichi| B
A -->|Async: RabbitMQ + contexte sérialisé| B
B["Service B (NestJS)\nnestjs-cls → contexte par requête/message\nLogger pino + mixin CLS (auto-injection)"]
B --> V["Vector → indexation sur request_context_id"]
// Bilan
// Production
Plusieurs incréments livrés en production : restriction OAuth2, refactoring tags, fix 2FA, pipeline doc OpenAPI, fix révocation de token en cache.
// Méthodologie
Posture d'investigation : cartographier les flux avant de coder, formuler des hypothèses vérifiables. Revues de code et proactivité