Appearance
Contrat SSO — Console centrale → Rapport
Objectif : Rapport délègue l'authentification à la console centrale (SSO) et gère ensuite ses propres droits fins (établissement / domaine / dossier). Pour câbler le login dans Rapport, j'ai besoin de préciser le contrat ci-dessous.
1. Protocole
- [ ] OIDC / OAuth2 (Authorization Code + PKCE) ?
- [ ] JWT signé remis directement ?
- [ ] Cookie de session partagé (même domaine) ?
- Autre : …
2. Contenu du jeton / de la session (claims)
Que reçoit Rapport au login, au-delà de l'identité ?
- [ ]
userId(identifiant stable de l'utilisateur dans la console centrale) - [ ]
email,name - [ ]
entrepriseId(le client) + nom - [ ]
roleglobal : admin | user - [ ] établissements autorisés (liste d'ids/codes) — ou bien Rapport les lit ailleurs ?
- [ ] modules de l'abonnement (ex.
rapport,saisie…) - [ ] siège/licence Rapport (présent / actif ?)
⭐ Question clé : le jeton porte-t-il déjà
role+établissements+modules, ou Rapport doit-il les synchroniser (API/base) côté serveur ? Ça décide du modèle de données.
3. Validation côté Rapport
- [ ] Clé publique JWKS (URL) ?
- [ ] Secret partagé (HMAC) ?
- [ ] Endpoint d'introspection /
/userinfo? - Durée de vie du jeton + refresh ?
4. Flux
- URL de login (redirection vers la console) : …
- URL de retour (callback) attendue par la console : … (ex.
https://rapport.…/auth/callback) - Déconnexion (logout central ?) : …
- Domaines/origines à autoriser (CORS) entre console et Rapport : …
5. Licences / sièges
- [ ] C'est la console centrale qui bloque l'accès si pas de siège attribué ?
- [ ] Ou Rapport doit vérifier le siège (et où lire l'info) ?
6. Provisioning des utilisateurs dans Rapport
- À la 1ʳᵉ connexion, Rapport crée-t-il un enregistrement local (mirroir) lié au
userIdSSO ? - Comment Rapport liste les utilisateurs d'une entreprise (pour leur attribuer des droits) : appel API de la console ? Webhook de synchro ? Ils n'apparaissent qu'après 1ʳᵉ connexion ?
Une fois ces points tranchés, je câble le login SSO + l'enforcement. En parallèle je conçois le modèle de droits de Rapport (voir permissions-model.md), indépendant du SSO.
