У нас есть локальный каталог LDAP, который предоставляет основную контактную информацию о нашем сообществе пользователей. Мы хотели бы интегрировать это в некоторые сторонние сервисы, которые позволяют нам реализовывать виджеты, которые запускают произвольный Javascript.
Чтобы подключить Javascript к нашему каталогу LDAP, я хотел бы настроить простой прокси-сервер LDAP-HTTP, который бы принимал запросы HTTP GET, переводил их в соответствующий запрос LDAP и отвечал информацией каталога в виде данных в кодировке JSON.
В идеальном мире примерно так:
GET /ldap?mail=bob@example.com
Получил бы мне что-то вроде этого:
{
"cn": "Bob Person",
"title": "System Administrator",
"sn": "Person",
"mail": "bob@example.com",
"telepehoneNumber": "617-555-1212",
"givenName": "Bob"
}
(И это, очевидно, предполагает, что веб-приложение имеет локально настроенную информацию о том, какой базовый DN использовать, как аутентифицироваться и т. Д.).
Думаю, я мог бы написать такое ... но наверняка что-то подобное уже существует?
Принимая предложение Эндрю и превращая это в ответ ...
Похоже, что консенсус состоит в том, что ранее существовавшего решения не существовало, и я должен просто прекратить свою ленивую работу и написать его. Я так и сделал, и он доступен по адресу:
Это не особенно красиво, но это работает для моего прототипа, и я полагаю, что, возможно, кто-то еще сочтет это полезным когда-нибудь. Код в настоящее время не обрабатывает аутентификацию. Если вам повезет, он может справиться с отключением сервера. Это делает поддерживает JSONP, что мне и нужно, чтобы интегрировать его с нашей сторонней размещенной службой.
Я нашел один продукт там утверждают, что делают то же самое, но это коммерческий продукт, и я ничего не знаю о ценах.
Это старый вопрос, однако для всех, кто ищет решения в этой области, я наткнулся на Json2Ldap который предоставляет сервер LDAP с протоколом JSON-RPC.
Это дает вам возможность создавать довольно целенаправленные запросы и сохранять удобство и эффективность. Также поддерживает все, что вы ожидаете, с точки зрения аутентификации, токенов для разных конечных точек и контроля того, какой уровень злоупотреблений вы хотите открыть напрямую посторонними руками.
Думаю, я мог бы написать такое ... но наверняка что-то подобное уже существует?
Я ничего не знаю.
Единственный доступный плагин для Apache, связанный с LDAP, это, очевидно, mod_ldap. Однако он предоставит вам только часть аутентификации / авторизации. Что касается поиска в каталоге, вам нужно будет написать модуль cgi python / perl или сервлет для обработки запросов http / https для поиска в каталоге ldap. Доступно множество API. Например:
http://ldap.perl.org/
http://directory.apache.org/api/five-minutes-tutorial.html
Возможно, вам лучше написать что-нибудь для обработки вашего запроса и вернуть его в формате JSON.
Готового решения не знаю.
С другой стороны, я бы сделал это на Perl. Mojolicious и Net :: LDAP позволяют очень легко реализовать это.
Вы рассматривали возможность расширения кода на https://www.web2ldap.de/download.html
Это веб-браузер для шлюза LDAP, но его несложно адаптировать для возврата JPON.
Я сомневаюсь, что вы можете сделать это с любыми языками сценариев на стороне клиента из-за ряда проблем с безопасностью, но определенно возможно с помощью языков сценариев на стороне сервера, таких как php или .net и т. Д.
РЕДАКТИРОВАТЬ: Взгляните на это http://www.nimbusds.com/json2ldap.html или http://blog.dzhuvinov.com/?p=96