🚀 [IBM i] Sécurisez vos accès base de données en temps réel avec les Exit Points !
- 400dtu
- 22 oct.
- 2 min de lecture

🔍 Le défi : Sur IBM i, comment bloquer ou autoriser des connexions à la base de données sans modifier vos applications, en fonction :
✅ Du profil utilisateur (ex : APP_SERV1, BATCH_USER)
✅ De l’adresse IP source (ex : 192.168.10.5, 10.50.*.*)
✅ Avec une journalisation automatique des tentatives ?
La solution : Les Exit Points IBM i (ex : QIBM_QZDA_INIT), combinés à un programme RPG de contrôle (exemple générique ci-dessous).
💡 Pourquoi utiliser les Exit Points ?
1️⃣ Contrôle fin et dynamique :
Interception avant la connexion à la base (pas de traitement post-connexion).
Exemple : Autoriser APP_SERV1 uniquement depuis 10.50.0.0/16, bloquer les autres IPs.
2️⃣ Sécurité proactive :
Journalisation des tentatives (succès/échecs) dans une table dédiée.
Réaction immédiate (pas de délai comme avec des audits batch).
3️⃣ Intégration transparente :
Zéro modification des applications existantes (ERP, outils métiers, etc.).
Compatible avec SQL, ILE RPG, et les APIs système (QUSRJOBI).
4️⃣ Flexibilité :
Les règles sont stockées en base de données, modifiables sans recompilation.
Exemple : Ajouter une nouvelle IP autorisée via un simple INSERT.
🔧 Fonctionnement technique (exemple générique)
Le programme de contrôle (ex : SEC_FILTER_PGM) :
Intercepte la demande via l’Exit Point QIBM_QZDA_INIT.
Récupère : Le profil utilisateur (depuis les paramètres de l’Exit Point). L’IP source (via l’API QUSRJOBI).
Vérifie en base si l’IP est autorisée pour ce profil (table ACCESS_RULES).
Décide : STATUS = '1' → Accès autorisé. STATUS = '0' → Connexion bloquée (avec log dans ACCESS_LOGS).
📌 Configuration requise :
-- Enregistrer l'Exit Point (à exécuter une seule fois)
ADDEXITPGM EXITPNT(QIBM_QZDA_INIT) FORMAT(ZDAI0100) PGM(YOUR_LIB/SEC_FILTER_PGM) 📊 Cas d’usage concrets

🛠 Outils associés
WRKREGINF : Lister les Exit Points actifs.
DSPLOG : Analyser les logs (journal QAUDJRN).
ACS (IBM i Access Client Solutions) : Gérer les tables de règles en SQL.
🔄 Exit Points vs. Solutions classiques





Commentaires