2013-06-23 5 views
0

Мы используем openldap-сервер с sssd для аутентификации пользователей на centos, и все работает нормально. однако, когда мы пытаемся настроить фильтр доступа, чтобы ограничить логин для пользователей определенной группы (linuxgroup), поскольку на сервере openldap есть много других пользователей.Фильтр аутентификации OpenLDAP

проблема в openldap отсутствует атрибут memberof, кто-нибудь знает, как заставить его работать, чтобы фильтровать группы в openldap?

ответ

0

В OpenLDAP есть атрибут memberOf, но вы должны включить и настроить overlay 'memberOf', и вам нужно сделать это, прежде чем добавлять какие-либо элементы в группы, или же зайти в e-e-каталог и удалить и добавить - откликните каждого члена от каждой группы, так что в первый раз. После этого он будет поддерживать себя.

В качестве альтернативы вы можете просто написать фильтр, который ищет группу для пользовательского DN, а не наоборот.

+0

спасибо, не имея возможности изменить настройки сервера. как написать фильтр, чтобы проверить, находится ли пользователь в определенной группе? – Daniel

+0

Это зависит от того, какой объект вы используете для группы, но для фильтра это нечто вроде '(roleOccupant = {0})' для 'organizationRole' или' (uniqueMember = {0}) 'для' groupOfUniqueNames', где '{0}' предоставляется как DN пользователя. Это даст вам все роли/группы, к которым принадлежит DN. Если вы хотите искать только одну группу, либо запустите поиск в этом DN, либо укажите DN в фильтре: '(& (dn = {0}) (roleOccupant = {1}))' и т. Д. – EJP

0

У вас есть возможность взглянуть на простого поставщика доступа? Это проще (каламбур!) Метод ограничения доступа к определенной группе. Просто поместите их в файл sssd.conf:

access_provider = simple 
simple_allow_groups = linuxgroup 

Перезапустите SSSD и вы должны быть все готово. Нет необходимости изменять что-либо на стороне сервера. См. «man sssd-simple» для получения более подробной информации.