Назад | Перейти на главную страницу

Создание группы администраторов OpenLdap на LDAP сервере

Я пытаюсь создать простую группу администраторов на моем сервере OpenLdap, на котором работает slapd. В настоящее время файла slapd нет, и я работал с форматом cn = config.

Моя цель - иметь возможность помещать пользователей в эту группу администраторов "cn = admins-group, ou = groups, dc = example, dc = com", чтобы они могли входить в веб-интерфейс Phpldapadmin и иметь возможность создавать пользователей в " ou = Люди, dc = example, dc = com ".

Это ldif для группы администраторов: (admin-group.ldif)

dn: cn=admin-group,ou=groups,dc=example,dc=com
objectClass: posixGroup
cn: admin-group
gidNumber: 12345
memberUid: admin1

Я понимаю, что один из шагов, который мне нужно предпринять для достижения своей цели, - это создать правило ACL, которое позволяет пользователям из группы администраторов получать доступ к нужным им ресурсам.

Это файл ldif, который я написал для изменения уже существующего правила в olcDatabase = {1} monitor: (accesschange.ldif)

dn: olcDatabase={1}monitor,cn=config
changetype: modify
add: olcAccess

olcAccess: to *
  by self write
  by group/posixGroup/uniqueMember=cn=admins- group,ou=groups,dc=example,dc=com write

Я запустил этот файл с помощью этой команды:

ldapmodify -x -W -D "cn=ldapadm,dc=example,dc=com" -f monitor.ldif

Это прошло без проблем. Однако я все еще получаю следующую ошибку на phpldapadmin при попытке добавить пользователя в подразделение People.

Could not add the object to the LDAP server.
LDAP said:  Insufficient access
Error number:   0x32 (LDAP_INSUFFICIENT_ACCESS)
Description:    You do not have sufficient permissions to perform that operation.

Я исследовал эту проблему в течение 2 недель безуспешно. Кто-нибудь может помочь?

РЕДАКТИРОВАТЬ: Я смотрю файл монитора olcDatabase: {1} в /etc/openldap/slapd.d/cn\=config/, и я не вижу нового правила, которое я добавил. Может быть, это проблема в том, как я использую ldapmodify?

РЕДАКТИРОВАТЬ № 2: Исправлена ​​проблема записи с использованием ldapmodify с ВНЕШНИМ, как показано ниже:

ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif

Я поместил новое правило ACL в monitor.ldif и запустил его таким образом. Monitor.ldif выглядит следующим образом.

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=fsr,dc=local" read by * none
olcAccess: to *
  by self write
  by group/groupOfNames/member.exact="cn=admins,ou=groups,dc=fsr,dc=local" write

Однако я все еще не могу создать пользователя с одним admin1. Я не уверен, что мне не хватает. Я вижу правило, созданное мною в файле монитора olcDatabase: {1}, но я все еще не могу создать пользователя.

Схема группы, используемая в предложении who, неверна. Вы должны использовать схему группы с полными DN в качестве атрибута участника. memberUid не будет работать.

Лучше использовать:

by group/groupNames/member="cn=admins-group,ou=groups,dc=example,dc=com" write

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

dn: cn=admins-group,ou=groups,dc=example,dc=com
objectClass: groupOfNames
cn: admins-group
member: uid=foo1,ou=users,dc=example,dc=com