Flux OpenID Connect¶
MesMy implémente le flux Authorization Code + PKCE (S256), multi-clients.
Endpoints¶
Tous découvrables via https://auth.mesmy.fr/.well-known/openid-configuration.
| Endpoint | Chemin | Rôle |
|---|---|---|
| Discovery | /.well-known/openid-configuration |
Métadonnées du provider. |
| Authorization | /auth |
Point d'entrée du flux. |
| Token | /token |
Échange du code contre les tokens. |
| UserInfo | /me |
Profil de l'utilisateur (Bearer). |
| JWKS | /jwks |
Clés publiques de vérification (RS256). |
| Introspection | /token/introspection |
Validité d'un token. |
| Revocation | /token/revocation |
Révocation d'un token. |
| End session | /session/end |
Déconnexion RP-initiated. |
Séquence¶
sequenceDiagram
participant App as App tierce
participant B as Navigateur
participant M as MesMy (auth.mesmy.fr)
App->>B: redirect /auth (client_id, PKCE challenge, redirect_uri, scope, state)
B->>M: GET /auth
M-->>B: pas de session → redirection vers /interaction
B->>M: login (email + mot de passe, MFA si activé)
M-->>B: redirect_uri?code=...
B->>App: code
App->>M: POST /token (code + code_verifier PKCE)
M-->>App: id_token + access_token
App->>M: GET /me (Bearer access_token)
M-->>App: profil (name, email, roles, apps…)
Scopes et claims¶
| Scope | Claims renvoyés |
|---|---|
openid |
sub |
profile |
name, updated_at |
email |
email, email_verified |
phone |
phone_number |
mesmy_roles |
roles, apps (identifiants des applications autorisées) |
Règles de sécurité¶
- PKCE S256 requis,
redirect_urivalidés par correspondance exacte (pas de wildcard). - Consentement auto-approuvé pour les clients internes de confiance.
- Durées de vie (access, refresh, code, session) configurables depuis l'admin — voir Variables d'environnement et le back-office.