Configuration sécurisée du copilote IA #
DisponibleLe panneau Paramètres → Identité et intégrations → Copilote IA configure un fournisseur pour l’organisation. Il est réservé aux administrateurs. Le copilote assiste l’analyse et la rédaction, mais ses suggestions restent soumises à validation humaine et ne prennent aucune décision automatiquement.
Fournisseurs et modèles #
RiskPilot propose des préréglages pour Mistral AI, OpenAI et Google Gemini, ainsi qu’un endpoint compatible personnalisé. Les préréglages imposent leur URL HTTPS et proposent un modèle par défaut ; le nom du modèle reste modifiable. Pour un endpoint personnalisé, saisissez une URL HTTPS publique et le modèle attendu.
Clé API et activation #
Utilisez une clé dédiée à RiskPilot, limitée par quotas et restrictions chez le fournisseur. La clé est chiffrée avec le mécanisme de secrets de l’application, n’est jamais renvoyée par l’API et n’est jamais réaffichée. Laisser le champ vide conserve la clé existante. Une clé enregistrée est obligatoire avant d’activer le copilote.
Politique de données #
La politique MINIMAL limite l’envoi aux extraits strictement nécessaires. CONTEXTUAL autorise le contexte GRC explicitement sélectionné. Les instructions système complémentaires sont limitées à 4 000 caractères. N’y placez aucun secret, donnée personnelle inutile ou consigne contournant les validations métier.
Enregistrer et tester #
- Sélectionnez le fournisseur et vérifiez le modèle.
- Saisissez ou renouvelez la clé API.
- Choisissez la politique de données et les instructions complémentaires.
- Enregistrez avant d’activer le copilote.
- Testez la connexion pour Mistral, OpenAI ou Gemini.
Le test appelle la liste des modèles avec un délai maximal de dix secondes. Il est volontairement désactivé pour les endpoints personnalisés afin d’empêcher des requêtes vers des services réseau internes. Un échec retourne AI_CONNECTION_FAILED sans exposer la clé.
Conversation GRC globale #
Le bouton flottant Copilote IA ouvre une conversation disponible depuis tous les écrans authentifiés. Le copilote guide les parcours SMSI, risques, tiers, EBIOS RM, NIS2, RGPD et ISO/IEC 27001. Il distingue les faits, recommandations et informations manquantes ; il ne revendique ni certification ni certitude juridique et ne peut annoncer qu’un objet a été créé.
Avant chaque envoi, l’utilisateur doit autoriser la transmission de la conversation au fournisseur configuré. Une question contient de 3 à 2 000 caractères. Jusqu’à huit messages d’historique, chacun limité à 2 000 caractères, accompagnent la requête. La réponse est plafonnée à 12 000 caractères et suit la langue du profil.
Copilote contextuel de conformité #
Depuis un résultat d’évaluation, Copilote IA commence par afficher exactement le contexte transmis. La politique MINIMAL comprend référentiel, référence, titre et catégorie de l’exigence, niveau de maturité et statut. CONTEXTUAL ajoute description de l’exigence, périmètre, commentaire courant, références de preuves et action de remédiation.
L’utilisateur relit cet aperçu puis donne un consentement explicite pour chaque question. La réponse cite l’exigence comme source et peut expliquer le contrôle, proposer des preuves ou aider à rédiger un commentaire. Elle ne modifie jamais score, statut, preuve, commentaire ou action. Un résultat d’une autre organisation est traité comme introuvable.
Risque tiers généré et relu #
L’onglet Risque tiers guidé, réservé aux Risk managers et administrateurs, accepte une demande de 10 à 2 000 caractères et un consentement explicite. RiskPilot transmet au fournisseur la demande ainsi qu’un catalogue limité à 200 périmètres, 200 actifs et 200 menaces visibles dans l’organisation. Le modèle doit sélectionner uniquement ces identifiants et propose titre, description, vraisemblance et impact de 1 à 5, avec une justification séparée.
Le serveur rejette une réponse incomplète, une note hors limites ou une relation absente du catalogue avec AI_PROVIDER_FAILED ou AI_DRAFT_INVALID_RELATION. Il refuse aussi la génération tant qu’au moins un périmètre, un actif et une menace n’existent pas (RISK_CATALOG_INCOMPLETE). Tous les champs restent modifiables ; le responsable est choisi par l’utilisateur. L’aperçu calcule le score brut, puis une confirmation distincte appelle POST /api/risks et crée un risque THIRD_PARTY, méthode SIMPLIFIED, statut DRAFT, décision REDUCE, sans vulnérabilité ni mesure présélectionnée.
Action de conformité générée et relue #
L’onglet Action conformité guidée est soumis au même rôle et au même consentement. Son catalogue contient au plus 200 résultats visibles dont le statut est PARTIAL, NON_COMPLIANT ou NOT_ASSESSED. Le fournisseur reçoit la demande et les libellés du référentiel, puis propose une exigence, un titre, une description mesurable, une priorité parmi LOW, MEDIUM, HIGH, CRITICAL, un type parmi TECHNICAL, ORGANIZATIONAL, HUMAN, PHYSICAL, CONTRACTUAL, OTHER, une échéance relative de 1 à 365 jours et une justification.
RiskPilot revalide l’identifiant proposé. Un catalogue vide retourne COMPLIANCE_CATALOG_EMPTY et une relation étrangère AI_DRAFT_INVALID_RELATION. L’utilisateur choisit le responsable, peut corriger chaque champ et confirme séparément. POST /api/actions crée alors une action OPEN, origine NON_CONFORMITY, progression 0 %, reliée au résultat, à l’exigence et au référentiel sélectionnés. Aucune preuve n’est ajoutée automatiquement.
L’onglet Document ISMS guidé prépare titre, catégorie et contenu. Après relecture et confirmation, il utilise l’API documentaire pour créer un document INTERNAL, visible par l’organisation, avec le demandeur comme propriétaire et une première version en brouillon. Ce parcours crée un document gouverné initial, pas un SMSI complet.
Les générations de risque et d’action retournent uniquement un brouillon avec automaticWrite: false. Le document ISMS reste un formulaire guidé local. Dans les trois cas, l’écriture passe par une API métier distincte après relecture, case de confirmation et contrôles d’autorisation habituels.
Confidentialité, sécurité et audit #
Le quota partagé des conversations globale et conformité est de 20 appels par utilisateur et par heure dans l’organisation. Les fournisseurs personnalisés sont refusés pour ces conversations avec CUSTOM_PROVIDER_UNAVAILABLE tant que leur protection SSRF n’est pas validée. OpenAI utilise la Responses API avec store: false et un identifiant de sûreté pseudonymisé ; Mistral utilise les chat completions et Gemini generateContent. Le délai fournisseur maximal est de 30 secondes.
Chaque appel réussi journalise fournisseur, modèle, politique et empreinte SHA-256 de la question, sans placer le texte de la conversation dans les métadonnées d’audit. Les appels de conformité ajoutent l’identifiant du résultat et les sources. Dans tous les cas, automaticWrite reste false.
API et validations #
| Méthode | Endpoint | Usage |
|---|---|---|
GET | /api/settings/ai | lire la configuration sans la clé |
PUT | /api/settings/ai | enregistrer fournisseur, modèle, politique et activation |
POST | /api/settings/ai/test | tester les identifiants d’un fournisseur prédéfini |
GET | /api/copilot/context | état, modèle et capacités du copilote global |
POST | /api/copilot | poser une question GRC avec consentement |
POST | /api/copilot/risk-draft | générer un brouillon de risque depuis le catalogue tenant |
GET | /api/copilot/compliance-catalog | lister les écarts éligibles visibles |
POST | /api/copilot/compliance-action-draft | générer un brouillon d’action de conformité |
GET | /api/compliance-results/{id}/copilot/context | prévisualiser les données de conformité transmises |
POST | /api/compliance-results/{id}/copilot | interroger le copilote sur une exigence |
La configuration exige le rôle administrateur, une URL HTTPS, un fournisseur reconnu, un modèle de 120 caractères maximum et une politique MINIMAL ou CONTEXTUAL. Les réglages sont isolés par organisation. Les trois routes de catalogue ou génération structurée exigent ROLE_RISK_MANAGER ; les administrateurs et super-administrateurs satisfont aussi ce contrôle par leur hiérarchie de rôles.
Les routes IA retournent notamment AI_DISABLED (409), CUSTOM_PROVIDER_UNAVAILABLE (422), INVALID_REQUEST (422), INVALID_HISTORY (422), RISK_CATALOG_INCOMPLETE (422), COMPLIANCE_CATALOG_EMPTY (422), AI_RATE_LIMIT (429), AI_PROVIDER_FAILED (502) ou AI_DRAFT_INVALID_RELATION (502). La prévisualisation de conformité peut aussi retourner NOT_FOUND (404).
Exemple d’appel :
{"question":"Quelles preuves réunir pour cette exigence ?","consent":true,"history":[{"role":"user","content":"Nous utilisons un contrôle trimestriel."}]}Exemple de génération structurée ; la réponse doit être affichée et modifiée avant toute création :
{"prompt":"Formaliser la revue trimestrielle des accès privilégiés et conserver les preuves.","consent":true}