Необходимо реализовать следующую задачу.
Есть 2 домена на Windows 2003, в каждом домене своя кучка пользователей.
Необходимо слепить этих пользователей в одну кучу (т.е. организовать общий Ldap сервер).
Через этот Ldap сервер будет проходить авторизация пользователя для различных unix сервисов, а также подтягиваться данные (ФИО, номер телефона, должность и т.д.).
Т.е. OpenLdap сервер необходимо заставить работать как прокси для Windows Ldap.
C OpenLdap еще не сталкивался и опыта не имею.
OpenLdap поднимается на Ubuntu 8.04, там же стоит один из сервисов для которых он необходим.
Не пинайте что в разделе freebsd рассматривается другая ОС, важно что подход реализации проксирования одинаковый. По конфигам что на freebsd что на Ubuntu все одинаково. В дальнейшем планируется поднятие OpenLdap как прокси и на Freebsd.
Итак установлен OpenLdap:
Код: Выделить всё
Source: openldap2.3
Version: 2.4.9-0ubuntu0.8.04.3
Код: Выделить всё
# allow bind_v2
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/collective.schema
include /etc/ldap/schema/java.schema
include /etc/ldap/schema/corba.schema
include /etc/ldap/schema/duaconf.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/dyngroup.schema
# include /etc/ldap/schema/nadf.schema
include /etc/ldap/schema/ppolicy.schema
pidfile /var/run/slapd/slapd.pid
argsfile /var/run/slapd/slapd.args
loglevel 255
modulepath /usr/lib/ldap
moduleload back_hdb
moduleload back_bdb
moduleload back_ldap
moduleload back_passwd
sizelimit 500
tool-threads 1
backend hdb
backend bdb
#----------------------------DATABASES--------------------------------------
#----------------------External Database-----------------------------------
include /etc/ldap/domain1.conf
#--------------------------------------------------------------------------
#-------------------------OpenLdap Database---------------------------------
database hdb
suffix "dc=kh,dc=ua"
rootdn "cn=admin,dc=kh,dc=ua"
rootpw "secret"
directory "/var/lib/ldap"
dbconfig set_cachesize 0 2097152 0
dbconfig set_lk_max_objects 1500
dbconfig set_lk_max_locks 1500
dbconfig set_lk_max_lockers 1500
lastmod on
checkpoint 512 30
replogfile /var/lib/ldap/replog
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=kh,dc=ua" write
by anonymous auth
by self write
by * none
access to dn.base="" by * read
access to *
by dn="cn=admin,dc=kh,dc=ua" write
by * read
# index objectClass eq,pres
# index ou,cn,mail,surname,givenname eq,pres,sub
# index uid eq,pres,sub
#--------------------------------------------------------------------------
Код: Выделить всё
database ldap
subordinate
suffix "dc=domain,dc=local,dc=ua"
rebind-as-user
uri "ldap://192.168.10.254:389/"
rootdn "cn=user,ou=service,ou=usersandgroups,dc=domain,dc=local,dc=ua"
rootpw 1234567890
chase-referrals yes
# access to attr=userPassword
# by self write
# by anonymous auth
# by * none
#access to * by * read
# index objectClass eq,pres
# index ou,cn,mail,surname,givenname eq,pres,sub
# index uid eq,pres,sub
Код: Выделить всё
May 14 10:57:22 budmen slapd[8669]: /etc/ldap/slapd.conf: line 65: rootdn is always granted unlimited privileges.
May 14 10:57:22 budmen slapd[8669]: /etc/ldap/slapd.conf: line 65: warning: cannot assess the validity of the ACL scope within backend naming context
May 14 10:57:22 budmen slapd[8669]: >>> dnNormalize: <cn=Subschema>
May 14 10:57:22 budmen slapd[8669]: <<< dnNormalize: <cn=subschema>
May 14 10:57:22 budmen slapd[8669]: glue: no superior found for sub dc=domain,dc=local,dc=ua!
May 14 10:57:22 budmen slapd[8669]: subordinate config error
May 14 10:57:22 budmen slapd[8669]: slapd destroy: freeing system resources.
May 14 10:57:22 budmen slapd[8669]: slapd stopped.
May 14 10:57:22 budmen slapd[8669]: connections_destroy: nothing to destroy.
Так же в базе ldap включена опция subordinate, которая говорит серверу о том что данная база является подчиненной основной базе.
Если стартую сервер без конфига domain1, то через Jxplorer показывает структуру сервера openldap и одного юзера admin.
База Openldap создавалась при инсталяции сервера, т.е. по default.
На данном этапе хочу получить хотя бы список пользователей domain1 с неважно какими данными, авторизация через Ldap пока не интересует.
Делая свой вывод из лога и манов, как я это понимаю, у базы данных Ldap структура отличается то стуктуры domain1.
1. Поможет ли мне создание структуры ldap похожей на domain1 я имею ввиду не всю структуру а какую то ее часть, необходимую в openldap. И вообще нужно ли это ? Может для проксирования это не нужно, а мой сервер не стартует по другой причине ...
2. Если у кого есть наработки или путный пример не поделитесь ?
3. Какие основные моменты необходимо учитывать при создании такой связки ?
В маны и google не посылайте ибо перечитано уже достаточно, толковой доки я не нашел.
Если Вам нужна еще какая нить инфа, я выложу.
Заранее спасибо.