Estou tentando proteger a instalação existente do OpenLDAP, onde é necessário permitir que usuários anônimos recuperem informações sobre registros, se souberem da entrada específica do usuário no LDAP. Assuma a estrutura como abaixo:
dc=example,dc=com
ou=People
uid=user1
uid=user2
ou=Groups
cn=user1
memberUid:user1
cn=user2
memberUid:user2
cn=common
memberUid:user1
memberUid:user2
Agora, se o anonimo souber que a entrada uid = user1 existe no LDAP, ele poderá recuperar a lista de grupos em que esse usuário é membro. No entanto, eles não devem ser capazes de descobrir outros grupos.
Assim, ldapsearch -b "ou=Groups,dc=example,dc=com"
não deve retornar nada, enquanto ldapsearch -b "ou=Groups,dc=example,dc=com" "(&(objectClass=posixGroup)(memberUid=user1))"
deve retornar todos os grupos em que user1 é membro.
Eu tentei algumas ACLs diferentes sem sorte até agora. Ou a pesquisa está funcionando, mas também pode listar todos os grupos ou não pode listar todos os grupos, mas a pesquisa não está funcionando.
Existe uma maneira de alcançar o comportamento desejado usando ACLs?
PS: O banco de dados usa o esquema nis padrão, uma vez que o banco de dados já tem dados mudando para rfc2307bis não é uma opção (e há outras razões pelas quais tal mudança não é possível neste caso).