ÉTUDE DE CAS 04 / ACADÉMIQUE / MICROSERVICES
SSO universitaire — Plateforme de restauration et de foyer
Projet académique en équipe
Une plateforme universitaire où étudiants, personnel, enseignants et administrateurs se connectent une seule fois via Keycloak pour accéder à la restauration, au foyer, aux réservations, aux abonnements et aux réclamations.
- CLIENTAngularVues étudiants, personnel et admin
- IDENTITÉKeycloak SSOUn realm · un client par service
- DÉCOUVERTEEureka · OpenFeignRegistre et appels de services
- SERVICESSpring BootSix microservices métier
- DONNÉESPostgreSQLPersistance JPA / Hibernate
- microservices Spring Boot
- 6
- rôles applicatifs
- 7
- une seule connexion pour tous les services
- SSO
Authentification unique Keycloak
- 01Un realm Keycloak pour toute la plateforme
- 02Un client Keycloak dédié à chaque microservice
- 03Comptes gérés via le Keycloak Admin Client
- 04Rôles du realm attribués à chaque utilisateur
- 05Accès par rôles dans chaque service
Problème
La restauration, le foyer, les réservations et les réclamations étaient des services distincts, alors qu'étudiants, personnel, enseignants et administrateurs avaient besoin d'un seul compte sécurisé pour tous les utiliser.
Architecture
Chaque domaine métier est un microservice Spring Boot enregistré auprès d'un serveur de découverte Eureka. Les services communiquent via OpenFeign, stockent leurs données dans PostgreSQL avec JPA / Hibernate et documentent leurs API REST avec OpenAPI / Swagger. Une application Angular fournit l'interface.
- Authentification : utilisateurs, rôles et administration Keycloak
- Restauration : menus, repas et votes
- Foyer : blocs et chambres
- Réservations : foyer et restaurant, avec paiement Stripe
- Abonnements : foyer et restaurant, avec QR codes
- Réclamations : pièces jointes, tableau de bord et alertes SMS via Twilio
Authentification unique avec Keycloak
Un realm Keycloak dédié sécurise toute la plateforme. Chaque microservice est déclaré comme client Keycloak avec ses propres mappings de rôles. Le service d'authentification s'appuie sur Spring Security et le Keycloak Admin Client pour créer, modifier ou supprimer les comptes et attribuer les rôles du realm, des administrateurs aux étudiants, au personnel et aux enseignants.
Fonctionnalités
Les utilisateurs réservent des chambres au foyer et des repas au restaurant, paient via une intégration Stripe en mode test, reçoivent des documents PDF, des QR codes et des notifications par e-mail, et déposent des réclamations avec pièces jointes qui déclenchent des alertes SMS.
Détails techniques
Services Spring Boot construits avec Maven, Lombok, Bean Validation, des modèles d'e-mails Thymeleaf et FreeMarker, et Swagger UI pour explorer chaque API.
Technologies
PROJET SUIVANT
E-story
Une plateforme de lecture et d'apprentissage découpée en microservices Spring Boot derrière une Spring Cloud Gateway, avec authentification Keycloak et une base PostgreSQL par service, le tout exécuté avec Docker Compose.