Estou configurando um aplicativo para autenticar o Open Directory usando o LDAP.
O Open Directory armazena grupos no formato RFC 2307 posixGroups, assim:
cn: mygroup
objectClass: top
objectClass: apple-group
objectClass: posixGroup
apple-group-memberguid: AA7B69F2-84E1-4ED3-AEC6-25AD976DB1C7
memberUid: noa
Mas o aplicativo espera que os grupos estejam no estilo do formato groupOfNames do Esquema Principal LDAP, assim:
cn: mygroup
objectClass: top
objectClass: groupOfNames
member: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Em outras palavras, o servidor de diretório está fornecendo um uid não qualificado, enquanto o aplicativo requer um DN.
Como posso configurar o slapd para:
Forneça dinamicamente uma entidade parecida com groupOfNames
(duplicada acima):
cn: mygroup
objectClass: top
objectClass: groupOfNames
member: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Ou, dinamicamente, emita atributos extras com os DNs dos membros do grupo, assim:
cn: mygroup
objectClass: top
objectClass: apple-group
objectClass: posixGroup
apple-group-memberguid: AA7B69F2-84E1-4ED3-AEC6-25AD976DB1C7
memberUid: noa
memberDn: uid=noa,cn=users,dc=myserver,dc=example,dc=private
Parece que uma sobreposição OpenLDAP pode fazer isso, mas estou procurando ajuda com os detalhes.
(A aplicação é BusinessObjects Crystal Reports Server. O suporte diz que eles não suportam o OpenLDAP, mas depois de pesquisar os servidores de diretórios que eles fazem suportam, acredito que isso deve funcionar com a ajuda de alguma tradução. Eu posso configurar os nomes de classes e atributos, mas, para reiterar, o grupo deve fornecer membros usando um DN, não um UID.