Aller au contenu

Fonctionnement de MGLogin dans l'api

Pour les règles métiers, voir le document dédié.

La configuration de l'authentification MGLogin se fait via des variables d'environnement dont les valeurs de production sont récupérées via le manifeste stocké sur le QG.

Synchronisation

Pour que les utilisateurs de MGLogin puissent utiliser l'application, ils doivent être importés dans la table utilisateur. Cette opération se fait via la commande bin/console synchroniser-mglogin.

Les utilisateurs venant de MGLogin stockés dans notre base contiennent l'attribut estMglogin positionné à true

Fonctionnement de MGLogin

Les étapes d'authentification sont les suivantes :

  • Le front office appelle le formulaire de login de MgLogin
  • MgLogin renvoie au front un authorization code via l'url de callback paramétrée dans keycloak pour le clientId front concerné
  • Le front appelle le endpoint de login de Mgx avec l'authorization code et les clefs login et password à vide
  • L'api Mgx appelle MgLogin avec l'Authorization code pour obtenir un access token
  • S'il l'obtient, il utilise l'identifiant de l'utilisateur (en décryptant l'accesstoken) pour loguer l'utilisateur dans mgx, sinon il lève une exception (403)
  • L'api Mgx vérifie que l'utilisateur a bien le flag estMgLogin positionné à true, sinon elle lève une exception 403
  • L'api Mgx crée son JwtToken (comme pour une authentification "classique") et le renvoie au front