// 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
// Token Exchange (RFC 8693)
Implémentation d'un mécanisme de dérivation de token : un access token échangé contre un nouveau grant, avec restriction stricte par association émetteur/sujet/application cible. Contractualisation de la confiance inter-services.
// Restriction OAuth2 par organisation
Restriction des applications OAuth2 aux seuls utilisateurs de l'organisation propriétaire. Validation au moment du consentement, après sélection de compte. Pattern Repository + Strategy (grant types).
// Investigation 2FA
Analyse d'une remontée de sécurité (bug bounty) sur le contournement potentiel de la 2FA. Cartographie du flux, identification des points de friction (state et code_challenge exposés dans un JWT post-déconnexion).
// SAML2 + migration 2FA
Correction d'un bug SAML2 (trailing slash dans l'assertion SSO) et stabilisation de la migration de l'ancien système 2FA vers le nouvel Authenticator (edge cases, états transitoires).
// 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 d'un middleware unifié et segmentation des comptes de service (principe du moindre privilège).
// 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 comme espaces de justification technique.