LDIF для группы необходимо использовать с PHP - PullRequest
0 голосов
/ 12 октября 2018

Использование CentOS 7.5, Apache 2.4.6.Бег в ВМ.Нет SSL.

Я следовал https://linuxhostsupport.com/blog/how-to-install-ldap-on-centos-7/ и настроил OpenLDAP.

Я создал пользователей и использовал ldap_bind ($ ds, $ userid, $ password), чтобы проверить, является ли действительный пользователь& пароль существует.

Теперь я пытаюсь выяснить, является ли пользователь членом определенной группы.Для этого я посмотрел на запрос ldap для членов группы (среди прочих)

Я думаю, что я делаю ошибку при создании группы.

Должен ли я создатьорганизационная роль, группа или posixGroup?Поскольку конечная цель состоит в том, чтобы проверить, какие пользователи имеют право использовать какие приложения и функции в нем (добавить / обновить / удалить / и т.На данный момент я использовал:

groups.ldif:

dn: cn=MyAppUsers,dc=mydept,dc=mycompany
objectClass: top
objectclass: posixGroup
cn: Authorized App1 Users
description: Users allowed to use App1

users.ldif:

dn: cn=MyAppUsers,dc=mydept,dc=mycompany
changetype: modify
add: memberUid
memberUid: cn=user1,ou=People,dc=mydept,dc=mycompany
memberUid: cn=user2,ou=People,dc=mydept,dc=mycompany

Я пробовал разные комбинации фильтров в ldap_search ($ ds, $ basedn, $ filter), но просто не могу найти правильный.Итак, я думаю, что это не запрос, а неправильный способ создания группы.

1 Ответ

0 голосов
/ 16 октября 2018

Оба LDIF выше фактически обновляют одну и ту же запись.Первый создает его, второй добавляет участников в группу.Однако на добавленных пользователей ссылаются по отличительным именам (DN), и memberUID просто ожидает идентификатор пользователя.Таким образом, они должны быть:

memberUid: user1
memberUid: user2

Затем вы можете проверить, является ли пользователь частью группы с помощью

ldap_search($ds, "cn=MyAppUsers,dc=mydept,dc=mycompany", "(memberUid=user1)")

Или вы можете найти все группы, с которыми пользователь является частью

ldap_search($ds, "dc=mydept,dc=mycompany", "(&(objectclass=posixGroup)(memberUid=user1))")
...