Sécurité
Surfaces réseau : CRISalid et la frontière de la vitrine
En bref
- La pile CRISalid (graphe Neo4j, API Apollo, bases, authentification) reste en réseau privé.
- La vitrine ne joint aucun de ces services à l'exécution : elle est générée depuis un extrait.
- Neo4j Community n'a pas de rôles : l'extraction tourne dans le réseau de CRISalid, avec des requêtes figées.
🗺️ Les services de la pile CRISalid
Relevés dans le code des sous-projets et sur l'instance de test de Paris-Saclay (audit, 29/10/2026).
| Service | Rôle | Ports usuels |
|---|---|---|
| crisalid-apollo | API GraphQL de lecture du graphe | 4000 |
| Neo4j | Graphe consolidé : structures, personnes, publications | 7474 (console), 7687 (Bolt) |
| PostgreSQL | Bases des services (SoVisu+, moissonneur) | 5432 |
| Redis | Cache et files de travail | 6379 |
| RabbitMQ | Bus d'événements vers le graphe | 5672, 15672 (console) |
| Keycloak | Authentification de SoVisu+ | 8080 |
Sur l'instance de test, plusieurs de ces services étaient joignables depuis le réseau interne de l'université. Le détail n'est pas publié : il est réservé au responsable de l'instance.
🚧 La frontière de la vitrine
- Exposition interdite : Neo4j, PostgreSQL, Redis, RabbitMQ et les consoles d'administration ne doivent jamais être joignables depuis Internet.
- Aucun appel à l'exécution : la vitrine publique est un site statique. Elle lit un extrait produit en amont, jamais le graphe ni l'API Apollo depuis le navigateur ou le serveur Next.
- Extraction dans le réseau de CRISalid : Neo4j Community ne propose ni rôles ni droits par propriété ; un compte « lecture seule » ne peut pas être contraint techniquement. L'extraction tourne donc à côté du graphe, avec des requêtes figées, et ne sort que l'extrait filtré (liste blanche d'unités et de personnes).
- Aucun jeton dans le bundle : aucun jeton Keycloak ni identifiant de service ne passe par une variable
NEXT_PUBLIC_*.
Le déroulé du branchement et du premier test sur les données CRISalid est dans Projection.
Action requise : démontrer par la configuration réseau (ingress, pare-feu) que les ports sensibles ne sont pas routés, avant toute mise en production de CRISalid.