Acho que essa pode ser uma pergunta simples com uma explicação complicada.
Eu esperava que alguém pudesse me ajudar com a configuração da minha árvore LDAP. Eu quero ter grupos e usuários. Um usuário pode pertencer a um grupo ou a vários. Os grupos representam diferentes serviços / aplicativos aos quais os usuários devem ter acesso, por exemplo, acesso para efetuar login com VPN.
Estou usando o OpenLDAP e tenho a seguinte estrutura de árvore (com o domínio example.com).
-dc=example,dc=com
--ou=groups
---cn=VPN (members=user1)
---cn=redmine (members=user1,user2)
---cn=vCenter (members=user2,user3)
--ou=users
---cn=user1
---cn=user2
---cn=user3
Todos os usuários são objectclasses inetOrgPerson, posixAccount e top (usei Generic: User Account em phpLdapAdmin para criá-los). Eu tenho o memberOf overlay e executando assim consultas como (memberOf = cn = VPN, ou = grupos, dc = exemplo, dc = com) funciona.
Agora o problema . Alguns aplicativos que eu uso (por exemplo, redmine) tem funcionalidade onde eu posso definir o filtro para usar e, portanto, usar o overlay memberOf. Outros aplicativos / serviços não possuem isso, mas apenas uma base dn na qual ele procura, ou seja, o vCenter faz a seguinte consulta,
base="dc=xyzz,dc=se" filter="(&(objectClass=inetOrgPerson)(objectClass=inetOrgPerson)(uid=user1))
Não há como alterar nada além da base dn na qual ele pesquisa. Como posso usar o ldap para verificar se os usuários devem ter acesso ao vCenter, uma vez que o usuário é membro do grupo vCenter na árvore LDAP? .
Correndo para este problema me faz pensar que eu entendi mal como funciona o LDAP.