Я работаю над веб-приложением Java, которое интегрируется с несколькими другими внешними приложениями, которые развертываются вместе с ним. Информация аутентификации должна быть синхронизирована во всем, а другие приложения хотят аутентифицироваться по LDAP. Приложение будет развернуто в среде, где не будет другого LDAP-сервера, который мог бы использовать все; Я должен это предоставить. Мое решение до сих пор заключалось в использовании Сервер Пенроуза в качестве автономного приложения, которое я настроил для проверки таблиц в базе данных основного приложения и публикации LDAP на основе этого. Он работает хорошо, но было бы неплохо иметь что-то, что можно было бы встроить в само основное приложение, чтобы упростить развертывание.
Похоже, что Пенроуза можно встроить, но документация может быть немного неаккуратной или устаревшей (хотя, похоже, она активно разрабатывается). Это могло бы быть приемлемым решением, но если есть другое, которое, как известно, хорошо работает во встроенной конфигурации, я мог бы проверить его.
Я также обеспокоен проблемами GPL с Пенроузом. Я не вправе раздавать исходный код приложения по лицензии GPL. Я не верю, что это была проблема с автономным запуском, но встраивание может быть нет-нет ... кто-нибудь знает наверняка? Разрешающая лицензия была бы хороша, чтобы избежать этих проблем.
Требования:
Пока я вкратце рассмотрел ApacheDS и OpenDS, которые кажутся встраиваемыми.
Есть ли у кого-нибудь опыт работы с подобными вещами?




Поскольку на этот вопрос в течение некоторого времени не было ответа, я хотел бы предложить вам также принять во внимание коммерческую лицензию Penrose - у нее есть двойная лицензия для таких же людей, как вы, когда последствия GPL запрещены. Я не знаю их цены и модель, но может быть проще и дешевле использовать решение, которое вы уже знаете, чем привыкать к другому решению, к которому вам нужно привыкнуть. Вы можете заплатить своими деньгами или своим временем ...
Также - для записей, не применяемых в данном случае: когда проекты используют GPL, и вы хотите внедрить их не-GPL способом, может быть полезно попросить разработчиков о более разрешительной лицензии. Некоторые люди публикуют под GPL, не задумываясь о последствиях. Вы можете заставить их изменить лицензию, если это означает более широкое использование проекта. Другим особенно нужны последствия GPL, но всегда полезно спросить. Пенроуз уже подумал об этом и предлагает коммерческую лицензию.
Я только что потратил пару дней на то, чтобы представить нашу внутреннюю пользовательскую базу данных приложения как службу LDAP. Сначала я посмотрел на apache-ds, хотя это, кажется, очень мощная служба каталогов, расширяющая ее, чтобы раскрыть реляционную базу данных, ошеломляюще сложна.
Остановились на Penrose, поскольку он, кажется, предлагает довольно хорошее решение, прототип решения удалось создать примерно за 2 часа.
Вам следует взглянуть на Apache DS. Я просто начал использовать его как встроенный сервер, чтобы настроить тест JUnit. Пока он работает хорошо, единственное, что меня сейчас останавливает, - это мои ограниченные знания LDAP. ApacheDS выглядит достойным проектом, и я думаю, что он того стоит.
Я никогда не делал этого сам, но вы можете легко использовать Spring Security для настроить встроенный сервер каталогов Apache с минимальной требуемой конфигурацией Spring XML.
Встроенный LDAP-сервер Spring предназначен только для тестирования. Сомневаюсь, что есть какие-то рекомендации использовать его в продакшене.