URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92352
[ Назад ]

Исходное сообщение
"ldap настройка прав доступа"

Отправлено frank82 , 29-Сен-11 11:14 
Ребята такая трабла (трабла потому что не знаю как правильно сделать).

Есть дерево в ldap дереве, и такие ветки по доменам как:
dc=domen1,dc=ldap,dc=localdomain
dc=domen2,dc=ldap,dc=localdomain
dc=domen3,dc=ldap,dc=localdomain

И заведено 3 пользователя для чтения паролей юзеров из каждого домена отдельно:
cn=kontroller1,ou=kontrol-users,dc=ldap,dc=localdomain из домена dc=domen1,dc=ldap,dc=localdomain
cn=kontroller2,ou=kontrol-users,dc=ldap,dc=localdomain из домена dc=domen2,dc=ldap,dc=localdomain
cn=kontroller3,ou=kontrol-users,dc=ldap,dc=localdomain из домена dc=domen3,dc=ldap,dc=localdomain

Так вот когда прописываю в кофиге права в таком виде:
access to dn="dc=domen1,dc=ldap,dc=localdomain" attr=userPassword
  by dn="cn=kontroller1,ou=kontrol-users,dc=ldap,dc=localdomain" read
access to dn="dc=domen2,dc=ldap,dc=localdomain" attr=userPassword
  by dn="cn=kontroller2,ou=kontrol-users,dc=ldap,dc=localdomain" read
access to dn="dc=domen3,dc=ldap,dc=localdomain" attr=userPassword
  by dn="cn=kontroller3,ou=kontrol-users,dc=ldap,dc=localdomain" read

То эти юзери читают про юзеров все кроме паролей, как мне правильно прописать для них права доступа.

Вот полная таблица доступа:

access to attrs=userPassword,shadowLastChange
    by self write
    by anonymous auth
    by dn="cn=admin,dc=ldap,dc=localdomain" write
    by * none
access to dn.base=""
    by * read
access to *
    by self write
    by dn="cn=admin,dc=ldap,dc=localdomain" write
    by * read
access to dn="dc=domen1,dc=ldap,dc=localdomain" attr=userPassword
  by dn="cn=kontroller1,ou=kontrol-users,dc=ldap,dc=localdomain" read
access to dn="dc=domen2,dc=ldap,dc=localdomain" attr=userPassword
  by dn="cn=kontroller2,ou=kontrol-users,dc=ldap,dc=localdomain" read
access to dn="dc=domen3,dc=ldap,dc=localdomain" attr=userPassword
  by dn="cn=kontroller3,ou=kontrol-users,dc=ldap,dc=localdomain" read

Зарание благодарен.


Содержание

Сообщения в этом обсуждении
"ldap настройка прав доступа"
Отправлено daloman , 29-Сен-11 13:10 
> Вот полная таблица доступа:

Думаю, что здесь это правило не разрешает чтение атрибутов, т.к. применяется первым. Пользователи kontroller1, kontroller2, kontroller3 подпадают под действие последнего фильтра и следующее правило уже не используется.


access to attrs=userPassword,shadowLastChange
    by self write
    by anonymous auth
    by dn="cn=admin,dc=ldap,dc=localdomain" write
    by * none

Ссылка на руководство администратора OpenLDAP 2.4: http://pro-ldap.ru/tr/admin24/access-control.html


8.4.10. Если что-то работает не так, как ожидалось

Рассмотрим следующий пример:

    access to *
      by anonymous auth

    access to *
      by self write

    access to *
      by users read

Вам может показаться, что данные правила позволят любому пользователю пройти аутентификацию, прочитать любые записи из каталога и изменить свои данные, если аутентификация пройдена. Однако в этом примере будет работать только аутентификация, а ldapsearch никогда не вернёт данных. Проблема в том, что SLAPD применяет настройки доступа последовательно, строка за строкой, и останавливается на первой совпавшей части правил доступа (в данном случае: to *).

Чтобы получить то, что мы хотели, файл должен выглядеть следующим образом:

    access to *
      by anonymous auth
      by self write
      by users read

Основное правило: "сначала определяются более конкретные правила, а в конце - более общие".

Смотрите также slapd.access(5), а для поиска ошибок - loglevel 128 и slapacl(8).



"ldap настройка прав доступа"
Отправлено frank82 , 30-Сен-11 12:50 

> Ссылка на руководство администратора OpenLDAP 2.4: http://pro-ldap.ru/tr/admin24/access-control.html

Cпасибо большое, http://pro-ldap.ru/tr/admin24/access-control.html помогло, права разграничиваются должным образом как я и хотел.