Sécurité

Mesures de securite d'OpenLegi MCP

OpenLegi est un point d'accès à des sources juridiques officielles pour des assistants IA. Cette page décrit comment vos accès sont protégés et ce que vous devez faire de votre côté.

Authentification

Deux modes coexistent. Voir « Les deux modes de connexion » pour choisir.

OAuth 2.0 / OpenID Connect — recommandé

OpenLegi est un serveur d'autorisation OAuth 2.0 / OpenID Connect. Le client MCP ne manipule jamais de secret permanent :

  • Vous vous authentifiez une fois, puis le client reçoit un jeton d'accès temporaire (JWT signé en RS256), valable une heure.
  • Le renouvellement est automatique, par un jeton de rafraîchissement à rotation.
  • Les clients sont des clients publics protégés par PKCE : aucun secret client à stocker, donc aucun secret à fuiter.
  • Les portées accordées sont l'intersection de ce que le client demande et de vos droits réels. Un droit retiré prend effet au renouvellement suivant.

Comment un client s'identifie. Deux méthodes, transparentes pour vous :

  • Automatiquement (CIMD, Client ID Metadata Document) — le client présente l'adresse de son document de métadonnées en guise d'identifiant. OpenLegi va le chercher, le valide et enregistre le client sans intervention. Vous n'avez aucun identifiant à saisir.
  • Par identifiant pré-enregistré — pour les clients qui réclament un « Client ID ». L'identifiant public de chaque plateforme est publié sur la page « Problème connexion spécifique à Claude ». Le champ « Client Secret » reste vide dans les deux cas.

L'enregistrement automatique n'est pas ouvert à tous : seuls les domaines explicitement autorisés peuvent l'emprunter, et la récupération du document de métadonnées est durcie contre les requêtes détournées vers des ressources internes. Un domaine inconnu est refusé plutôt que toléré.

Token personnel

Pour les clients qui ne gèrent pas OAuth (Claude Desktop en configuration locale, VS Code, Cursor), un token personnel reste disponible. C'est un secret permanent : il ne perd sa validité que si vous le régénérez.

Trois façons de le transmettre, par ordre de préférence :

  1. En-tête HTTP Authorization: Bearer VOTRE_TOKENrecommandé
  2. Paramètre d'URL ?token=VOTRE_TOKEN
  3. Segment de chemin /mcp/token/VOTRE_TOKEN

Les méthodes 2 et 3 font apparaître le secret dans l'URL, donc potentiellement dans les journaux de serveurs intermédiaires et dans l'historique de votre shell. Préférez l'en-tête chaque fois que votre client le permet.

Transport

Toutes les communications se font en HTTPS, vers le serveur d'authentification (auth.openlegi.fr) comme vers la passerelle MCP (mcp.openlegi.fr).

Protection de vos clés PISTE

Si vous déclarez vos propres identifiants PISTE, le secret client est chiffré au repos (chiffrement symétrique authentifié : AES-128 en mode CBC avec HMAC). Il n'est déchiffré qu'au moment de l'appel à l'API, et n'apparaît jamais dans les journaux ni dans les messages d'erreur.

Conséquence à connaître : OpenLegi ne peut pas vous réafficher un secret déjà enregistré. En cas de perte, régénérez-le côté PISTE et déclarez-le à nouveau.

Journalisation

Les appels sont journalisés pour des raisons techniques et de facturation d'usage : horodatage, service et outil appelés, code de statut, temps de réponse.

Le contenu de vos recherches n'est pas enregistré dans ces journaux. Ils sont purgés automatiquement au bout de 90 jours.

Point d'attention qui ne dépend pas d'OpenLegi : votre conversation est traitée par l'éditeur de votre assistant IA selon ses conditions. Pour un dossier sensible, c'est ce point qu'il faut examiner en premier.

Limitation de débit

Le nombre de requêtes est plafonné pour garantir la disponibilité du service. En déclarant vos propres identifiants PISTE, vos requêtes ne sont plus décomptées. Votre consommation est visible en temps réel depuis le tableau de bord.

Bonnes pratiques

  1. Préférez OAuth quand votre client le permet : rien à copier, expiration automatique.
  2. Ne partagez jamais votre token et ne le committez pas dans un dépôt. En script, passez-le par une variable d'environnement.
  3. Utilisez l'en-tête Authorization plutôt que l'URL.
  4. Ne déclarez vos identifiants PISTE que sur le tableau de bord OpenLegi, jamais dans un fichier de configuration partagé.

En cas de compromission

Si vous utilisez un token : connectez-vous au tableau de bord, régénérez le token, puis mettez à jour vos configurations. L'ancien token cesse immédiatement de fonctionner.

Si vous utilisez OAuth : révoquez la connexion OpenLegi depuis les paramètres de votre client (Claude, ChatGPT, Mistral). Les jetons d'accès expirent d'eux-mêmes en moins d'une heure.

Si vos identifiants PISTE sont concernés : régénérez-les sur piste.gouv.fr, puis remplacez-les dans le tableau de bord.

Signalez l'incident via le formulaire de contact si vous pensez que le problème vient d'OpenLegi.