Я профессионально работаю над веб-приложением php, которое, помимо других данных, содержит контакты. Мне было интересно, насколько сложно будет сделать эти данные доступными для внешних программ, использующих протокол LDAP.
Есть ли для этого специальные инструменты? Я действительно ничего не мог найти, но не могу представить, что я первый, кто об этом подумал.
Изменить 1: Я ищу способ иметь приложение (например, почтовый клиент), чтобы иметь возможность использовать стандартный поиск ldap для поиска контактов по моим данным.
На моей стороне нет ограничений на использование стороннего программного обеспечения или отдельного сервера ldap, но я хочу, чтобы клиенты просто могли использовать встроенное соединение ldap по своему выбору.
Я мог видеть сервер ldap, который использует мою базу данных или службу в моем приложении для обслуживания данных, как если бы само мое приложение было сервером ldap. Я бы предпочел подобное решение, потому что я не считаю правильным раздувать приложение функциональностью ldap, если я могу использовать для этого внешний сервер.






Вы хотите реализовать LDAP-сервер на PHP или просто обмениваться данными?
Вы можете подумать о реализации чего-то вроде LDIF, если хотите просто обмениваться данными.
Протокол сервера LDAP большой, и я не думаю, что существует сервер PHP. Я бы посоветовал запустить LDAP-сервер и отправлять на него записи.
Мне нравится OpenLDAP, но существует множество серверов, в зависимости от вашей платформы. Даже ActiveDirectory - это сервер LDAP.
Обычно объекты LDAP имеют внутренние атрибуты отслеживания. Например, в OpenLDAP есть modifyTimestamp, который выглядит примерно как 20080306214429Z. Они не возвращаются сервером, если вы специально не запрашиваете их в своем запросе.
Было бы достаточно просто написать crontab для сравнения времени изменения в LDAP и в вашей базе данных. Если LDAP modifyTimestamp был старше, чем в вашей базе данных, обновите запись.
Вместо того, чтобы пытаться заставить сервер LDAP использовать вашу базу данных, я бы рекомендовал хранить ваши данные на сервере LDAP. Вы можете создавать настраиваемые поля для всего, что не соответствует стандартным полям LDAP.