Bonjour,
J'administre un serveur LDAP dans le cadre d'un stage en entreprise, sur une machine red hat.
Je cherche à faire communiquer une base de données MySQL avec OpenLDAP: en gros, que des modifications dans OpenLDAP entraine des modifications dans MySQL. On m'a dit qu'un script en php pouvait gerer ceci. Comme c'est un langage que je ne maitrise pas, j'aurais aimé obtenir quelques pistes pour la conception d'un script, pas sur le langage en lui-même, mais plutôt sur la manière d'utiliser le php pour permettre dans ce script le log dans ldap et dans la bdd (ça, pas très compliqué), la comparaison des entrées dans ldap ET dans la bdd, puis les modifications à faire le cas échéant...
Merci d'avance.
# temps réel ou pas ?
Posté par nono14 (site web personnel) . Évalué à 1.
Sinon un script en python, shell ,perl ,php peut faire l'affaire.
C'est pas trés clair.
Qu'entends-tu par logguer dans ldap ?
je comprends => enregistrer les infos dans l'annuaire
En shell tu as ldapsearch, ldapmodify ...
Tout depend ce que tu cherches à réaliser.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: temps réel ou pas ?
Posté par Meledith . Évalué à 1.
En fait, tout simplement, je souhaiterais que lorsque je modifie les attributs des entrées dans mon ldap, qui sont communes aux entrées de la base de données (liées par le cn par exemple), les modifications s'effectuent dans la base de données.
Donc à priori, mais je peux me tromper, dans le script, il faudra definir des instructions pour se connecter à la base LDAP et à la base MySQL, puis des instructions pour faire le traitement que je recherche sur la base de données mysql.
Donc pas forcement en temps réel si la synchronisation est assez reguliere.
[^] # Re: temps réel ou pas ?
Posté par nono14 (site web personnel) . Évalué à 1.
tuning du backend sous jacent, performance, optimisation,
indexation des attributs, montée en charge ( si ssl/tls )...
A priori faire une requete mysql est plus simple qu'une requete ldap.
Je vois bien faire les requetes l'une après l'autre.
Bon courage.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: temps réel ou pas ?
Posté par Meledith . Évalué à 1.
Je m'étais documentée sur le backend mysql, mais j'ai trouvé des choses très brumeuses et incomplètes sur des configurations difficiles à faire...Si quelqu'un connaitrait un bon tutorial pour la configuration basique d'un ldap avec bdd mysql je serais plutôt contente de l'avoir.
En gros, je voudrais lier les données communes de mon annuaire LDAP et de la base de données.
Exemple bête et méchant: Je modifie le numero de telephone de monsieur Machin dans l'annuaire LDAP. Mais je voudrais donc que l'entrée "monsieur Machin", qui est dans la base de données MySQL, soit aussi modifié automatiquement, d'où mes interrogations sur un script PHP.
Donc, je suppose que dans ce script, il faudrait faire quelque chose du genre:
-Connexion au ldap
-Connexion à la bdd
-Requete de comparaison
-Traitement des données en fonction du resultat (en gros rien si les données se correspondent, ajout ou modification dans le cas contraire)
Comme je ne connais rien au PHP (mais je sais qu'il y a des instructions déjà créees pour traiter avec LDAP et SQL) j'aurais voulu des pistes pour créer ce script, dans les commandes, le mode de fonctionnement etc...
Bien sûr, le plus simple aurait été que mon annuaire LDAP attaque directement la base de données via un backend, mais vu que ca me semble plus compliqué qu'un script...
[^] # Re: temps réel ou pas ?
Posté par Meledith . Évalué à 1.
Enfin j'ai plus détaillé mon problème dans ce post-ci, et ma demande d'aide pour un peu plus de détails tient toujours, merci d'avance.
[^] # Re: temps réel ou pas ?
Posté par nono14 (site web personnel) . Évalué à 1.
au pif ???
recherche sur google: 1 er lien
php ldap
tu n'as pas besoin de comparer puisque tu mets à jour ldap,
donc de facto l'entree sql doit l'etre aussi.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: temps réel ou pas ?
Posté par Meledith . Évalué à 1.
A l'heure actuelle, si je met à jour mon annuaire ldap via un script, comme expliqué sur commentcamarche, il ne va pas du tout s'occuper de faire des modifications dans une base de données SQL avec laquelle l'annuaire ne communique même pas!
[^] # Re: temps réel ou pas ?
Posté par nono14 (site web personnel) . Évalué à 1.
=> google : php + mysql
et un peu d'imagination et ton pb sera résolu.
Si tu cherches une solution toute faite,sans bosser dessus c'est mal
parti !
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
# Faisable
Posté par peck (site web personnel) . Évalué à 2.
Ensuite tu les parse avec un script perl / php / le langage que tu veux pour le transformer en requête sql. C'est assez facile, le format c'est du ldiff documenté ici http://www.openldap.org/software/man.cgi?query=slapd.replog&(...) par contre ça peut être un peu laborieux selon la structure de ta base.
[^] # Re: Faisable
Posté par Meledith . Évalué à 1.
Le problème c'est qu'alors j'ai nécéssairement besoin de créer un serveur esclave rien que pour cela, vu que justement, les loglevel simples ne permettent pas de voir les modifications faites exactement, j'ai essayé les niveaux 256 et 512: ils voient les modifications, les indiquent, mais ne les décrivent pas.
Je vais toutefois essayé de faire ça comme ça avec le serveur esclave faute de mieux.
Merci beaucoup.
[^] # Re: Faisable
Posté par nono14 (site web personnel) . Évalué à 1.
attention c'est verbose...
1+2+4+8+16+32+....
En activant les bits corespondants et les additionnant
tu dois trouver ton bonheur.
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: Faisable
Posté par Meledith . Évalué à 1.
J'essaie ça, merci.
[^] # Re: Faisable
Posté par peck (site web personnel) . Évalué à 2.
[^] # Re: Faisable
Posté par Meledith . Évalué à 1.
(et 16384 ne me ressort carrément rien, nul part, ou alors pas dans les fichiers de log que je lui ai indiqué)
J'ai essayé d'activer le replogfile, mais il me dit justement qu'il ne peut pas parce que je n'ai crée aucun replica...
[^] # Re: Faisable
Posté par nono14 (site web personnel) . Évalué à 1.
man slapd.conf ( debian )
1 (0x1 trace) trace function calls
2 (0x2 packet) debug packet handling
4 (0x4 args) heavy trace debugging (function args)
8 (0x8 conns) connection management
16 (0x10 BER) print out packets sent and received
32 (0x20 filter) search filter processing
64 (0x40 config) configuration file processing
128 (0x80 ACL) access control list processing
256 (0x100 stats) stats log
connections/operations/results
512 (0x200 stats2) stats log entries sent
1024 (0x400 shell) print communication with shell
backends
2048 (0x800 parse) entry parsing
4096 (0x1000 cache) caching (unused)
8192 (0x2000 index) data indexing (unused)
16384 (0x4000 sync) LDAPSync replication
32768 (0x8000 none) only messages that get logged
=> 256, et voire 64 pour mettre au point le fichier de conf
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Re: Faisable
Posté par Meledith . Évalué à 1.
Ayant reçu de nouvelles instructions sur la manière de m'y prendre, je dois abandonner l'idée de scripts php et de récuperation de log pour l'heure, et plutôt me tourner vers le C.
Merci quand même de votre aide.
[^] # Re: Faisable
Posté par nono14 (site web personnel) . Évalué à 1.
de replication.
En c, mis à par le changement du langage, qu'est-ce que cela va t'apporter ?
Système - Réseau - Sécurité Open Source - Ouvert à de nouvelles opportunités
[^] # Changement de programme
Posté par Meledith . Évalué à 1.
Personnellement pour moi c'est plus simple, le C étant un langage que j'ai étudié, après, c'est sûr que pour le traitement du texte, utiliser php ou perl aurait été plus approprié :)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.