Я пытаюсь сделать следующее: У меня есть сервер openldap 2.4.45 (тестовый), который содержит пользователей, группы вроде этой:
o=Example(dc=example,dc=com)
ou=users
uid=alice
uid=bob
PublicKey="...."
ou=Groups
cn=group1
cn=group2
Мне нужно подключить приложение к этому серверу. У некоторых пользователей в DIT есть publicKey (например, bob), я хочу, чтобы анонимная привязка могла получить PublicKey любого пользователя, если он точно знает DN (например, dn: uid = bob, ou = users, dc = example, dc = com), но я бы не хотел, чтобы анонимная привязка могла читать другие атрибуты
. Я пытался сделать следующее
olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to attrs=PublicKey by * read stop
olcAccess: {3}to * by * none
Но когда я пробую этот запрос
ldapsearch -x -b "dc=example,dc=com" -LLL '(&(objectClass=posixAccount)(uid='"bob"'))' 'PublicKey'
, я получаю «Нет такого объекта (32)», но если я разрешаю доступ к * путем * чтения, я получаю PublicKey для пользователя bob ..
Как я могу этого добиться?
Вы должны
search
право на корневую запись поиска dc = example, dc = com
read
право на псевдоатрибут запись записи, содержащей атрибут PublicKey