LINUX.ORG.RU
ФорумAdmin

Пользователь LDAP в нескольких группах

 , ,


1

1

Яндекс не выдал результат, как добавить одного пользователя в несколько групп...

Есть пользователь: u0001

Есть несколько групп (как от корня, так и вложенные):

  • Group01
  • Group02
  • Group03
  • Group04
  • Group05

    ...

  • Group15

Мой вариант ldif-файла создания пользователя с одной группы:

 
dn: cn=u0001,ou=Group01,dc=ldap,dc=centos
uid: u0001
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
objectClass: inetOrgPerson
userPassword: {SSHA}cYXBZxAKZs+lHutaP4CnMyB9N7HMF58R
shadowLastChange: 15140
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1100
gidNumber: 1100
homeDirectory: /home/u0001
Как прописать при создании пользователя через ldif-файл все группы, в которые его нужно добавить, перечислять группы через запятую, перечислять в ou и как-то еще?

dn: ou=Group01,dc=ldap,dc=centos
objectClass: top
objectClass: organizationalUnit
objectClass: posixGroup
gidNumber: 100
cn: users
memberUid: u0001
description: group of users
bass ★★★★★ ()
Ответ на: комментарий от bass

Вот, как она сказала. В аттрибут memberUid указываешь несколько значений. А в entry с аттрибутом posixAccount указывается только primary группа.

zuzzas ()
Ответ на: комментарий от bass

Спасибо за ответ

Правильно ли я поняла, что этот вариант предполагает прописывать пользователей в группе, через добавление в memberUid?

Нашла на форуме, что есть всего два варианта соотнесения пользователей и групп:

Зачем нужны группы в LDAP? (комментарий)
Дело в том, что принадлежность к группе может определяться двумя способами:


  • у пользователя перечислить группы, к которым он принадлежит (memberOf)
  • в группе перечислить её членов (member/memberUid)

Насколько равнозначны оба варианта?

Вы предложили второй. Если варианты равнозначны (неважно, что во что вложено, пользователи в группы или в группы вложены пользователи), тогда вопрос остается. Как нескольких пользователей прописать в одной группе?

Простым перечислением пользователей в memberUid?

dn: ou=Group01,dc=ldap,dc=centos
objectClass: top
objectClass: organizationalUnit
objectClass: posixGroup
gidNumber: 100
cn: users
memberUid: u0001 u0002 u0003
description: group of users
или построчно?
dn: ou=Group01,dc=ldap,dc=centos
objectClass: top
objectClass: organizationalUnit
objectClass: posixGroup
gidNumber: 100
cn: users
memberUid: u0001
memberUid: u0002
description: group of users

manik207 ()
Ответ на: Спасибо за ответ от manik207

Насколько равнозначны оба варианта?

логика ответа на этот вопрос будет отталкиваться от: группы могут быть не в лдап и ими управлять может не админ лдапа и т.д.

построчно
memberUid: u0001
memberUid: u0002

bass ★★★★★ ()
Ответ на: комментарий от bass

группы могут быть не в лдап и ими управлять может не админ лдапа и т.д.

Я запуталась. Мне нужны именно права группы (через прописание атрибутов в группе), которыми будут наделяться участники группы. Если на конкретном примере:

Есть сервис редмин (или любой другой сервис, мне предстоит именно его подцеплять к лдапу), который обращается к лдапу за данными о стучащихся в него пользователей.

Обращается пользователь u0001. Redmine запрашивает у лдапа на этого пользователя атрибуты, относящиеся к редмину.

Лдап передает редмину, что пользователь u0001 входит в группу

ou=Redmine,ou=Group01,dc=ldap,dc=centos,
которой разрешена авторизация в редмине, а еще входит в группу
ou=Redmine01,ou=Redmine,ou=Group01,dc=ldap,dc=centos
- все, кто в этой группе, получают роль менеджера проекта project01 в редмине и соответствующие права.

Если придет пользователь u0002 и в лдапе он числится в группе

ou=Redmine011,ou=Redmine,ou=Group01,dc=ldap,dc=centos
что в редмине накладывает на него роль разработчика в том же проекте project01.

Т.е. основой является группа, в нее входят пользователи. На группе - атрибуты, определяющие права в проектах. Становится понятно, как прописывать пользователей в группы.

Возможна ли реализация такой задачи средствами лдап?

manik207 ()
Ответ на: комментарий от manik207

redmine оперирует группами на основе objectclass: groupOfNames, точнее он смотрит в атрибут member. http://www.redmine.org/projects/redmine/wiki/RedmineLDAP

    dn: cn=ldapredmine,ou=groups,dc=example,dc=com
    cn: ldapredmine
    description: Staff members allowed to login to redmine ticketing system
    member: cn=ldap_user_1,ou=people,dc=example,dc=com
    member: cn=ldap_user_2,ou=people,dc=example,dc=com
    member: cn=some_user,ou=bosses,dc=example,dc=com
    objectclass: groupOfNames
    objectclass: top

