Serveur OAuth
Au-delà de la consommation de connexions sociales (voir Stratégies), Sovrium peut agir en tant que serveur d'autorisation OAuth 2.1 / OpenID Connect 1.0 — émettant des jetons d'accès et de rafraîchissement pour les applications en aval et les clients IA/MCP qui s'authentifient auprès de votre référentiel d'identités Sovrium.
C'est ainsi que Sovrium devient le fournisseur d'identité d'une flotte d'applications : une instance Sovrium détient les utilisateurs, et d'autres services lui délèguent la connexion.
Activation
Les points de terminaison du serveur OAuth sont montés automatiquement dès que auth est configuré — il n'y a rien à activer dans le schéma.
auth:
strategies:
- type: emailAndPassword
# OAuth-server endpoints mount automatically under /api/auth/oauth2/* once auth is configured.
Aucun réglage de schéma (pour l'instant). Les durées de vie des jetons et autres réglages relèvent de l'opérateur et sont régis par des valeurs par défaut et des variables d'environnement, pas par des champs app.auth. Un futur bloc app.auth.oauthServer.{...} pourra exposer certains réglages une fois le câblage des routes stabilisé et que nous saurons quels paramètres les auteurs de schémas souhaitent réellement. Sans auth configuré, toutes les routes /api/auth/* renvoient 404 — il n'y a aucune identité à autoriser.
Points de terminaison
Le serveur d'autorisation expose la surface standard OAuth 2.1 / OIDC sous /api/auth/oauth2/*, plus des documents de découverte aux chemins well-known.
| Méthode | Chemin | Rôle |
|---|---|---|
GET |
/.well-known/oauth-authorization-server |
Métadonnées du serveur d'autorisation RFC 8414. |
GET |
/.well-known/openid-configuration |
Métadonnées OIDC Discovery 1.0. |
GET |
/.well-known/jwks.json |
JSON Web Key Set — clés publiques pour la vérification des jetons. |
POST |
/api/auth/oauth2/register |
Enregistrement dynamique de client RFC 7591. |
GET |
/api/auth/oauth2/authorize |
Point de terminaison d'autorisation (PKCE-S256 requis). |
POST |
/api/auth/oauth2/consent |
Accusé de réception du consentement de l'utilisateur. |
POST |
/api/auth/oauth2/continue |
Reprise après sélection de compte / post-connexion. |
POST |
/api/auth/oauth2/token |
Point de terminaison de jeton (authorization_code + refresh_token). |
GET |
/api/auth/oauth2/userinfo |
Revendications OIDC UserInfo pour le jeton d'accès. |
POST |
/api/auth/oauth2/introspect |
Introspection de jeton RFC 7662. |
POST |
/api/auth/oauth2/revoke |
Révocation de jeton RFC 7009. |
Valeurs par défaut
Sovrium règle le serveur d'autorisation pour l'auto-hébergement et l'usage par des clients IA dès le départ :
| Paramètre | Par défaut | Pourquoi |
|---|---|---|
| Enregistrement dynamique de client | Activé | Les clients MCP (Claude Desktop, ChatGPT Dev Mode) s'enregistrent eux-mêmes sans action de l'opérateur. |
| Durée de vie du jeton d'accès | 1 heure | Standard de l'industrie. |
| Durée de vie du jeton de rafraîchissement | 30 jours | Standard de l'industrie. |
| Page de connexion | /login |
Page du moteur Sovrium. |
| Page de consentement | /oauth/consent |
Page du moteur Sovrium. |
| PKCE | Requis (S256) | OAuth 2.1 impose PKCE pour le flux de code d'autorisation. |
| Signature des jetons | Clés EdDSA rotatives | id_token et jetons d'accès signés publiés via le point de terminaison JWKS. |
Clients MCP & IA
L'enregistrement dynamique de client est activé spécifiquement pour que les assistants IA et les clients MCP puissent s'enregistrer eux-mêmes et obtenir des jetons, puis appeler les tables exposées via MCP de votre application (soumises au même RBAC et aux mêmes permissions de table que tout autre appelant). Cela permet à un client IA d'agir au nom d'un utilisateur réel, avec le même accès que cet utilisateur aurait dans l'interface.
Pages associées
- Stratégies — Sovrium en tant que client OAuth (connexion sociale), la direction inverse.
- Rôles & RBAC — le modèle d'accès auquel les jetons sont liés.
- Permissions de table — ce qu'un jeton autorisé peut atteindre.
- Variables d'environnement —
AUTH_SECRET(signature des jetons) etBASE_URL(URL d'émetteur / de découverte).