docs: record SSO integration progress
This commit is contained in:
@@ -37,7 +37,7 @@ l'historique complet, y compris des étapes devenues obsolètes après brancheme
|
|||||||
| Base de données | Terminé pour la V1 | Schéma Prisma 16 entités, migrations, seeds et fixtures de démonstration. |
|
| Base de données | Terminé pour la V1 | Schéma Prisma 16 entités, migrations, seeds et fixtures de démonstration. |
|
||||||
| API étudiant | Terminé pour la V1 | Catalogue, détail matériel, création d'emprunt, mes emprunts, restitution, anomalie automatique. |
|
| API étudiant | Terminé pour la V1 | Catalogue, détail matériel, création d'emprunt, mes emprunts, restitution, anomalie automatique. |
|
||||||
| Frontend étudiant | Fonctionnel pour la V1 | Parcours API complet, ordre identification puis choix validé, interface premium et responsive fidèle à la maquette. |
|
| Frontend étudiant | Fonctionnel pour la V1 | Parcours API complet, ordre identification puis choix validé, interface premium et responsive fidèle à la maquette. |
|
||||||
| Authentification | Simulée | `x-user-email` côté backend et identité démo côté frontend ; Azure AD reste à faire. |
|
| Authentification | Prête pour Azure, démo active | Double mode sécurisé : `x-user-email` seulement en développement, MSAL/OIDC + Bearer JWT en mode Azure. Validation réelle en attente des identifiants Entra ID. |
|
||||||
| API responsable | Terminé pour la V1 | Dashboard, emprunts, stock, anomalies, notifications, historique et export CSV, avec contrôle du rôle et du campus. |
|
| API responsable | Terminé pour la V1 | Dashboard, emprunts, stock, anomalies, notifications, historique et export CSV, avec contrôle du rôle et du campus. |
|
||||||
| Frontend responsable | Fonctionnel pour la V1 | Espace de supervision responsive avec navigation dédiée, dashboard métier, vues API et export CSV opérationnel. |
|
| Frontend responsable | Fonctionnel pour la V1 | Espace de supervision responsive avec navigation dédiée, dashboard métier, vues API et export CSV opérationnel. |
|
||||||
| Tests automatisés | Non démarré | Tests backend/frontend/E2E à ajouter ; tests runtime manuels effectués. |
|
| Tests automatisés | Non démarré | Tests backend/frontend/E2E à ajouter ; tests runtime manuels effectués. |
|
||||||
@@ -56,6 +56,7 @@ npm run lint
|
|||||||
npm run seed
|
npm run seed
|
||||||
npm run fixtures
|
npm run fixtures
|
||||||
cd ../eme-frontend
|
cd ../eme-frontend
|
||||||
|
npm run build:auth
|
||||||
flutter run -d web-server --web-port 5000
|
flutter run -d web-server --web-port 5000
|
||||||
C:\flutter\flutter\bin\cache\dart-sdk\bin\dart.exe analyze
|
C:\flutter\flutter\bin\cache\dart-sdk\bin\dart.exe analyze
|
||||||
```
|
```
|
||||||
@@ -64,7 +65,8 @@ Notes :
|
|||||||
- le backend écoute sur `http://localhost:3000` ;
|
- le backend écoute sur `http://localhost:3000` ;
|
||||||
- le frontend web de démo écoute sur `http://localhost:5000` ;
|
- le frontend web de démo écoute sur `http://localhost:5000` ;
|
||||||
- Adminer est disponible sur `http://localhost:8081` ;
|
- Adminer est disponible sur `http://localhost:8081` ;
|
||||||
- le wrapper `flutter` peut rester bloqué dans l'environnement Codex ; l'analyse directe avec l'exécutable Dart fonctionne et ne signale aucune erreur.
|
- le wrapper `flutter` peut rester bloqué dans l'environnement Codex ; l'analyse directe avec l'exécutable Dart fonctionne et ne signale aucune erreur ;
|
||||||
|
- la compilation Web complète a été validée avec l'exécutable Dart du SDK Flutter et produit `build/web`.
|
||||||
|
|
||||||
## Scénario de démo validé
|
## Scénario de démo validé
|
||||||
|
|
||||||
@@ -83,7 +85,7 @@ Scénario responsable validé avec SQL Server Docker et backend compilé :
|
|||||||
2. Lucas (`ETUDIANT`) reçoit une réponse `403` sur les routes responsable.
|
2. Lucas (`ETUDIANT`) reçoit une réponse `403` sur les routes responsable.
|
||||||
3. Une anomalie peut avancer dans le cycle `DETECTEE -> EN_COURS_TRAITEMENT -> RESOLUE -> CLOTUREE`.
|
3. Une anomalie peut avancer dans le cycle `DETECTEE -> EN_COURS_TRAITEMENT -> RESOLUE -> CLOTUREE`.
|
||||||
4. Chaque transition enregistre le responsable et crée une entrée d'historique.
|
4. Chaque transition enregistre le responsable et crée une entrée d'historique.
|
||||||
5. L'API génère l'export CSV de l'historique ; son téléchargement depuis l'interface Flutter reste à ajouter.
|
5. L'API génère l'export CSV de l'historique et l'interface Flutter déclenche son téléchargement.
|
||||||
|
|
||||||
### Note outillage — migrations en environnement non-interactif
|
### Note outillage — migrations en environnement non-interactif
|
||||||
|
|
||||||
@@ -269,7 +271,7 @@ En terminal interactif (VS Code), `migrate dev` fonctionne normalement (taper `y
|
|||||||
| `Materiel.statut` -> `@default("DISPONIBLE")` | À faire avec migration + ERD | Faible : le code fournit déjà le statut explicitement. |
|
| `Materiel.statut` -> `@default("DISPONIBLE")` | À faire avec migration + ERD | Faible : le code fournit déjà le statut explicitement. |
|
||||||
| Tailles de colonnes `@db.NVarChar(n)` | À cadrer | Faible V1, important pour qualité BDD. |
|
| Tailles de colonnes `@db.NVarChar(n)` | À cadrer | Faible V1, important pour qualité BDD. |
|
||||||
| Swagger/OpenAPI | À faire | Moyen : utile pour tester/documenter l'API. |
|
| Swagger/OpenAPI | À faire | Moyen : utile pour tester/documenter l'API. |
|
||||||
| Auth réelle Azure AD | À faire | Fort : requis pour sortir de la démo avec auth simulée. |
|
| Validation réelle Azure AD | En attente des identifiants Entra ID | Fort : le code OIDC/MSAL/JWT est prêt, mais une connexion Microsoft réelle doit encore être testée sur le tenant ENSUP. |
|
||||||
| Limite d'emprunts actifs par étudiant | À valider métier | Non bloquant V1 ; décision métier non présente dans les règles actuelles. |
|
| Limite d'emprunts actifs par étudiant | À valider métier | Non bloquant V1 ; décision métier non présente dans les règles actuelles. |
|
||||||
|
|
||||||
---
|
---
|
||||||
@@ -442,6 +444,20 @@ En terminal interactif (VS Code), `migrate dev` fonctionne normalement (taper `y
|
|||||||
- Écrans de confirmation et de résultat conservés fonctionnellement et harmonisés via les composants partagés.
|
- Écrans de confirmation et de résultat conservés fonctionnellement et harmonisés via les composants partagés.
|
||||||
- Vérification statique : `dart analyze` sans erreur.
|
- Vérification statique : `dart analyze` sans erreur.
|
||||||
|
|
||||||
|
### Étape 47 — Sécurisation SSO Microsoft Entra ID
|
||||||
|
- Branche dédiée `feat/block-3-azure-sso` créée depuis `develop`.
|
||||||
|
- Backend configuré avec deux modes : `demo` en développement et `azure` pour une authentification réelle ; le mode démo est explicitement interdit en production.
|
||||||
|
- Middleware d'authentification refactoré vers un service dédié. En mode Azure, `x-user-email` est ignoré et un Bearer Token Microsoft est obligatoire.
|
||||||
|
- Validation JWT ajoutée : signature RSA via les clés JWKS Microsoft, algorithme `RS256`, issuer, audience, tenant, scope `access_as_user`, identifiant `oid` et domaines `ensup.eu` / `ensitech.eu`.
|
||||||
|
- L'utilisateur, son rôle et son campus restent résolus depuis `eme_db`. Un étudiant obtient `403` sur la supervision, tandis que le responsable de démonstration obtient `200`.
|
||||||
|
- Frontend doté d'un double mode de session. La simulation sélectionne Lucas ou Karim sans pouvoir être utilisée en mode Azure.
|
||||||
|
- Bibliothèque officielle `@azure/msal-browser` intégrée via un bundle local construit avec esbuild et un pont typé `dart:js_interop`.
|
||||||
|
- Flux OpenID Connect préparé avec connexion Microsoft, acquisition silencieuse de l'Access Token, appel de `/api/auth/me`, navigation selon le rôle local, restauration après actualisation et déconnexion MSAL.
|
||||||
|
- Profil authentifié typé et affiché dans les espaces étudiant et responsable : nom, initiales, classe, rôle et campus ne sont plus figés sur les identités de démonstration.
|
||||||
|
- Vérifications réussies : build et lint backend, analyse Dart, compilation Flutter Web complète et contrôles runtime des rôles en mode démo.
|
||||||
|
- Limite actuelle : faute d'identifiants Entra ID, le flux Microsoft réel n'a pas encore pu être exécuté. Le QR sécurisé reste un sous-bloc séparé à développer après le SSO.
|
||||||
|
- Commits : `313bb1c`, `530bd52`, `ef31e2a`, `dc208fa`, `36224f3`.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
*Dernière mise à jour : 2026-07-23 — Espace étudiant premium et responsive, fidèle à la maquette ENSUP.*
|
*Dernière mise à jour : 2026-07-23 — SSO Microsoft Entra ID prêt à configurer, mode démo sécurisé actif.*
|
||||||
|
|||||||
Reference in New Issue
Block a user