LDIF для создания пользователей и групп Active Directory в OpenLDAP?

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

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

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

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


person muriloq    schedule 30.08.2011    source источник
comment
Можете ли вы быть более явным. Вам нужен сценарий LDIF, так что это программирование, поэтому я не голосую за закрытие вопроса, но это не так явно. Что вы действительно хотите сделать, перевести пользователей из AD в OpenLDAP? добавить нового пользователя в OpenLDAP с помощью LFIF? Вы рассказали о документе, который (можете отредактировать свой вопрос и поставить ссылку?). Другой вопрос, почему OpenLDAP знает, что ADAM (аналог AD) работает в Windows и является бесплатным?   -  person JPBlanc    schedule 31.08.2011
comment
Мне нужно создать новых пользователей и группы (не переносить их из AD) в OpenLDAP, используя ту же схему (классы, атрибуты), что и Active Directory. Упомянутый документ предоставить не могу - он проприетарный. Я знаю ADAM, но не могу его использовать (решение должно быть на базе Linux). Спасибо за ваш интерес.   -  person muriloq    schedule 31.08.2011
comment
Этот ответ полезен для более поздних версий openldap. stackoverflow.com/questions/45538552/   -  person Rhys    schedule 06.09.2018


Ответы (2)


Практически невозможно преобразовать всю схему 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
person muriloq    schedule 23.09.2011
comment
Как добавить эти типы атрибутов и объектные классы? Я попытался добавить их с помощью Apache Directory Studio, но это не удалось. - person Ken; 17.02.2021


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

После того, как вы установили 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 directory studio, для меня это ОЧЕНЬ хороший браузер LDAP, это открытый исходный код, он работает на верхняя часть java в Linux и Windows. Используя его, вы можете графически просматривать AD и OpenLdap и выполнять части B и C, просто щелкая.


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

person JPBlanc    schedule 31.08.2011
comment
Спасибо, но вы дали только общие инструкции по настройке OpenLDAP — я уже это сделал (и использую Apache Directory Studio). Что мне нужно знать, так это то, как создавать пользователей и группы так, как это делает AD. Например, атрибуты типа группы и области действия группы — это не просто строки Security и Global, они используют длинные числовые константы (которых у меня не было). - person muriloq; 01.09.2011
comment
Я редактирую свой ответ, но я не уверен, что понимаю, чего вы ожидаете. - person JPBlanc; 01.09.2011