bass ★★★★★ ()
Последнее исправление: bass (всего исправлений: 1)
Ответ на: комментарий от bass

Создала трех идентичных пользователей u0001, u0002 и u0003

dn: cn=u0001,ou=People,dc=ldap,dc=centos
cn:: dTAwMDEg
uid: u0001
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
userPassword:: e1NTSEF9M1N5WEo5Ky9wZkp0cEl4SFI5WTRPN1IzR3lJeDBwMjU=
shadowLastChange: 15140
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1100
gidNumber: 1100
homeDirectory: /home/u0001
structuralObjectClass: account
entryUUID: f50f7a86-88a4-1036-9c2f-058cd8768454
creatorsName: cn=Manager,dc=ldap,dc=centos
createTimestamp: 20170216150428Z
entryCSN: 20170216150428.482176Z#000000#000#000000
modifiersName: cn=Manager,dc=ldap,dc=centos
modifyTimestamp: 20170216150428Z
Создала запись ldapredmine
dn: cn=ldapredmine,ou=Group,dc=ldap,dc=centos
cn: ldapredmine
description: Staff members allowed to login to redmine ticketing system
member: cn=u0001,ou=People,dc=ldap,dc=centos
member: cn=u0002,ou=People,dc=ldap,dc=centos
member: cn=u0003,ou=People,dc=ldap,dc=centos
objectClass: groupOfNames
objectClass: top
structuralObjectClass: groupOfNames
entryUUID: 1f0108c2-88b0-1036-9c33-058cd8768454
creatorsName: cn=Manager,dc=ldap,dc=centos
createTimestamp: 20170216162423Z
entryCSN: 20170216162423.315842Z#000000#000#000000
modifiersName: cn=Manager,dc=ldap,dc=centos
modifyTimestamp: 20170216162423Z
Для авторизации в редмине указываю BaseDN -
cn=ldapredmine,ou=Group,dc=ldap,dc=centos
- Неверный пароль для всех трех пользователей.

Создаю отдел sales, группу sales-group и пользователя u0004

dn: ou=sales,dc=ldap,dc=centos
ou: sales
objectClass: organizationalUnit
objectClass: top
structuralObjectClass: organizationalUnit
entryUUID: 006aa3ba-88c8-1036-9c35-058cd8768454
creatorsName: cn=Manager,dc=ldap,dc=centos
createTimestamp: 20170216191519Z
entryCSN: 20170216191519.920083Z#000000#000#000000
modifiersName: cn=Manager,dc=ldap,dc=centos
modifyTimestamp: 20170216191519Z

dn: cn=sales-group,ou=sales,dc=ldap,dc=centos
cn: sales-group
gidNumber: 500
objectClass: posixGroup
objectClass: top
structuralObjectClass: posixGroup
entryUUID: 4baa1d4c-88c8-1036-9c36-058cd8768454
creatorsName: cn=Manager,dc=ldap,dc=centos
createTimestamp: 20170216191726Z
entryCSN: 20170216191726.165192Z#000000#000#000000
modifiersName: cn=Manager,dc=ldap,dc=centos
modifyTimestamp: 20170216191726Z

dn: cn=u0004,cn=sales-group,ou=sales,dc=ldap,dc=centos
sn: u0004
cn:: IHUwMDA0
uid: u0004
userPassword:: NDQ0
uidNumber: 1000
gidNumber: 500
homeDirectory: /home/users/u0004
loginShell: /bin/sh
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
structuralObjectClass: inetOrgPerson
entryUUID: a07d8d18-88c8-1036-9c37-058cd8768454
creatorsName: cn=Manager,dc=ldap,dc=centos
createTimestamp: 20170216191948Z
entryCSN: 20170216191948.479478Z#000000#000#000000
modifiersName: cn=Manager,dc=ldap,dc=centos
modifyTimestamp: 20170216191948Z
В редмине меняю BaseDN -
cn=sales-group,ou=sales,dc=ldap,dc=centos
и пользователю u0004 доступна авторизация (новым пользователем).

Как правильно прописать cn=ldapredmine?

manik207 ()
Ответ на: комментарий от manik207

Перечитала официальную документацию.

В настройках редмина указала

BaseDN: dc=ldap,dc=centos
Фильтр LDAP: (&(objectClass=posixAccount)(memberOf=cn=ldapredmine,ou=Group,dc=ldap,dc=centos))
И всё равно при попытке авторизации первыми тремя пользователями - неверный логин/пароль...

manik207 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.