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 (un téléchargement)

Enjoy ! 🙂

IPX800 : Script de mesure de consommation à partir d’un compteur à impulsion

Hello world, Il existe sur le marché des compteurs de consommation électrique. Ces derniers sont modulaires et s’insèrent facilement dans votre tableau électrique, en coupure.Le principe est assez simple, ils envoient des impulsions en fonction de votre consommation (le modèle en photo ci dessus envoie une impulsion tous les Watt Heure, donc 1000 impulsions pour […]

SoYouStart – Attention, les IP Failover sont facturées au bloc en cas de dépassement

Bonjour à tous, Petite précision, ce post a été rédigé début septembre 2016 et était en attente de publication. Je ne le publie que maintenant, car la situation est toujours au point mort au 1er février 2017… C’est rare que je raconte mes déboires publiquement, mais là je dois bien avouer que ma récente expérience […]

Milight Multi-Bridge Emulator (chapitre 1)

Cela fait un moment que je n’ai pas écrit d’article ! Et aujourd’hui je vais vous parler d’un « hack » que j’ai fait pour les ampoules Milight… C’est un travail de longue haleine, un projet sur lequel j’œuvre depuis plusieurs mois pendant mon temps libre, et que je vais vous décrire en plusieurs chapitres.