phpIPAM : Script de synchronisation des groupes avec Active Directory

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 (520 téléchargements)

Enjoy ! 🙂

Un commentaire:

  1. 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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *