Назад | Перейти на главную страницу

Синхронизация Openldap и Active Directory

Некоторое время я искал в Google, чтобы найти лучший способ синхронизировать базу данных пользователей между OpenLDAP и ActiveDirectory, но не дал четких результатов!

Я хочу получить базу данных пользователей в OpenLDAP, а затем заполнить их в AD, чтобы эти пользователи могли получить доступ ко всем моим приложениям (электронная почта, vpn, файловый сервер, сервер печати, почти все приложения с открытым исходным кодом) .. В основном то, что я пытаюсь сделать do заключается в создании единой БД входа в систему, чтобы все пользователи могли иметь одинаковые пароли для приложений на базе Windows и Linux, но я также хочу убедиться, что пароли обновляются в двух направлениях.

Буду признателен, если кто-нибудь поделится своим опытом о том, как это можно сделать. Спасибо!!

Что будет работать для односторонней синхронизации, но с небольшим количеством «требуется некоторая сборка»:

OpenLDAP → Реплика OpenLDAP → ActiveDirectory

где промежуточная реплика OpenLDAP использует серверная часть perl - а не постоянное хранилище. Вы должны написать модуль perl, который предоставляет 9 (в прошлый раз, когда я проверял) функции, которые отображаются на вызовы LDAP API (bind, search, compare, modify, add и т.д.).

В этом коде вы можете делать любые атрибуты / объектные классы и сопоставления имен, которые могут потребоваться. В исходном дистрибутиве есть образец конфигурации и кода (SampleLDAP.pm). Оцените 1000-1500 строк кода для надежной реализации в реальном мире.

Немного более простой подход - опросить исходный каталог на предмет измененных объектов и отправить изменения, см. lsc проект для реализации. У этого подхода могут быть проблемы с задержкой и масштабируемостью. Методом опроса можно немного схитрить Поиск OpenLDAP путем добавления элементов управления syncrepl, и это дает вам более простую версию подхода back-perl - преимущество в том, что вам не нужно реализовывать API, вам просто нужно обрабатывать результаты поиска, которые отправляются вам по мере появления изменений, и распространять их (и сохранить состояние / переподключиться при ошибке).

Вам придется хорошо подумать об обработке паролей, атрибутах пароля (пользовательский пароль, unicodePwd) являются эффективно магия. Мне всегда удавалось отговорить людей от двунаправленной синхронизации паролей, поэтому я могу дать только базовый совет (если только я не смогу отговорить вас и от этого ;-)

Обычный подход состоит в том, чтобы фиксировать изменения пароля под видом «проверки сложности», создавать хэш / формат пароля по мере необходимости и распространять эти значения, см. PasswdHk.

Вы можете «убедить» своих пользователей использовать альтернативный метод смены / сброса пароля, который может распространять изменения, например Пароль самообслуживания (это только устанавливает пароли в одном месте).

У Red Hat есть полезная документация (хотя базовый DS больше не OpenLDAP) большая часть теории все еще применима. AFAICT текущие версии еще не вошли в CentOS 6.

PCNS - это способ Microsoft, я считаю, что он может отправлять пароли в OpenLDAP (но сам не делает обратного). XMA утверждает, что делает и то и другое, хотя я им не пользовался.

Смотрите также: Синхронизация Active Directory и OpenLDAP он охватывает гибридный подход с использованием Kerberos что исключает синхронизацию паролей (хотя это делает AD авторитетным для аутентификации).

Короче говоря, начните с чтения lsc документации, он может делать то, что вы хотите.