Référence¶
Dernière mise à jour : 8 octobre 2026
Cette page est la référence technique complète pour Tolk for Cisco UC — outils MCP, prompts, ressources, points de terminaison HTTP, événements du journal d'audit, types d'erreurs, conformité aux normes, scripts, modules internes et glossaire.
Référence des outils MCP¶
Tous les outils utilisent le préfixe d'espace de noms de leur module. Le RBAC s'applique au niveau des opérations (et non par outil) : les opérations AXL, RIS, SSH, CUPI, téléphone, xAPI RoomOS, Serviceability et rapport sont vérifiées par rapport aux listes d'autorisation et aux limites de débit du profil du client, et une opération refusée retourne une ProfilePermissionError. Les outils de gestion des identifiants (store/update/delete/list) sont accessibles à tout client authentifié, car chaque client gère son propre jeu d'identifiants Cisco UC. Le product_scope d'un client détermine toujours quels modules produit (CUCM, IMP, CUC) lui sont visibles.
Module CUCM¶
| Outil | Description |
|---|---|
cucm_axl_call |
Exécuter une opération SOAP AXL (get, list, add, update, remove, do, SQL, …) |
cucm_check_connectivity |
Tester la connectivité AXL, RIS et SSH vers un hôte CUCM — retourne la latence par service |
cucm_cop_install_list |
Lister les jobs d'installation de COP files du client appelant (pour en reprendre un) |
cucm_cop_install_start |
Installer des COP files un par un (cluster ou nœud par nœud) ; cmterm-* : Device Defaults gardés ou restaurés |
cucm_cop_install_status |
Suivre un job COP (reprise après perte SSH / redémarrage) — rapport final ✅/❌ par nœud |
cucm_cop_precheck |
Pré-contrôles COP (lecture seule) : réplication, upgrades, disque, version, NTP, DRF, certificats |
cucm_delete_credentials |
Supprimer les informations d'identification AXL pour un hôte CUCM |
cucm_download_axl_toolkit |
Télécharger les schémas AXL WSDL/XSD depuis un nœud CUCM vers le cache local |
cucm_download_ris_toolkit |
Télécharger les schémas WSDL RIS depuis un nœud CUCM vers le cache local |
cucm_get_version |
Obtenir la version CUCM d'un nœud (via AXL) |
cucm_list_axl_operations |
Introspecter le WSDL AXL — lister les opérations SOAP disponibles, avec filtre optionnel |
cucm_list_credentials |
Lister les hôtes CUCM configurés (AXL + OS, + téléphones / RoomOS si le sous-module est chargé) |
cucm_os_delete_credentials |
Supprimer les informations d'identification OS Admin CLI pour un hôte CUCM |
cucm_os_run_command |
Exécuter une commande VOS CLI via SSH sur un nœud CUCM |
cucm_os_store_credentials |
Stocker les informations d'identification OS Admin CLI (SSH) pour un hôte CUCM |
cucm_os_trust_fingerprint |
Approuver ou rejeter l'empreinte SSH de l'hôte pour un nœud CUCM |
cucm_os_update_credentials |
Mettre à jour les informations d'identification OS Admin CLI pour un hôte CUCM |
cucm_restart_feature_service |
Redémarrer un service fonctionnel (ex. Cisco Tftp) sur un nœud via Serviceability (ControlCenterServices) — services plateforme : CLI utils service restart |
cucm_risport_query |
Interroger l'état d'enregistrement temps réel (IP, nœud) d'un ou plusieurs devices via RIS (RisPort70) |
cucm_store_credentials |
Stocker les informations d'identification AXL (HTTPS/REST) pour un hôte CUCM |
cucm_update_credentials |
Mettre à jour les informations d'identification AXL pour un hôte CUCM |
Gestion des schémas AXL / RIS
cucm_download_axl_toolkit et cucm_download_ris_toolkit téléchargent les fichiers WSDL/XSD directement depuis le publisher CUCM. Les schémas doivent être téléchargés avant que les opérations AXL ou RIS correspondantes puissent être utilisées pour la version de ce CUCM.
Sous-module CUCM — téléphones IP (SERVER_CUCM_PHONES_ENABLED)¶
Chargé quand SERVER_CUCM_PHONES_ENABLED='1' (défaut). Capture d'écran, pages d'information web et message texte : téléphones IP Cisco 88xx / 98xx uniquement, via le serveur web du téléphone (HTTPS, HTTP Basic) ; les identifiants sont stockés en entrées cucm-phone. Les campagnes de mise à jour firmware (78xx / 88xx / 98xx, ATA 19x, sans fil 8821 / 840 / 860) passent uniquement par AXL et RisPort (identifiants CUCM).
| Outil | Description |
|---|---|
cucm_phone_delete_credentials |
Supprimer les identifiants d'accès web des téléphones |
cucm_phone_screenshot |
Capturer une capture d'écran de l'affichage d'un téléphone IP Cisco (retourne PNG) |
cucm_phone_send_message |
Envoyer un message texte à un ou plusieurs téléphones IP Cisco (88xx/98xx) |
cucm_phone_store_credentials |
Stocker les identifiants d'accès web des téléphones (HTTP Basic) |
cucm_phone_update_credentials |
Mettre à jour les identifiants d'accès web des téléphones |
cucm_phone_web_info |
Lire les pages d'information web du téléphone, analysées (équipement, réseau, ports + voisin CDP/LLDP, flux RTP, messages d'état, journaux...) : une page, une liste ou toutes, sortie compacte / résumée, horodatages UTC, audit de la trust list ITL/CTL (comparaison facultative avec CUCM), plusieurs téléphones à la fois (ip_phones, trust_summary de parc) |
cucm_phone_upgrade_campaign_create |
Campagne de mise à jour firmware : inventaire en lecture seule (listPhone, RisPort, état ITL par téléphone, Device Defaults), exclusions, versions sources par modèle, plan pilote + vagues, estimation de durée (brouillon) |
cucm_phone_upgrade_campaign_start |
Démarrer une campagne après l'unique confirmation de l'utilisateur : vagues côté serveur (Phone Load Name + restartPhone) et suivi RisPort |
cucm_phone_upgrade_campaign_status |
Avancement (vagues, compteurs, points d'attention) et rapport final ; relance un pilote perdu |
cucm_phone_upgrade_campaign_control |
Suspendre / reprendre / arrêter une campagne, aligner les Device Defaults, revérifier les téléphones reportés |
cucm_phone_upgrade_campaign_list |
Lister les campagnes de mise à jour des téléphones du client courant |
Sous-module CUCM — codecs RoomOS (SERVER_CUCM_ROOMOS_ENABLED)¶
Chargé quand SERVER_CUCM_ROOMOS_ENABLED='1' (défaut). Terminaux Cisco RoomOS (Room / Desk / Board / Codec) pilotés par leur xAPI en HTTPS (/getxml en lecture, /putxml en écriture et pour les commandes). Les identifiants sont stockés en entrées cucm-roomos : une entrée sur l'hôte CUCM sert de défaut pour le cluster, une entrée sur l'IP d'un codec la surcharge pour ce codec.
| Outil | Description |
|---|---|
cucm_roomos_store_credentials |
Stocker les identifiants xAPI RoomOS (host = nœud CUCM pour le défaut du cluster, ou IP du codec pour une surcharge) |
cucm_roomos_update_credentials |
Mettre à jour les identifiants xAPI RoomOS |
cucm_roomos_delete_credentials |
Supprimer les identifiants xAPI RoomOS |
cucm_roomos_xapi_lookup |
Rechercher dans la référence xAPI embarquée (RoomOS 26.9.1) : chemins, paramètres, valeurs autorisées, rôles — sans accès au codec. Obligatoire avant toute écriture, sauf si un prompt donne la commande exacte |
cucm_roomos_get_info |
Identité du codec : produit, version logicielle, numéro de série, uptime |
cucm_roomos_xstatus |
Lire un chemin xStatus (/getxml) |
cucm_roomos_xconfiguration_get |
Lire un chemin xConfiguration (/getxml) |
cucm_roomos_xconfiguration_set |
Modifier une feuille xConfiguration (/putxml) |
cucm_roomos_xcommand |
Exécuter une xCommand avec ses paramètres (/putxml) — ex. annuaire local, veille, appel |
cucm_roomos_send_message |
Afficher un message à l'écran d'un ou plusieurs codecs (UserInterface Message Alert Display) |
cucm_roomos_trust_check |
Conformité ITL / CTL des codecs par rapport à leur nœud TFTP CUCM (empreintes SHA-1 comparées, pas seulement la présence) — obligatoire avant une mise à jour logicielle |
cucm_roomos_campaign_create |
Créer une campagne de mise à jour RoomOS : journal persistant par client + paramètres de suivi côté serveur (statut draft jusqu'à la confirmation unique) |
cucm_roomos_campaign_snapshot |
Lire les codecs de la campagne (RisPort + /Status + profil Navigator) : éligibilité, enregistrement, identité, Room Navigator, disponibilité |
cucm_roomos_campaign_record |
Journaliser une décision ou un fait : confirmation unique, suspension / reprise / clôture, exclusion d'un terminal, charge précédente, échec du déclenchement AXL, revue des Device Defaults |
cucm_roomos_campaign_start_upgrade |
Contrôle à appeler juste avant updatePhone + applyPhone / restartPhone : revérifie le codec, ouvre la tentative et démarre le suivi côté serveur |
cucm_roomos_campaign_align_load |
Aligner le Phone Load Name d'un codec déjà à la cible sans déploiement logiciel (automatique, charge cible vérifiée, non bloquant ; updatePhone + relecture uniquement, sans apply / restart, absence de redémarrage vérifiée) |
cucm_roomos_campaign_status |
État de la campagne, attente côté serveur du prochain cycle de suivi (≤ 50 s), lignes du tableau final, bilan des terminaux distinct de l'état de campagne, prochaine action |
cucm_roomos_campaign_list |
Lister les campagnes de mise à jour du client courant (reprise depuis une nouvelle session) |
Permissions xAPI RoomOS
Les appels RoomOS sont contrôlés par la section cucm.roomos du profil client : allowed_prefixes (ex. get Status, get Configuration, set Configuration, Command Phonebook). Les opérations sensibles (Command SystemUnit FactoryReset, Command SystemUnit SoftwareUpgrade, Command Macros, Command UserManagement, Command Security, Command Provisioning, set Configuration Network, set Configuration Security, …) figurent dans la même liste mais sont bloquées par défaut (tuiles rouges) : elles ne sont jamais accordées par un préfixe plus large comme Command, uniquement par une entrée explicite. Les commandes multilignes (macros, extensions d'interface, certificats) ne sont pas prises en charge.
Module IMP¶
| Outil | Description |
|---|---|
imp_axl_call |
Exécuter une opération SOAP AXL |
imp_check_connectivity |
Tester la connectivité AXL et SSH vers un hôte IMP — retourne la latence par service |
imp_delete_credentials |
Supprimer les informations d'identification AXL pour un hôte IMP |
imp_download_axl_toolkit |
Télécharger les schémas AXL WSDL/XSD depuis un nœud IMP vers le cache local |
imp_get_version |
Obtenir la version IMP d'un nœud (via AXL) |
imp_list_axl_operations |
Introspecter le WSDL AXL — lister les opérations SOAP disponibles, avec filtre optionnel |
imp_list_credentials |
Lister les hôtes IMP configurés (AXL + OS) pour le client courant |
imp_os_delete_credentials |
Supprimer les informations d'identification OS Admin CLI pour un hôte IMP |
imp_os_run_command |
Exécuter une commande VOS CLI via SSH sur un nœud IMP |
imp_os_store_credentials |
Stocker les informations d'identification OS Admin CLI (SSH) pour un hôte IMP |
imp_os_trust_fingerprint |
Approuver ou rejeter l'empreinte SSH de l'hôte pour un nœud IMP |
imp_os_update_credentials |
Mettre à jour les informations d'identification OS Admin CLI pour un hôte IMP |
imp_store_credentials |
Stocker les informations d'identification AXL (HTTPS/REST) pour un hôte IMP |
imp_update_credentials |
Mettre à jour les informations d'identification AXL pour un hôte IMP |
Module CUC¶
| Outil | Description |
|---|---|
cuc_check_connectivity |
Tester la connectivité CUPI et SSH vers un hôte CUC — retourne la latence par service |
cuc_cupi_call |
Appel REST CUPI arbitraire (GET / POST / PUT / DELETE sous /vmrest/) |
cuc_cupi_list |
Listing paginé CUPI — GET /vmrest/<resource> avec query/sort/pagination optionnels |
cuc_delete_credentials |
Supprimer les informations d'identification CUPI pour un hôte CUC |
cuc_get_version |
Obtenir la version produit CUC via GET /vmrest/version/product |
cuc_list_credentials |
Lister les hôtes CUC configurés (CUPI + OS) pour le client courant |
cuc_os_delete_credentials |
Supprimer les informations d'identification OS Admin CLI pour un hôte CUC |
cuc_os_run_command |
Exécuter une commande VOS CLI via SSH sur un nœud CUC |
cuc_os_store_credentials |
Stocker les informations d'identification OS Admin CLI (SSH) pour un hôte CUC |
cuc_os_trust_fingerprint |
Approuver ou rejeter l'empreinte SSH de l'hôte pour un nœud CUC |
cuc_os_update_credentials |
Mettre à jour les informations d'identification OS Admin CLI pour un hôte CUC |
cuc_store_credentials |
Stocker les informations d'identification CUPI (REST) pour un hôte CUC |
cuc_update_credentials |
Mettre à jour les informations d'identification CUPI pour un hôte CUC |
CUPI vs AXL
Cisco Unity Connection n'expose pas AXL/SOAP. Toutes les opérations de
provisioning et de lecture passent par CUPI (Cisco Unity Provisioning
Interface, REST sur https://<host>:8443/vmrest/). Il n'y a aucun toolkit
WSDL à télécharger et aucune notion de cluster — les informations
d'identification et opérations sont gérées par hôte.
Module Common¶
| Outil | Description |
|---|---|
common_download_report |
Télécharger un fichier de rapport en ligne via MCP (PDF en blob binaire, Markdown en texte) |
common_export_report_pdf |
Exporter un rapport Markdown en PDF via WeasyPrint |
common_list_reports |
Lister tous les rapports (PDF et Markdown) disponibles pour le client authentifié |
common_read_report |
Lire le contenu d'un rapport (par morceaux pour les fichiers volumineux) |
common_write_report |
Écrire du contenu dans un rapport Markdown. Modes : create, append, overwrite, resume, insert_after |
Modes de rapport
create— échoue si le fichier existe ; évite l'écrasement accidentelappend— ajoute du contenu à la fin d'un fichier existantoverwrite— remplace intégralement le contenu du fichierresume— reprend un rapport en cours à partir de la dernière section écriteinsert_after— insère du contenu après une section d'ancrage spécifiée
Module Infra¶
Ces outils sont disponibles quel que soit le niveau de licence et ne nécessitent qu'un token Bearer valide.
| Outil | Description |
|---|---|
infra_get_doc |
Récupérer le contenu complet d'une doc/ressource par son nom |
infra_get_my_permissions |
Matrice RBAC autoritative du client appelant (allowlists et limites de débit par produit / par service) |
infra_get_prompt |
Récupérer le contenu complet d'un prompt par son nom |
infra_health |
Sonde de disponibilité/préparation — status, ready, état de licence, nom du serveur, uptime |
infra_init_session |
Premier appel OBLIGATOIRE — retourne le catalogue complet des outils/prompts et la matrice RBAC effective du client |
infra_list_available_products |
Produits sous licence vs périmètre produit du client appelant (et différence hors périmètre) |
infra_list_docs |
Lister toutes les ressources/docs MCP disponibles (filtrées par scope produit RBAC) |
infra_list_prompts |
Lister tous les prompts disponibles (filtrés par scope produit RBAC) |
infra_metrics |
Métriques Prometheus brutes (compteurs, jauges, histogrammes) pour le serveur MCP |
infra_server_status |
Statut complet du serveur — server, license, backup, requests (compteurs par catégorie), security (TLS, OAuth) |
Outils prompts et docs pour les clients non compatibles
La plupart des clients MCP ne supportent pas les capacités natives prompts/list / prompts/get ni resources/list / resources/read.
Les outils infra_list_prompts / infra_get_prompt et infra_list_docs / infra_get_doc exposent le même contenu via des outils MCP standard,
permettant à tous les clients d'accéder aux procédures, workflows d'audit et guides de référence indépendamment de leur support natif.
Référence des prompts MCP¶
Les prompts sont des workflows guidés en plusieurs étapes. L'agent IA charge un prompt et suit ses instructions, appelant des outils de manière autonome et consultant des ressources pour accomplir le workflow.
| Prompt | Module | Description |
|---|---|---|
cuc_procedure |
CUC | ⚠️ Pré-requis obligatoire — workflows CUPI (REST) et SSH à lire avant toute opération CUC. |
cuc_security_audit |
CUC | Audit de sécurité Cisco Unity Connection couvrant le durcissement VOS, l'exposition CUPI/REST, la sécurité de la messagerie vocale et la posture TLS/certificats. Produit un rapport Markdown avec export PDF. |
cucm_procedure |
CUCM | ⚠️ Pré-requis obligatoire — workflows AXL, RIS et SSH, résolution modèle / IP des terminaux et aiguillage vers les sous-modules, à lire avant toute opération CUCM. |
cucm_phone_procedure |
CUCM (téléphones) | ⚠️ Pré-requis obligatoire pour les opérations téléphones IP (identifiants, capture d'écran, pages d'information web, message texte). Chargé avec le sous-module téléphones IP. |
cucm_roomos_procedure |
CUCM (RoomOS) | ⚠️ Pré-requis obligatoire pour les opérations codecs RoomOS : identifiants (défaut cluster / surcharge par codec), recherche xAPI obligatoire, règles lecture/écriture, annuaire, messages. Chargé avec le sous-module RoomOS. |
cucm_security_audit |
CUCM | Audit de sécurité CUCM automatisé basé sur le Guide de sécurité Cisco version 15. Exécute une séquence structurée de requêtes AXL, de commandes SSH et de vérifications RIS. Produit un rapport Markdown avec export PDF. |
imp_procedure |
IMP | ⚠️ Pré-requis obligatoire — workflows AXL et SSH à lire avant toute opération IMP. |
imp_security_audit |
IMP | Workflow d'audit de sécurité équivalent pour les nœuds IMP. Couvre les contrôles de sécurité spécifiques à IM & Presence et les recommandations de durcissement Cisco. |
Prérequis des prompts
Les prompts d'audit de sécurité nécessitent un profil admin ou auditor. Ils invoquent plusieurs outils en séquence — assurez-vous que les limites de débit du profil s'adaptent à la charge de travail complète de l'audit.
Compatibilité des prompts
Tous les prompts listés ci-dessus sont également accessibles via les outils infra_list_prompts et infra_get_prompt pour les clients MCP qui ne supportent pas les prompts natifs (Cursor, Continue, Copilot, etc.).
Sous-prompts d'orchestration de l'audit de sécurité
L'audit CUCM est découpé en interne en sous-prompts par chapitre (cucm_security_audit_ch01_02 … cucm_security_audit_ch17b) plus cucm_security_audit_report. Ils sont invoqués par cucm_security_audit et ne sont pas destinés à être appelés directement.
Workflows guidés par produit¶
Prompts MCP que l'agent IA suit pas à pas :
| Produit | Workflow (prompt MCP) | Description |
|---|---|---|
| CUCM | cucm_security_audit |
Audit de sécurité de configuration basé sur le Cisco Security Guide (contrôles AXL, SSH et RIS), rapport Markdown avec export PDF. |
| CUCM | cucm_cop_file_install_workflow |
Installation de fichiers COP (patchs, device packs, firmwares téléphones / RoomOS) sur un cluster CUCM : pré-vérification, installation, suivi de progression. |
| CUCM – Phones | cucm_phone_software_upgrade_workflow |
Campagne de mise à jour firmware des téléphones IP : pré-requis (COP, loads par modèle, redémarrage TFTP), vagues, Device Defaults, suivi automatique, journal persistant, rapport final. |
| CUCM – Phones | cucm_phone_blf_edit_workflow |
Ajout, modification ou suppression d'une numérotation rapide BLF sur un téléphone IP Cisco. |
| CUCM – RoomOS | cucm_roomos_software_upgrade_workflow |
Campagne de mise à jour logicielle RoomOS via CUCM : contrôles ITL/CTL et Room Navigator, suivi automatique, journal persistant, rapport final. |
| CUCM – RoomOS | cucm_roomos_local_phonebook_edit_workflow |
Consultation, ajout, modification ou suppression de dossiers et contacts dans l'annuaire local d'un terminal RoomOS. |
| IMP | imp_security_audit |
Audit de sécurité de configuration IM & Presence, rapport Markdown avec export PDF. |
| CUC | cuc_security_audit |
Audit de sécurité Unity Connection (durcissement VOS, exposition CUPI, sécurité de la messagerie vocale, TLS/certificats), rapport Markdown avec export PDF. |
Chaque produit expose également un prompt d'instructions obligatoires (cucm_procedure, cucm_phone_procedure, cucm_roomos_procedure, imp_procedure, cuc_procedure).
D'autres workflows peuvent être créés sous forme de prompts personnalisés depuis l'interface web d'administration.
Référence des ressources MCP¶
Les ressources sont des documents de référence en lecture seule intégrés que l'agent IA peut consulter lors des workflows d'appel d'outils. Elles sont servies via le protocole de ressource MCP. Toutes les ressources partagent le schéma docs://, avec le nom du module comme premier segment de chemin (docs://<module>/…).
Ressources CUCM :
| Modèle URI | Contenu |
|---|---|
docs://cucm/cli-guide/* |
Référence des commandes VOS CLI de Cisco CUCM |
docs://cucm/security-guide/* |
Chapitres du Guide de sécurité Cisco CUCM (version 15) |
docs://cucm/roomos-xapi-guide/* |
Référence xAPI Cisco RoomOS (RoomOS 26.9.1), un chapitre par domaine xAPI (Audio, Conference, Phonebook, UserInterface, …) plus une présentation du transport xAPI HTTPS — chargée avec le sous-module RoomOS |
Ressources IMP :
| Modèle URI | Contenu |
|---|---|
docs://imp/cli-guide-readonly/* |
Référence des commandes VOS CLI de Cisco IMP (show/utils/file/run/set/unset/delete/license) |
docs://imp/security-guide/* |
Chapitres du Guide de sécurité Cisco IMP |
Ressources CUC :
| Modèle URI | Contenu |
|---|---|
docs://cuc/cli-guide-readonly/* |
Référence des commandes VOS CLI de Cisco CUC (show/utils/file/run/set/unset/delete/license) |
docs://cuc/cupi/reference |
Catalogue des endpoints REST CUPI — verbes, payloads, pagination, exemples (CUC 14 et 15) |
docs://cuc/security-guide/* |
Chapitres du Guide de sécurité Cisco CUC (version 15) (quand fournis) |
Référence des points de terminaison HTTP¶
Points de terminaison du listener MCP (https://<hôte>:<MCP_SERVER_PORT>, 8443 par défaut).
| Méthode | Point de terminaison | Authentification requise | Description |
|---|---|---|---|
GET |
/.well-known/oauth-authorization-server |
Aucune | Métadonnées du serveur d'autorisation OAuth 2.0 (RFC 8414) — modes OAuth uniquement |
GET |
/.well-known/oauth-protected-resource |
Aucune | Métadonnées de la ressource protégée OAuth 2.0 (RFC 9728) — modes OAuth uniquement |
GET |
/.well-known/oauth-protected-resource/mcp |
Aucune | Métadonnées de la ressource protégée OAuth 2.0 — variante chemin MCP (RFC 9728) — modes OAuth uniquement |
GET |
/authorize |
Aucune | Point d'autorisation OAuth 2.1 — affiche la page de connexion (RFC 6749 §3.1, RFC 7636 PKCE) — modes OAuth uniquement |
POST |
/authorize |
Client ID + secret client (formulaire) | Traite le formulaire de connexion, vérifie la liste blanche des redirect_uri, redirige avec un code d'autorisation — modes OAuth uniquement |
GET |
/health |
Aucune | Sonde de vivacité / disponibilité — toujours HTTP 200 ; JSON avec status, ready, license, maintenance, server, uptime_s |
POST / GET / DELETE |
/mcp/ |
Bearer token | Point de terminaison du protocole MCP (transport Streamable HTTP) |
GET |
/metrics |
Bearer token | Métriques Prometheus (format d'exposition texte) |
POST |
/revoke |
Bearer token | Révocation de token (RFC 7009) — un client ne peut révoquer que ses propres tokens — modes OAuth uniquement |
GET |
/status |
Bearer token | Statut complet du serveur en JSON (serveur, licence, sauvegarde, requêtes, sécurité) |
POST |
/token |
Secret client (Basic ou formulaire) ou vérificateur PKCE | Émission de token OAuth 2.1 — grant client_credentials ou authorization_code (PKCE) — modes OAuth uniquement |
Méthodes du point de terminaison MCP
Le point de terminaison /mcp/ accepte POST (envoi de message), GET (ouverture du flux SSE) et DELETE (fermeture de session), conformément à la spécification du transport MCP Streamable HTTP.
Points de terminaison OAuth
Les points de terminaison modes OAuth uniquement ne sont exposés que lorsque le mode d'authentification global est oauth2 ou jwt+oauth2 (voir Modes d'authentification). En mode jwt, ils ne sont pas enregistrés.
Listener de l'Admin Web UI
L'Admin Web UI est servie par un listener HTTPS distinct (https://<hôte>:<ADMIN_UI_PORT>/admin/, 9443 par défaut), protégé par sa propre liste blanche d'IP sources et par une authentification par session (voir Sécurité — Admin Web UI). Il n'expose aucune API destinée aux clients MCP.
Référence des événements du journal d'audit¶
Le journal d'audit est un fichier dédié, logs/audit.log, avec ses propres paramètres de rotation (Logging → Rotation des logs d'audit). Il contient un objet JSON par ligne et peut être consulté et filtré depuis la page Audit de l'Admin Web UI.
{"timestamp": "2026-10-05 19:25:45,532", "type": "AUDIT", "client": "alice", "profile": "admin", "status": "ALLOWED", "host": "cucm-pub.example.com", "action": "cucm/axl/getPhone"}
Champs communs¶
| Champ | Description |
|---|---|
timestamp |
Horodatage en heure locale du serveur (AAAA-MM-JJ HH:MM:SS,mmm) |
type |
Toujours AUDIT |
status |
Résultat de l'événement — voir les tableaux ci-dessous |
action |
Catégorie et opération de l'événement, sous la forme <catégorie>/<opération> (ex. auth/verify, cucm/axl/getPhone, adminui/settings-edit) |
client |
Nom du client MCP ; server pour les événements internes, adminui pour l'Admin Web UI, unknown si l'appelant n'est pas identifié |
profile |
Profil RBAC du client (profil administrateur pour l'Admin Web UI) ; system pour les événements internes, none si inconnu |
source_ip |
Adresse IP source de la requête (src pour les événements de l'Admin Web UI) |
host |
Nœud Cisco UC (ou terminal) cible, server pour les contrôles côté serveur |
reason |
Motif d'échec ou de rejet, le cas échéant (ex. token_expired, invalid_client_secret, redirect_uri_not_whitelisted) |
D'autres champs dépendent de l'événement : tool, prompt, uri, error_type, user (connexion admin), key (paramètre), fingerprint, scope, grant, jti…
Événements d'authentification¶
action |
Valeurs de status |
Journalisé lorsque |
|---|---|---|
auth/verify, token/verify |
AUTH_SUCCESS, AUTH_FAILED, AUTH_REVOKED, AUTH_BLOCKED |
Chaque vérification de bearer token MCP (reason : invalid_token, token_expired, token_malformed, subject_not_in_auth_clients…) |
oauth/authorize |
AUTH_CODE_ISSUED, AUTH_FAILED, AUTH_BLOCKED |
Formulaire de connexion OAuth soumis (flux code d'autorisation + PKCE) |
oauth/token |
TOKEN_ISSUED, AUTH_FAILED, AUTH_BLOCKED |
Demande de token OAuth (grant : client_credentials / authorization_code) |
oauth/revoke |
TOKEN_REVOKED, TOKEN_REVOKE_NOOP, TOKEN_REVOKE_DENIED, TOKEN_REVOKE_FAILED |
Demande de révocation de token (RFC 7009) |
| (aucune) | IP_BLACKLISTED, IP_RELEASED |
Fail2Ban : IP source mise en liste noire après trop d'échecs (ou par un administrateur) / libérée |
client/sync |
TOKEN_CREATED, TOKEN_RENEWED, TOKEN_REMOVED, SECRET_CREATED, SECRET_REMOVED, TOKEN_VERIFY_ERROR |
Identifiants client provisionnés, renouvelés ou purgés au démarrage |
Événements d'appels MCP¶
Chaque requête MCP est journalisée deux fois : une fois par le contrôle RBAC / limite de débit de l'opération, une fois pour l'appel lui-même.
action |
Valeurs de status |
Journalisé lorsque |
|---|---|---|
<produit>/<protocole>/<opération> |
ALLOWED, DENIED, RATE_LIMITED, RATE_LIMITED_GLOBAL |
Contrôle RBAC et limite de débit d'une opération (ex. cucm/axl/updateLine, imp/ssh/show version active, common/report/write) |
(aucune — champ tool) |
TOOL_CALLED, TOOL_FAILED |
Appel d'un outil MCP (TOOL_FAILED porte error_type et reason) |
(aucune — champ prompt) |
PROMPT_READ, PROMPT_FAILED |
Lecture d'un prompt MCP |
(aucune — champ uri) |
RESOURCE_READ, RESOURCE_FAILED |
Lecture d'une ressource MCP |
input_validation |
REJECTED |
Paramètres d'outil rejetés par la validation des entrées |
mcp/<méthode> |
MAINTENANCE_REJECTED |
Requête refusée pendant le mode maintenance |
cucm/phone/…, cucm/roomos/…, cucm/serviceability/restart <service> |
SENT, PARTIAL, EXECUTED, APPLIED, FAILED, SERVICE_<STATUS> |
Actions sur les terminaux (message texte, commande / configuration xAPI) et redémarrages de services |
Valeurs de statut
RATE_LIMITED correspond à la limite par client (profil RBAC) ; RATE_LIMITED_GLOBAL à la limite globale optionnelle par hôte de destination, tous clients confondus.
Événements d'identifiants et de confiance des hôtes¶
action |
Valeurs de status |
Journalisé lorsque |
|---|---|---|
credentials/<service> |
STORED, UPDATED, DELETED |
Un client enregistre, met à jour ou supprime des identifiants Cisco UC |
ssh/fingerprint |
TRUSTED |
Une empreinte d'hôte SSH est approuvée (champ fingerprint, SHA-256) |
Événements des rapports¶
action |
Valeurs de status |
Journalisé lorsque |
|---|---|---|
report/<type> |
WRITTEN |
Rapport écrit (champs mode, file) |
report/<type> |
EXPORTED |
Rapport exporté en PDF |
Événements serveur, licence et intégrité¶
action |
Valeurs de status |
Journalisé lorsque |
|---|---|---|
server/start, server/stop |
STARTED, STOPPED, FAILED, MCP_DISABLED |
Démarrage / arrêt du serveur ; MCP désactivé par l'état de la licence |
startup |
SSL_DISABLED |
Vérification des certificats désactivée vers un produit Cisco UC |
license/verify, license/watchdog, license/import, license/delete |
LICENSE_OK, LICENSE_GRACE, LICENSE_EXPIRED, LICENSE_INVALID, LICENSE_MISSING, LICENSE_EXCEEDED, LICENSE_LOST, LICENSE_IMPORTED, LICENSE_DELETED |
Vérification de licence au démarrage, watchdog périodique, import / suppression depuis la Web UI |
integrity/watchdog |
INTEGRITY_OK, INTEGRITY_VIOLATION, INTEGRITY_ERROR |
Vérification d'intégrité du logiciel (démarrage et périodique) |
transport/<méthode> |
TRANSPORT_BLOCKED |
En-tête Host ou Origin invalide (protection DNS rebinding) |
Événements de l'Admin Web UI¶
Chaque action de l'Admin Web UI est journalisée avec client = adminui, l'identifiant de l'administrateur dans user, son profil administrateur dans profile et l'IP source dans src.
action |
Journalisé lorsque |
|---|---|
adminui/start |
Démarrage du listener de l'Admin UI |
adminui/login, adminui/password-change, adminui/access |
Connexion (SUCCESS, FAILED, LOCKED), changement de mot de passe, requête refusée (IP source non autorisée ou en liste noire) |
adminui/settings-edit, -revert, -revert-all, -apply, -new-ack |
Paramètre modifié (en attente), annulé, appliqué avec redémarrage, nouveau paramètre acquitté |
adminui/file-edit, file-delete, file-delete-pair, file-hostkey-scan, ca-bundle-add, ca-bundle-remove, key-generate, csr-generate, secret-generate, sftp-password, rsa-regenerate |
Gestion des clés, certificats, bundles CA et secrets |
adminui/client-create, -edit, -delete, -reveal, -reset-tokens, client-profile-add, -edit, -delete, reveal-template |
Clients MCP et profils clients |
adminui/admin-create, -edit, -delete, -reset-password, admin-profile-create, -delete, admin-rights-save |
Administrateurs et profils administrateurs |
adminui/prompts-save, -import, -delete, -toggle |
Prompts personnalisés |
adminui/backup-now, -restore, -download, -delete, sftp-export-now, reports-delete |
Sauvegardes et rapports |
adminui/license-import, license-delete |
Gestion de la licence |
adminui/system-maintenance-*, system-blacklist, system-unblacklist, system-reset-stats |
Page Système & rechargement |
adminui/show-tech-run, show-tech-delete, tools-connectivity, tools-add-to-client |
Diagnostics et outils |
Les événements de l'Admin UI utilisent les statuts SUCCESS, OK, FAILED, DENIED, LOCKED, STARTED et CANCELLED.
Injection dans les journaux
Chaque valeur journalisée est assainie (caractères de contrôle échappés) avant écriture (CWE-117).
Référence des types d'erreurs¶
| Erreur / Statut | Statut HTTP | Signification |
|---|---|---|
AXLOperationError |
400 | L'opération SOAP AXL a échoué ou a retourné une erreur depuis Cisco UC |
AXLValidationError |
400 | Échec de la validation des entrées AXL (SQL incorrect, path traversal, etc.) |
CredentialError |
400 | Erreur de stockage des informations d'identification (introuvable, échec de déchiffrement) |
OAuthError |
400 | Échec de la requête de token OAuth 2.1 (client invalide, type de grant incorrect, etc.) |
RISQueryError |
400 | La requête RIS/Performance a retourné une erreur depuis Cisco UC |
RoomOSError |
400 | Échec d'un appel xAPI vers un codec RoomOS (getxml / putxml) |
ServiceabilityError |
400 | Échec d'un appel CUCM Serviceability (services Control Center) |
SSHCommandError |
400 | La commande SSH a échoué ou la connexion a été refusée |
UCPlatformError |
400 | Erreur de base pour les échecs de plateforme Cisco UC (sous-classes ci-dessous) |
WSDLError |
400 | Échec du téléchargement ou de l'analyse du WSDL/schéma |
AUTH_FAILED (malformé) |
400 | Le token ne peut pas être décodé (TokenMalformedError, motif token_malformed) |
AUTH_FAILED (expiré) |
401 | Le token a dépassé sa date d'expiration (TokenExpiredError, motif token_expired) |
AUTH_FAILED |
401 | Token absent, signature ou claims invalides (TokenInvalidError) |
AUTH_REVOKED |
401 | Le token a été explicitement révoqué via /revoke |
ProfilePermissionError |
403 | Opération non autorisée par le profil RBAC du client |
TokenForbiddenError |
403 | Le token est valide mais son sujet n'est pas un client déclaré (client supprimé) |
AUTH_BLOCKED |
429 | L'IP source est actuellement sur liste noire par Fail2Ban |
RateLimitError |
429 | Limite de débit par client dépassée pour ce produit/service — réessayer après N secondes |
RateLimitError (global) |
429 | Limite globale par hôte dépassée (tous clients) pour ce produit/service sur un nœud Cisco |
BackupError |
500 | Échec d'une opération de sauvegarde ou de restauration |
ConfigError |
500 | Paramètre de configuration manquant ou invalide détecté au démarrage |
IntegrityError |
500 | La vérification d'intégrité du logiciel a échoué — fichier altéré détecté |
ReportError |
500 | Échec de la génération, lecture ou export PDF d'un rapport |
UpgradeError |
500 | L'outil de mise à niveau ne peut pas continuer (ex. version non reconnue) |
LicenseError |
503 | Licence invalide ou expirée — modules produit indisponibles |
Nouvelle tentative après limite de débit
En cas de réponse RATE_LIMITED ou RATE_LIMITED_GLOBAL (HTTP 429), l'en-tête Retry-After indique le nombre de secondes à attendre avant de réessayer. La limite par client est définie dans le profil RBAC ; la limite globale optionnelle (tous clients, par hôte de destination) se configure dans l'Admin Web UI (Paramètres globaux → Rate limiting et onglet Rate limiting de chaque produit) et est vérifiée après la limite par client.
Conformité aux normes et RFC¶
| Norme | Couverture |
|---|---|
| CWE-117 | Prévention des injections de journaux dans la sortie de journal structurée |
| NIST FIPS 180-4 | Algorithmes de hachage SHA-256 / SHA-512 |
| NIST SP 800-132 | PBKDF2 — 600 000 itérations, SHA-512 |
| NIST SP 800-38D | Chiffrement authentifié AES-256-GCM |
| OWASP Top 10 | Validation des entrées, sécurité du transport, prévention des injections |
| RFC 4251–4254 | Architecture, transport, authentification et connexion du protocole SSH |
| RFC 5280 | Profil de certificat X.509 et CRL |
| RFC 6585 | HTTP 429 Too Many Requests |
| RFC 6749 | Cadre d'autorisation OAuth 2.0 (grants client_credentials et authorization_code) |
| RFC 6750 | Utilisation du token Bearer dans les requêtes HTTP |
| RFC 7009 | Révocation de token OAuth 2.0 |
| RFC 7518 | Algorithmes Web JSON (JWA) — algorithme de signature RS256 |
| RFC 7519 | JSON Web Tokens (JWT) |
| RFC 7617 | Authentification HTTP Basic |
| RFC 7636 | Proof Key for Code Exchange (PKCE) — méthode de défi de code S256 |
| RFC 8017 | Signature RSA-PSS et chiffrement RSA-OAEP (PKCS#1 v2.2) |
| RFC 8018 | PBKDF2 — Fonction de dérivation de clé basée sur un mot de passe 2 |
| RFC 8259 | JSON |
| RFC 8414 | Métadonnées du serveur d'autorisation OAuth 2.0 |
| RFC 8446 / 5246 | TLS 1.3 / TLS 1.2 |
| RFC 9068 | Profil JWT pour les tokens d'accès OAuth 2.0 |
| RFC 9110 | Sémantique HTTP |
| RFC 9728 | Métadonnées de ressource protégée OAuth 2.0 |
Référence des scripts¶
Scripts autonomes dans scripts/. À exécuter depuis la racine du projet avec python scripts/<name>.py.
| Script | Description |
|---|---|
admin_set_password.py |
Définir ou réinitialiser le mot de passe d'un compte de l'Admin Web UI (bcrypt, politique de mot de passe appliquée) ; demande le mot de passe si --password est omis |
backup_restore.py |
Restauration interactive depuis des archives de sauvegarde chiffrées locales ou SFTP |
certificate_generate_csr.py |
Générer une CSR TLS avec l'extension SAN appropriée (--target mcp\|adminui) ; réutilise la clé privée existante si présente |
encrypt_sftp_password.py |
Chiffrer le mot de passe de sauvegarde SFTP (BACKUP_SFTP_PASSWORD_ENC) — alternative CLI au lien Définir le mot de passe de la Web UI |
export_mcp_definitions.py |
Exporter tous les outils MCP, prompts et ressources en JSON pour l'analyse statique |
healthcheck.py |
Sonde HEALTHCHECK du conteneur (loopback uniquement) : /health MCP, ou l'Admin UI lorsque le listener MCP est désactivé par la licence |
license_checker.py |
Décoder et afficher secrets/license.jwt — fonctionne sans démarrer le serveur |
rotate_rsa_keys.py |
Rotation interactive de la paire de clés RSA : archive l'ancienne clé, force la régénération des tokens au prochain démarrage |
show_tech.py |
Collecter un bundle de diagnostic (journaux, instantané de configuration, statut) pour le support |
update_manifest.py |
Hook pre-commit : régénérer le manifeste d'intégrité SHA-512 avant chaque commit |
upgrade.py |
Outil de mise à niveau — réconcilie la configuration avec la nouvelle version (lancé par tolk-setup.sh) |
Scripts de test¶
| Script | Description |
|---|---|
tests_check_mcp_scan.py |
Valider la sortie JSON de mcp-scanner par rapport à une liste d'autorisation de faux positifs connus |
tests_cucm_helper.py |
Helper interne pour tests_run.py — sous-processus isolé pour les opérations CUCM |
tests_run.py |
Lanceur de tests interactif — tests unitaires, puis optionnellement tests d'intégration |
tests_setup_credentials.py |
Chiffrer et stocker les informations d'identification Cisco UC (CUCM, téléphones IP, IMP, codec RoomOS de lab) pour le client de test d'intégration pytest |
Référence des modules de bibliothèque¶
Modules internes dans lib/. Non destinés à être exécutés directement.
| Module | Description |
|---|---|
audit_middleware.py |
Middleware FastMCP qui écrit une entrée d'audit structurée pour chaque appel d'outil MCP |
auth.py |
Vérificateur JWT avec journalisation d'audit, vérification de l'expiration du token et intégration fail2ban |
auth_clients.py |
Analyseur et validateur des clients MCP déclarés (nom:sujet:profil[:auth_mode]) et de leurs modes d'authentification |
auth_rate_limiter.py |
Fail2ban à fenêtre glissante : liste noire IP temporaire après des échecs d'authentification répétés |
backup.py |
Chien de garde de sauvegarde chiffrée périodique — archive AES-256-GCM + enveloppement de clé RSA-4096 OAEP |
ca_trust_store.py |
Inspection en lecture seule du magasin de CA d'un produit (répertoire ou fichier bundle) |
client_activity.py |
Suivi de la dernière connexion par client (secrets/client_activity.json) |
client_credentials.py |
Affichage unique des identifiants d'un client dans la Web UI (Voir les identifiants) |
client_editor.py |
Création / modification / suppression des clients MCP depuis la Web UI (modifications en attente) |
client_reset.py |
Révocation immédiate des identifiants actifs d'un client (Réinitialiser les tokens) |
credentials.py |
Chiffrement/déchiffrement des informations d'identification par client basé sur Fernet avec des clés dérivées par PBKDF2 |
crypto.py |
Gestion du sel serveur et dérivation de clé PBKDF2 par client pour le chiffrement Fernet |
csr.py |
Construction partagée des CSR TLS (CN, SAN) pour les listeners MCP et Admin UI |
cucm_cli_reference.py |
Ensembles de référence CUCM 15 affichés par l'éditeur de profils clients (préfixes accordés / non accordés) |
custom_prompts_loader.py |
Chargeur déclaratif de prompts personnalisés par client (magasin JSON) depuis servers-data/<produit>/custom-prompts/ |
env_editor.py |
Écriture des paramètres de la Web UI : modifications en attente, validation des énumérations / plages, instantanés, annulation, différentiel avant redémarrage, contrôle de cohérence AUTH_MODE ↔ clients |
env_variables.py |
Chargeur de configuration et accesseurs de configuration typés utilisés dans tous les modules |
exceptions.py |
Classes d'exception personnalisées (ConfigError, LicenseError, IntegrityError, …) |
garbage_collector.py |
Démon de nettoyage nocturne (03:15 heure serveur + un passage au démarrage) : purge les données expirées et revérifie la licence |
http_metrics_middleware.py |
Middleware ASGI incrémentant http_requests_total pour chaque réponse HTTP |
integrity.py |
Vérification du manifeste SHA-512 par rapport au manifest.json signé RSA-PSS |
ip_targets.py |
Normalisation et correspondance des cibles de liste noire (IP unique ou sous-réseau CIDR), partagées par Fail2Ban et le throttling des connexions admin |
license.py |
Vérification de licence basée sur JWT : liaison au nom d'hôte, expiration, période de grâce, périmètre produit |
log_setup.py |
Journaliseurs JSON rotatifs pour app.log et audit.log + gestionnaire de console coloré optionnel |
lru_cache.py |
Petit cache LRU borné thread-safe utilisé par les caches de clients Zeep/WSDL |
maintenance.py |
État du mode maintenance (interrupteur persisté) et suivi de l'activité MCP par client |
maintenance_middleware.py |
Application du mode maintenance : 503 ASGI sur les nouvelles sessions MCP + refus FastMCP des clients inactifs |
metrics.py |
Définitions des métriques Prometheus — compteurs, jauges et histogrammes pour tous les sous-systèmes |
metrics_history.py |
Historique persistant à long terme des volumes de requêtes par étape du pipeline (page Statistiques) |
new_settings.py |
Paramètres ajoutés par l'outil de mise à niveau, signalés comme nouveaux (bleu) dans l'interface d'administration jusqu'à acquittement, modification ou 7 jours |
oauth.py |
Assistants du serveur OAuth 2.1 : codes d'autorisation PKCE, émission de tokens, gestion des secrets client |
oauth_cors.py |
Middleware ASGI ajoutant les en-têtes CORS aux endpoints publics OAuth 2.1 pour les clients navigateur |
profiles.py |
Chargement du profil RBAC, rechargement à chaud lors de la modification de fichier, et évaluation des permissions par opération |
public_url.py |
MCP_SERVER_PUBLIC_URL : URL de base publique (reverse proxy / VIP) annoncée dans les métadonnées OAuth et l'URL client ; hôte / origine implicitement autorisés |
rate_limiter.py |
Limiteur de débit à fenêtre glissante : par client et global optionnel (tous clients, par hôte de destination) |
retry.py |
Décorateur de nouvelle tentative avec backoff exponentiel pour les erreurs réseau/connexion transitoires |
reveal_template.py |
Modèle optionnel, personnalisable par site, du bloc d'affichage des identifiants client |
rsa_key_cache.py |
Cache au niveau du processus pour les clés RSA publiques/privées, évitant les lectures disque et analyses répétées |
sanitize.py |
Utilitaires de désinfection des entrées partagés entre les gestionnaires d'outils MCP |
secure_files.py |
Consultation / modification sécurisée des fichiers de clés et certificats référencés par la configuration (Voir / Éditer dans la Web UI) |
show_tech_store.py |
Stockage et orchestration des bundles show-tech à la demande (Logs → Diagnostics) |
ssh_pool.py |
Pool de connexions SSH avec mise à l'échelle adaptative et TTL d'inactivité — multiplexe les sessions vers les nœuds CUCM/IMP |
stats_snapshot.py |
Export des statistiques lisible par machine, en dehors de l'Admin Web UI |
status_tracker.py |
Traceur de statistiques en mémoire thread-safe alimentant le point de terminaison /status |
sync_clients.py |
Gestion du cycle de vie des clients au démarrage : création des répertoires, renouvellement des informations d'identification, suppression des clients retirés |
tls.py |
Gestion des certificats TLS : une paire certificat/clé par service (auto-signé ou CA-signé, détecté automatiquement), calcul CN/SAN, renouvellement en milieu de vie, alerte à 50 % |
token_blacklist.py |
Liste de révocation JWT persistée — stocke les claims jti révoqués dans secrets/token_blacklist.json |
tool_catalog.py |
Instantané persistant du catalogue complet des outils MCP (vues de couverture de la Web UI) |
transport_security.py |
Middleware ASGI pour la protection contre le DNS rebinding via la validation des en-têtes Host et Origin |
trusted_proxies.py |
TRUSTED_PROXY_IPS : reverse proxies dont l'en-tête X-Forwarded-For identifie le client réel ; jamais mis en liste noire |
typeddicts.py |
Formes de retour typées (TypedDict) pour les outils MCP et les assistants infra |
upgrade.py |
Moteur de l'outil de mise à niveau : comparaison des versions, réconciliation de la configuration avec la nouvelle version (nouvelles clés insérées, PROJECT_* actualisées), sauvegarde, rapport |
validators.py |
Modèles de validation des entrées Pydantic pour tous les paramètres des outils MCP |
Modules de l'Admin Web UI¶
Modules internes dans servers/admin/ (Admin Web UI).
| Module | Description |
|---|---|
accounts.py |
Stockage des comptes administrateurs (secrets/admins/accounts.json), vérification bcrypt et politique de mot de passe |
active_sessions.py |
Registre en mémoire des sessions admin actives (affiché avant un redémarrage) |
app.py |
Application Starlette : routage, authentification par session, protection CSRF, RBAC par page, choix de la langue |
backups.py |
Orchestration de la page Sauvegardes (système, instantanés de configuration, certificats / clés RSA) |
bruteforce.py |
Limitation des tentatives de connexion admin par identifiant et IP source, avec verrouillage temporaire |
config.py |
Chargement et validation des paramètres ADMIN_UI_* |
context.py |
Contexte d'exécution partagé par les gestionnaires de requêtes (configuration, TLS, secret de session, licence) |
env_help.py |
Textes d'aide par paramètre (EN / FR) des pages de paramètres |
i18n.py |
Chargeur minimal des traductions EN / FR |
nav_icons.py |
Icônes de navigation SVG intégrées (aucune ressource externe) |
pages.py |
Contenu des pages (tableau de bord, paramètres, clients, administrateurs, statistiques, système…) |
prompts_editor.py |
Backend de l'éditeur de prompts personnalisés (servers-data/<produit>/custom-prompts/) |
rbac.py |
RBAC admin : matrice d'accès par page (none / ro / rw) et stockage des profils administrateurs |
render.py |
Rendu HTML sans dépendance, avec échappement systématique |
restart.py |
Redémarrage du service en place pour appliquer les paramètres en attente |
security.py |
Middlewares liste blanche / liste noire d'IP sources et en-têtes de sécurité stricts (CSP, HSTS…) |
server.py |
Démarrage du listener HTTPS de l'Admin UI (port dédié) |
sessions.py |
Cookies de session signés HMAC-SHA256 |
stats_extra.py |
Onglets de statistiques : synthèse, erreurs, sécurité, backends, tendances, adoption |
stats_tops.py |
Onglet Tops des statistiques (classements issus du journal d'audit) |
system_info.py |
Métriques système en direct de la page Système & rechargement |
tls.py |
Résolution du certificat TLS du listener Admin UI (réutilisation du certificat MCP ou certificat dédié) |
tls_preflight.py |
Pré-vérifications des certificats TLS affichées avant d'appliquer les changements et de redémarrer |
tools_connectivity.py |
Test de connectivité de la page Outils (DNS, TCP, TLS, …) vers un nœud CUCM, IMP, CUC ou un terminal |
Glossaire¶
| Terme | Définition |
|---|---|
| AES-GCM | AES Galois/Counter Mode — mode de chiffrement authentifié offrant à la fois confidentialité et intégrité |
| ASGI | Asynchronous Server Gateway Interface — standard Python pour les serveurs web et frameworks asynchrones |
| AXL | Administrative XML Layer — API SOAP/XML de Cisco pour la configuration de la plateforme UC |
| bcrypt | Fonction de hachage de mot de passe adaptative utilisée pour les secrets client OAuth et les mots de passe de l'Admin Web UI |
| CUC | Cisco Unity Connection — plateforme de messagerie vocale et de messagerie unifiée |
| CUCM | Cisco Unified Communications Manager — la plateforme principale de contrôle des appels UC et de configuration |
| CUPI | Cisco Unity Provisioning Interface — API REST exposée par CUC pour les opérations de provisioning et de lecture (/vmrest/) |
| Fernet | Schéma de chiffrement symétrique authentifié : AES-128-CBC + HMAC-SHA256 (bibliothèque Python cryptography) |
| IMP | Cisco IM & Presence Service — composant de messagerie instantanée XMPP de la suite CUCM |
| JWT | JSON Web Token — format de token compact, sûr pour les URL, autonome (RFC 7519) |
| MCP | Model Context Protocol — standard ouvert pour la communication agent IA ↔ serveur d'outils, maintenu par Anthropic |
| PBKDF2 | Password-Based Key Derivation Function 2 — algorithme d'étirement de clé recommandé par le NIST (RFC 8018) |
| RBAC | Role-Based Access Control — modèle de permissions où l'accès est régi par des rôles prédéfinis |
| RIS | Real-time Information Service — API Cisco pour interroger l'état d'enregistrement des appareils en temps réel |
| RS256 | RSA Signature with SHA-256 — algorithme de signature JWT (RFC 7518) |
| RSA-OAEP | RSA Optimal Asymmetric Encryption Padding — schéma de chiffrement RSA moderne (PKCS#1 v2.2, RFC 8017) |
| RSA-PSS | RSA Probabilistic Signature Scheme — rembourrage de signature RSA moderne (PKCS#1 v2.2, RFC 8017) |
| SAN | Subject Alternative Name — extension de certificat X.509 pour lier plusieurs noms d'hôtes/IP à un seul certificat |
| SFTP | SSH File Transfer Protocol — protocole de transfert de fichiers sécurisé fonctionnant via une connexion SSH |
| TOFU | Trust On First Use — modèle de confiance pour les clés hôte SSH : l'empreinte est approuvée lors de la première connexion et épinglée pour les suivantes |
| VOS | Voice Operating System — système d'exploitation de plateforme Linux durci de Cisco sous-tendant CUCM, IMP, CUC et d'autres produits UC |
| WSDL | Web Services Description Language — format XML décrivant les opérations et les types de données d'un service web SOAP |