<?xml version="1.0" encoding="UTF-8" ?><oembed><version>1.0</version><provider_name>Чудо{вищные} заметки</provider_name><provider_url>https://miracle.rpz.name</provider_url><author_name>MiRacLe</author_name><author_url>https://miracle.rpz.name/author/miracle/</author_url><title>redmine_ldapserver</title><html>В настоящее время для авторизации в subversion мы пользуемся учётными данными из &lt;a href=&quot;http://redmine.org&quot;&gt;redmine&lt;/a&gt; (с помощью немного доработанного &lt;a title=&quot;Apache::Authn::Redmine&quot; href=&quot;http://www.redmine.org/projects/redmine/repository/entry/trunk/extra/svn/Redmine.pm&quot;&gt;модуля к mod_perl из стандартной комплектации самого redmine&lt;/a&gt;) и когда возникла необходимость в появлении ещё одного внутреннего сервиса, который требовал авторизации, то немедленно захотелось использовать существующие аккаунты.

&lt;a title=&quot;настройки ldap-авторизации в zabbix&quot; href=&quot;http://miracle.rpz.name/shared/2013/zabbix-ldap-settings.png&quot; rel=&quot;tn&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://miracle.rpz.name/shared/2013/tn_zabbix-ldap-settings.png&quot; align=&quot;right&quot; /&gt;&lt;/a&gt;
Появившимся сервисом оказался &lt;a href=&quot;http://www.zabbix.com/&quot;&gt;zabbix&lt;/a&gt;, веб-интерфейс которого написан на php. Я сделал несколько грубых попыток влезть в его нутро и прикрутить внешнюю авторизацию (пока redmine и zabbix раскручивались на одном сервере было легко манипулировать базами данных обоих, но после их разъезда это стало &quot;затруднительно&quot;), затем реализовал более изящную, как тогда показалось, идею - в zabbix (как и во многих других продуктах) имеется штатная возможность использовать авторизацию через ldap, мысль заключалась в том, чтобы реализовать набор &lt;a href=&quot;http://php.net/ref.ldap&quot;&gt;стандартных функций расширения ldap&lt;/a&gt; в которых обращаться к БД и/или используя http api redmine.
&lt;h4 style=&quot;text-align: center;&quot;&gt;***&lt;/h4&gt;
&lt;a title=&quot;настройки ldap-сервера в redmine&quot; href=&quot;http://miracle.rpz.name/shared/2013/redmine-ldap-server-settings.png&quot; rel=&quot;tn&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://miracle.rpz.name/shared/2013/tn_redmine-ldap-server-settings.png&quot; align=&quot;right&quot; /&gt;&lt;/a&gt; К счастью наработки оказались бесследно утеряны, однако сама идея претерпела неожиданные мутации и выродилась в прямо противоположную реализацию. Вместо создания псевдо-ldap-клиента был сделан &quot;сервер&quot;. Он весьма прост и незатейлив и умеет лишь то, для чего создан - метод simple_bind для авторизации (реализован шутейный метод search, но лишь для того, чтобы тестировать запросы к серверу в процессе разработки стандартными утилитами).

Полученное оформлено в виде плагина к redmine, к тестированию которого теперь приглашаю всех желающих: &lt;a href=&quot;https://github.com/MiRacLe-RPZ/redmine_ldapserver&quot;&gt;код и краткая инструкция по запуску на github-е&lt;/a&gt;.

Жду комментарии и неудобные вопросы.</html><type>rich</type></oembed>