Skip to content

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.md pour 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.md et dema1n/docs/mapping-champs-rabbitmq-mvls.md pour 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