Форум проекта Pro-LDAP.ru
Общие вопросы по LDAP => Схема данных, наборы Schema, объектные классы, атрибуты и другое => Тема начата: belodemon от 25 Апрель 2018, 18:33:18
-
Добрый день! Я в OpenLDAP пока только начинающий , так что прошу не судить строго. Появилась задачка авторизовать пользователей приложения которое вращается на Tomcat через LDAP, соответственно мне нужно создать ряд пользователей в LDAP с привязкой к группе. В интернете примеры создания системных пользователей с использованием обьектов класса objectClass: posixAccount для которого обязательны $ uid $ uidNumber $ gidNumber $ homeDirectory. Может кто посоветуете как создавать пользователей с привязкой к группе без необходимости указания как миннимум homeDirectory? ведь пользователи не будут системными. Буду очень признателен за примеры ldif.
То есть алгоритм сводится к
1. Описать группу в лдап
2. Создать (Не системного) пользователя и привязать к этой группе.
Спасибо!
-
Здравствуйте!
Самый простой вариант учётки для аутентификации -- запись на объектном классе person (обязательные атрибуты cn, sn):
dn: cn=ivanov,ou=People,dc=mycompany,dc=ru
objectClass: person
cn: ivanov
sn: Ivanov
userPassword: ivanovPassword
Если нужен атрибут uid, то можно добавить вспомогательный объектный класс uidObject (обязательный атрибут uid):
dn: uid=petrov,ou=People,dc=mycompany,dc=ru
objectClass: person
objectClass: uidObject
uid: petrov
cn: Petr Petrov
sn: Petrov
userPassword: petrovPassword
Стандартная группа на объектном классе groupOfNames (обязательные атрибуты cn, member):
dn: cn=Website Users,ou=Groups,dc=mycompany,dc=ru
objectClass: groupOfNames
cn: Website Users
member: cn=ivanov,ou=People,dc=mycompany,dc=ru
member: uid=petrov,ou=People,dc=mycompany,dc=ru
Егор
-
Егор! Спасибо! Благодаря вашему топику я решил ищью! Но есть идея пойти по-другому пути, в Вашем примере группа вяжется к пользователю, то-есть это с одной стороны Юникс путь, с другой стороны при создании пользователя нужно будет помнить о группе в которую его следует добавить. Что если при создании пользователя привязывать его сразу же к группе, по dn например? Как Вы считаете, можно ли такое реализовать? Например, что если member: group dn должно присутствовать в ldif пользователя а не группы? Как такой лдиф должен выглядеть? Буду очень спасибо ! :) П.С. Лень всегда побеждает ;)
-
Здравствуйте. То, что Вы хотите, можно реализовать с помощью динамических групп или автогрупп, в зависимости от того, как Tomcat делает выборку из LDAP. Но тут требуется перенастроить OpenLDAP, то есть нужен к нему доступ. О динамических группах я писал здесь (https://pro-ldap.ru/forum/index.php?topic=452.msg1271#msg1271), а про автогруппы и их отличие от динамических групп -- здесь (https://pro-ldap.ru/forum/index.php?topic=498.msg1370#msg1370) и далее здесь (https://pro-ldap.ru/forum/index.php?topic=498.msg1490#msg1490). Попробуйте разобраться, если будут вопросы -- пишите.
Егор
-
Да! Спасибо! То что нужно!
dn: dc=example,dc=com
dc: example
objectClass: top
objectClass: domain
dn: ou=Logins,dc=example,dc=com
objectClass: organizationalUnit
objectClass: top
ou: Logins
dn: ou=Roles,dc=example,dc=com
objectclass: top
objectclass: organizationalUnit
ou: Roles
dn: uid=Users,ou=Roles,dc=example,dc=com
objectClass: extensibleObject
objectClass: top
objectClass: inetOrgPerson
objectClass: uidObject
sn: Users
cn: Users
uid: Users
distinguishedName: uid=Users,ou=Roles,ou=Roles,dc=example,dc=com
dn: uid=guest1,ou=Logins,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: extensibleObject
cn: guest1
sn: guest1
uid: guest1
member: uid=Users,ou=Roles,dc=example,dc=com
distinguishedName: uid=guest1,ou=Logins,dc=example,dc=com
userPassword: {SSHA}*******************************
dn: uid=Administrators,ou=Roles,dc=example,dc=com
objectClass: extensibleObject
objectClass: top
objectClass: inetOrgPerson
objectClass: uidObject
sn: Administrators
cn: Administrators
uid: Administrators
distinguishedName: uid=Administrators,ou=Roles,dc=example,dc=com
dn: uid=Admin,ou=Logins,dc=example,dc=com
objectClass: top
objectClass: groupOfNames
objectClass: extensibleObject
cn: Admin
sn: Admin
uid: Admin
member: uid=Administrators,ou=Roles,dc=example,dc=com
distinguishedName: uid=Admin,ou=Logins,dc=example,dc=com
userPassword: {SSHA}*********************
Все получилось, таким образом guest1 входит в группу Users , а Admin в Administrators. Спасибо за помощь!
-
Здравствуйте ещё раз. Не совсем понимаю, как я помог своим предыдущим ответом, ведь там говорилось об динамическом поддержании членства в группах на основании каких-либо признаков из учётной записи пользователя. Вы же просто добавили атрибут member в саму учётку. Но если это действительно то, что Вам было нужно, то OK, рад, что Вы решили задачу.
Егор
-
Егор, действительно помогли ;) по одной из ваших ссылок увидел атрибут member, до этого перелопатил офф доки, кстати получилось не томкета а джибоса... там два подхода, principal-to-group and group-to-principal, меня заинтересовал principal-to-group, мне показалось легче сделать шаблон на добавление пользователя чем на добавление пользователя и добав пользователя в группу..