Utilisateurs, rôles et permissions — Vue transversale
Vue d'ensemble
Article1-Connect (A1C) est le hub SSO commun à toutes les plateformes. Il ne porte pas de logique métier utilisateur : il authentifie et diffuse un profil signé (profile_jwt) que chaque plateforme consomme pour créer ou retrouver son propre utilisateur local.
Navigateur
│
├── login/inscription ──▶ A1Connect (SSO)
│ │
│ profile_jwt (RS256)
│ │
├──────────────────────────────┼──────────────────────────┐
▼ ▼ ▼
Dema1n Inspire JobReady
User.ssoId UserJwt.ssoId ...
Le ssoId est l'identifiant A1C (User.id, UUID) répliqué dans chaque plateforme comme clé de liaison. Les plateformes gèrent ensuite leurs propres rôles et entités indépendamment.
Article1-Connect — Hub SSO
A1C ne dispose pas d'utilisateurs "métier". Son seul rôle fonctionnel côté utilisateur est l'authentification et la gestion du référentiel établissements.
Le profile_jwt
À chaque connexion, A1C émet un profile_jwt (RS256, 7 jours) contenant :
| Champ | Description |
|---|---|
userId |
UUID A1C → devient ssoId dans les plateformes |
email, firstname, lastname |
Profil de base |
birthdate, gender |
Données démographiques |
address_* |
Adresse postale |
jti |
Identifiant unique du token (usage unique) |
Admin A1C — Backoffice établissements
Le flag isAdmin sur le compte A1C donne accès uniquement au backoffice de gestion du référentiel établissements (lycées + supérieur, ~24 000 établissements synchonisés depuis ONISEP mensuellement).
Ce backoffice permet de déclencher les synchronisations et de consulter les flags territoire associés à chaque établissement (ZRR, QPV, IPS, IEL). Il n'a aucun lien avec les rôles admin des plateformes.
Voir
article1-connect/docs/etablissements/referentiel-etablissements.mdpour le détail.
Dema1n — Plateforme mentorat carrière
Acteurs
Tout utilisateur Dema1n a un User local (lié à A1C via ssoId) et une entité métier associée selon son profil :
| Entité | Rôle fonctionnel |
|---|---|
Jeune |
Étudiant/lycéen cherchant un mentor |
Bénévole |
Professionnel mentor |
Administrator |
Gestionnaire de la plateforme |
Rôles (User.profile)
| Rôle | Description |
|---|---|
user |
Jeune ou Bénévole actif |
admin |
Administrateur d'une sandbox |
superadmin |
Accès global toutes sandboxes |
observer |
Lecture seule |
admin_deleted |
Admin désactivé |
Sandboxes (User.sandbox)
La sandbox isole les utilisateurs par communauté/partenariat. Un utilisateur appartient à une seule sandbox.
| Valeur | Communauté |
|---|---|
DEMA1N |
Plateforme principale |
MVLS |
Mentorat Vers le Lycée Supérieur (voir § MVLS) |
VOIEPRO |
Voie professionnelle |
AFE |
Association Française des Entreprises |
CAP ESSEC |
Partenariat ESSEC |
HG Fondation |
Fondation Hachette-Gautier |
Fondation C&D |
Fondation Crédit Agricole & Diversité |
MJT |
Ma Job Team |
DRAJES |
Délégation régionale académique |
Inspire — Plateforme orientation
Acteurs
Inspire sépare l'authentification (UserJwt) du profil métier (User). Le ssoId est porté par UserJwt.
| Entité | Rôle fonctionnel |
|---|---|
Lycéen |
Élève en parcours d'orientation |
Éclaireur |
Étudiant ou jeune professionnel mentor |
Rôles (User.roles, tableau)
Un utilisateur peut avoir plusieurs rôles simultanément.
| Rôle | Description |
|---|---|
lyceen |
Lycéen en parcours |
eclaireur |
Mentor Éclaireur |
admin |
Accès complet |
pedagogie |
Accès pédagogique (équipes lycées) |
worker |
Compte technique/automatisé |
sso-registered |
Compte créé via SSO, profil non complété |
Statut Éclaireur (User.status)
Contrôle la visibilité de l'Éclaireur dans la recherche de mentors :
| Statut | Signification |
|---|---|
visible |
Disponible pour être mis en relation |
caché |
Profil non visible temporairement |
inactif |
Ne participe plus |
Flag MVLS (User.mvls)
Indique le statut de participation d'un utilisateur Inspire au programme MVLS :
| Valeur | Signification |
|---|---|
Mvls |
Inscrit au programme |
Refused |
A refusé de participer |
Banned |
Exclu du programme |
MVLS — Pont Inspire ↔ Dema1n
MVLS (Mentorat Vers le Lycée Supérieur) est un programme de mentorat géré dans Dema1n (sandbox MVLS) dont les utilisateurs sont recrutés et suivis via Inspire.
Principe
Quand un Lycéen ou un Éclaireur accepte la charte MVLS dans Inspire (charte = true), Inspire publie un événement RabbitMQ vers Dema1n qui crée ou met à jour l'utilisateur correspondant dans la sandbox MVLS.
Inspire RabbitMQ Dema1n
│ exchange: dema1n │
│── USER_CREATED ─────────── user___mvls ────────────────▶ │ crée Jeune/Bénévole
│── USER_UPDATED ─────────── user___mvls ────────────────▶ │ met à jour
│── USER_DELETED ─────────── user___mvls ────────────────▶ │ supprime
│── BINOME_CREATED ────────── user___mvls ────────────────▶ │ crée Binôme
│── BINOME_UPDATED ────────── user___mvls ────────────────▶ │ met à jour Binôme
│── SUIVI_CREATED/UPDATED ─── user___mvls ────────────────▶ │ checkpoint suivi
Correspondance des acteurs
| Inspire | Dema1n (sandbox MVLS) |
|---|---|
Lycéen (role: lyceen) |
Jeune (profile: user) |
Éclaireur (role: eclaireur) |
Bénévole (profile: user) |
| Binôme Inspire | Binôme Dema1n |
Voir
dema1n/docs/mvls/mvls-integration.mdetdema1n/docs/mapping-champs-rabbitmq-mvls.mdpour le détail des champs échangés.
Référence rapide
Identifiants utilisateurs par plateforme
| Plateforme | Table auth | Clé locale | Lien A1C |
|---|---|---|---|
| A1Connect | User (Prisma) |
id (UUID) |
— |
| Dema1n | User (TypeORM) |
id (bigint) |
ssoId |
| Inspire | UserJwt (TypeORM) |
id |
ssoId |
Résumé des rôles par plateforme
| Plateforme | Système de rôles | Granularité |
|---|---|---|
| A1Connect | isAdmin (boolean) |
Backoffice établissements uniquement |
| Dema1n | User.profile (enum, 1 seul rôle) |
user / admin / superadmin / observer |
| Inspire | User.roles (tableau) |
Combinaison possible de rôles |