LDIF для создания пользователей и групп Active Directory в OpenLDAP? - PullRequest
7 голосов
/ 31 августа 2011

У меня есть веб-приложение, которое использует Active Directory для аутентификации пользователей, и я пытаюсь заменить AD на OpenLDAP.

В документации сказано, что мне нужно войти на контроллер домена как администратор, открыть окно управления пользователями, щелкнуть по соответствующей организационной единице и добавить идентификаторы пользователей в соответствующие группы (эти группы должны иметь область действия «Глобальная» и тип группы "Безопасность").

Мне нужно создать эквивалентные записи на моем сервере OpenLDAP. Может кто-нибудь привести пример LDIF для этого? Я не знаю ни класса, ни атрибутов, которые мне следует использовать, и у меня нет доступа к контроллеру домена. Кажется, что наиболее проблемными элементами являются тип и область группы, поскольку они представляют собой двоичные значения, а не строки.

Обратите внимание, что я не хочу полностью заменять Active Directory - мне просто нужны идентификаторы пользователей и группы. Я пытался добавить microsoft.schema в OpenLDAP, но это не работает. Я нашел некоторую информацию об изменении схемы для Microsoft Outlook; Мне нужно нечто подобное, но проще.

Ответы [ 2 ]

11 голосов
/ 23 сентября 2011

Практически невозможно преобразовать всю схему ActiveDirectory в OpenLDAP, она огромна. Однако мы можем добавить только необходимые атрибуты и классы:

attributetype ( 1.2.840.113556.1.4.750 NAME 'groupType' 
   SYNTAX '1.3.6.1.4.1.1466.115.121.1.27' SINGLE-VALUE 
)

attributetype ( 1.3.114.7.4.2.0.33 NAME 'memberOf' 
    SYNTAX '1.3.6.1.4.1.1466.115.121.1.26' 
)

objectclass ( 1.2.840.113556.1.5.9 NAME 'user'
        DESC 'a user'
        SUP organizationalPerson STRUCTURAL
        MUST ( cn )
        MAY ( userPassword $ memberOf ) )

objectclass ( 1.2.840.113556.1.5.8 NAME 'group'
        DESC 'a group of users'
        SUP top STRUCTURAL
        MUST ( groupType $ cn )
        MAY ( member ) )

Тогда легко создать файл LDIF для вставки пользователей и групп:

dn: dc=myCompany
objectClass: top
objectClass: dcObject
objectClass: organization
dc: myCompany
o: LocalBranch

dn: ou=People,dc=myCompany
objectClass: top
objectClass: organizationalUnit
ou: People
description: Test database

dn: cn=Users,dc=myCompany
objectClass: groupOfNames
objectClass: top
cn: Users
member: cn=Manager,cn=Users,dc=myCompany

dn: cn=Manager,cn=Users,dc=myCompany
objectClass: person
objectClass: top
cn: Manager
sn: Manager
userPassword:: e1NIQX1tc0lKSXJCVU1XdmlPRUtsdktmV255bjJuWGM9

dn: cn=ReadWrite,ou=People,dc=myCompany
objectClass: group
objectClass: top
cn: ReadWrite
groupType: 2147483650
member: cn=sysconf,ou=People,dc=myCompany

dn: cn=sysopr,ou=People,dc=myCompany
objectClass: user
objectClass: organizationalPerson
objectClass: person
objectClass: top
cn: sysopr
sn: team
memberOf: cn=ReadOnly,ou=People,dc=myCompany
userPassword:: e1NIQX1jUkR0cE5DZUJpcWw1S09Rc0tWeXJBMHNBaUE9
6 голосов
/ 31 августа 2011

Хорошо, вот начало ответа:

После того, как вы установили OPENLdap

A - отредактируйте slapd.conf на:

1) Измените включенные схемы

include /usr/local/etc/openldap/schema/core.schema
include /usr/local/etc/openldap/schema/cosine.schema
include /usr/local/etc/openldap/schema/inetperson.schema

2) Измените файлы схемы, как описано в этом FAQ

3) Измените свой контекст именования (лично яя использую HDB в качестве бэкэнда)

database hdb
suffix "dc=dom,dc=com"
rootdn "cn=Manager,dc=dom,dc=com"
rootpw secret
directory /usr/local/var/openldap-hdb

4) Затем перезапустите ваш каталог

B - Вставьте свой корень

Вот файл LDIF(root.ldif)

dn: dc=dom,dc=com
objectclass: dcObject
objectclass: organization
o: Company name
dc: dom

Вот командная строка

ldapadd –x –D "cn=Manager,dc=dom,dc=com" -W –f root.ldif

C - Вставить пользователя

Вот файл LDIF(user.ldif)

dn: cn=user1,dc=dom,dc=com
objectClass: inetOrgPerson
sn: users
cn: user1
telephoneNumber: 9999

Вот командная строка

ldapadd –x –D "cn=Manager,dc=dom,dc=com" -W –f user.ldif

D - Совет

Студия каталогов Apache, для меня это ОЧЕНЬ хороший браузер LDAP, он с открытым исходным кодом, он работает поверх java в Linux и Windows.С его помощью вы можете графически просматривать AD и OpenLdap и выполнять части B и C. просто щелкая.


Active-Directory Схема (Классы и атрибуты) документированы в MSDN.Например, вот информация о groupType .Это то, что вы ожидаете?

...