Hello world,
J’utilise phpIPAM, qui est un gestionnaire de plan d’adressage IP opensource très puissant !
Il est interfaçable avec Active Directory, ce qui est plutôt pratique. On peut ainsi ajouter un utilisateur de l’Active Directory et mapper automatiquement des groupes IPAM en fonction de son appartenance à des groupes AD. Seulement voila… il est nécessaire de faire un ajout manuel de l’utilisateur dans la base IPAM dans tous les cas, et qui plus est, le mappage « groupe AD ==> groupe IPAM » n’est pas mis à jour automatiquement une fois le compte créé !
Bref, c’est plus que perfectible…
Pour pallier à cette limitation, j’ai développé un script qui fait le sale boulot en mettant à jour la base IPAM en fonction des infos récupérées dans l’AD.
Voici pèle mêle les infos récupérées :
- Le script s’exécute en Crontab (pour ma part je l’exécute toutes les 15 minutes, un peu bourrin je l’avoue !).
- La configuration LDAP/AD est récupérée automatiquement dans la base MySQL
- Prise en charge de la résilience sur plusieurs annuaires LDAP
- La configuration MySQL est récupérée automatiquement dans le fichier config.php
- Il n’est pas nécessaire de paramétrer dans le script les groupes AD à synchroniser, le script faisant la corrélation lui-même
- Prise en charge des droits d’accès sur la partie PSTN
- Prise en charge des droits d’admin
- Un utilisateur peut appartenir à plusieurs groupes
- Le script nettoie dans la base MySQL les comptes orphelins liés à l’annuaire (absence de groupe mappé, absence d’utilisateur)
Le script demande 3 paramètres de configuration :
//Groupe AD des admins $admingroupdn = "CN=ACCESS-IPAM-Admins,OU=Security Groups,OU=MONLAB,DC=monlab,DC=local"; //Groupe AD des membres autorisés a acceder au menu PSTN $pstngroupdn = "CN=ACCESS-IPAM-PSTN,OU=Security Groups,OU=MONLAB,DC=monlab,DC=local"; $pstnprivlvl = 1; //1 = RO ; 2 = RW ; 3 = RW Admin
Bien entendu, le script est écrit en php (pour rester cohérent avec phpIPAM), et exploite les extensions php_ldap et php_mysqli
Le script est à copier à la racine de phpipam, il faut lui donner les droits d’exécutable.
chmod a+x sync_ad_with_localdb.php
NB : je sais, les droits sont trop permissifs, mais c’est du lab 🙂
Le script est à executer en crontab, donc pour ce faire, taper « crontab -e » puis rajouter la ligne
*/15 * * * * /var/www/phpipam/sync_ad_with_localdb.php
Sauvegardez, that’s all !
Le script est téléchargeable ci-dessous.
phpIPAM : Sync AD with Local DB (1692 téléchargements)
Enjoy ! 🙂
Bonjour,
Je test depuis hier phpipam et j’ai quelques interrogations. Je ne trouve pas de documentation et encore moins en français.
Est ce que j’aurais pu te poser 2, 3 questions par email ?
merci