Aller au contenu

Parcours de bout en bout

Cette page décrit le parcours complet d’un utilisateur, depuis le clic sur votre ressource dans le médiacentre de l’ENT jusqu’à l’affichage de votre application authentifiée, en passant par la création de session par ProxyNinja et la récupération des attributs.

Le principe central côté éditeur tient en une phrase :

« Ai‑je une session ? Non → je demande à ProxyNinja (qui a déjà authentifié l’utilisateur) → je récupère les attributs. »

Acteur Rôle
Utilisateur Élève ou enseignant, déjà authentifié dans son ENT.
Médiacentre (ENT) Catalogue de ressources de l’ENT ; publie votre landing.
GAR Le fournisseur d’identité de l’Éducation nationale (et IDP assimilés).
ProxyNinja Le fournisseur d’identité managé (OP OIDC / IdP SAML / serveur CAS) qui vous fait face.
Ressource Votre application (le Service Provider / Relying Party).

Les flèches pleines représentent des actions/redirections du navigateur ; les flèches en pointillé représentent les échanges de fédération d’identité.

sequenceDiagram
  actor U as Utilisateur (élève / enseignant)
  participant MC as Médiacentre (ENT)
  participant GAR as GAR (IdP)
  participant PN as ProxyNinja (OP managé)
  participant R as Ressource (votre application)

  Note over U,MC: L'utilisateur est déjà authentifié dans son ENT
  U->>MC: Clic sur la landing de la ressource
  MC->>R: Redirection vers le point d'entrée (URL de login)

  rect rgb(235, 243, 255)
  Note over R: Point d'entrée fonctionnel
  R->>R: Ai-je une session locale ? → NON
  R-->>PN: Demande d'authentification (OIDC /authorize · SAML AuthnRequest · CAS /login)
  end

  rect rgb(235, 255, 243)
  Note over PN,GAR: ProxyNinja établit / réutilise l'identité GAR
  PN-->>GAR: Authentification pour la ressource (si nécessaire)
  GAR-->>PN: Jeton / assertion d'authentification
  Note over PN: Session ProxyNinja créée
  end

  PN-->>R: Redirection avec code / ticket (déjà authentifié — aucune re-saisie)

  rect rgb(255, 248, 235)
  Note over R,PN: Récupération des jetons et des attributs
  R->>PN: Échange code → jetons (/token)
  R->>PN: Récupération des attributs (/userinfo · claims · validation ticket)
  PN-->>R: id_token + access_token + attributs
  end

  R->>R: Création de la session locale
  R-->>U: Accès à la ressource (authentifié)
  1. Publication de la landing. Votre ressource est publiée dans le médiacentre de l’ENT. La vignette pointe vers votre point d’entrée (l’URL de login que vous nous communiquez — voir le questionnaire, section F).
  2. Clic de l’utilisateur. L’utilisateur, déjà authentifié dans son ENT, clique sur votre ressource. Le navigateur est redirigé vers votre point d’entrée.
  3. Vérification de session (point d’entrée fonctionnel). Votre application se pose une seule question : « ai‑je déjà une session locale pour cet utilisateur ? »
    • Oui → vous servez directement la ressource.
    • Non → vous déclenchez l’authentification auprès de ProxyNinja (/authorize en OIDC, AuthnRequest en SAML, /login en CAS).
  4. ProxyNinja crée la session. ProxyNinja délègue (ou réutilise) l’identité GAR pour la ressource, reçoit le jeton/assertion d’authentification et crée la session ProxyNinja. Comme l’utilisateur vient du médiacentre, cette étape est en général transparente (pas de nouvelle saisie d’identifiants).
  5. Retour à votre point d’entrée. ProxyNinja redirige le navigateur vers votre redirect_uri (OIDC) / Assertion Consumer Service (SAML) / service (CAS) avec un code ou un ticket.
  6. Récupération des jetons et des attributs. Votre application échange le code contre des jetons (/token) puis récupère les attributs via /userinfo (OIDC), l’assertion (SAML) ou la validation du ticket (CAS). Voir la référence des attributs GAR.
  7. Session locale + accès. Vous créez la session locale (cookie de session serveur recommandé) et l’utilisateur accède à la ressource.

La fermeture de session est propagée par ProxyNinja vers votre ressource via le back‑channel logout (OIDC) ou le Single Logout (SAML/CAS). Votre application doit invalider la session locale en quelques secondes — n’attendez jamais l’expiration naturelle d’un jeton. Voir le guide d’intégration → déconnexion.