La création d'un Serveur LDAP Avec PHP
Je suis à la recherche pour créer une application web en PHP qui reçoit les requêtes LDAP et envoie des réponses LDAP dos, mais n'est pas réellement utiliser un serveur LDAP. Plus précisément, j'aimerais faire la table de contacts dans une base de données MySQL disponible pour Thunderbird comme un carnet d'adresses LDAP.
Deux Questions:
-
Est-il une bibliothèque existante pour la mise en œuvre d'un serveur LDAP avec PHP? (Le PHP_LDAP package est pour la création d'un client LDAP, où le PHP de l'application se connecte à un serveur LDAP.)
-
Comment de données LDAP réellement obtenir de la part du client dans mon script? Ne LDAP de voyage sur HTTP? D'où la demande devrait s'afficher dans:
$HTTP_RAW_POST_DATA
ou similaires? Peut Apache gérer les requêtes LDAP et les faire passer sur mon script ou est-ce complètement différent de ce protocole qui exige un "listener" application de la poignée?
- OpenLDAP peut être configuré pour l'utilisation d'une base de données SQL comme un backend directement. Il n'est pas aussi complet que le natif OpenLDAP BDB, mais qui pourraient répondre à vos besoins, sans une ligne de PHP. (Ce qui ne serait pas mon premier choix de langage de mise en œuvre d'un nouveau serveur LDAP, pas par un long shot. 🙂
- J'avais essayé d'obtenir en arrière-sql de travail un certain temps, mais a finalement renoncé parce que je n'arrivais même pas à compiler correctement. Fondamentalement, nous avons un CRM basé sur PHP/MySQL, et en quelque sorte nous avons besoin pour prendre les contacts pour Thunderbird comme un carnet d'adresses. Je suppose que nous pourrions utiliser un vrai serveur LDAP et notre CRM (Comme client) mise à jour de la base de données LDAP, mais qui semble vraiment inefficace. Je me demande si il pourrait être plus facile de créer un JSON carnet d'adresses plug-in pour Thunderbird, et passez LDAP entièrement?
Vous devez vous connecter pour publier un commentaire.
Le protocole LDAP n'est pas nativement géré par Apache, et je n'ai pas vu tout les modules d'Apache qui gèrent ce protocole. Je ne crois pas que vous serez en mesure de le faire à l'aide de PHP avec Apache. Vous pourriez être en mesure de mettre en œuvre une pure serveur PHP (voir http://php.net/manual/en/function.stream-socket-server.php) puis de mettre en œuvre le protocole LDAP de paquets un analyseur de en PHP. Je ne crois pas qu'il y est un natif ASN1 analyseur pour PHP, mais vous pourriez être en mesure d'en trouver un en C et en quelque sorte de l'intégrer.
Il est possible de créer un pur PHP serveur LDAP avec cette bibliothèque (je l'ai écrit d'abord pour le client LDAP fins):
https://github.com/FreeDSx/LDAP
Il fonctionne sur la base d'un gestionnaire de requêtes (juste une interface) pour les demandes des clients. Fondamentalement, vous étendre une classe qui va gérer les demandes des clients et envoyer une réponse (dans le cas d'une recherche de toute façon). Un exemple de base:
Il y a plus de docs sur le composant serveur de la bibliothèque ici:
https://github.com/FreeDSx/LDAP/tree/master/docs/Server
Quelques mises en garde à ceci:
Un temps, j'ai travaillé avec un très intelligent de dev qui a dit qu'il a mis en œuvre un travail LDAP client /serveur en PHP. Il l'a publié sous la licence MIT ici: https://code.google.com/p/ldap-php/.
Je n'ai aucune idée de ce que l'état de ce qui est bien.