Nosso diretório LDAP corporativo está alojado em uma configuração de diretório aberto do Snow Leopard Server. Estou tentando usar a ldapsearch
ferramenta para exportar um arquivo .ldif para importar para outro servidor LDAP externo para autenticação externa; basicamente tentando usar as mesmas credenciais interna e externamente.
Estou ldapsearch
trabalhando e fornecendo o conteúdo e os atributos de tudo na UO "Usuários" e até filtrando apenas os atributos de que preciso:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
Isso me fornece uma lista de usuários e propriedades que posso importar para o meu servidor OpenLDAP remoto.
dn: uid=username1,cn=users,dc=server,dc=domain,dc=net
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
uidNumber: 1000
uid: username1
userPassword:: (hashedpassword)
cn: username1
No entanto, quando tento a mesma consulta em um "grupo" de OD em vez de um "contêiner", os resultados são algo como isto:
dn: cn=groupname,cn=groups,dc=server,dc=domain,dc=net
objectClass: posixGroup
objectClass: apple-group
objectClass: extensibleObject
objectClass: top
gidNumber: 1032
cn: groupname
memberUid: username1
memberUid: username2
memberUid: username3
O que eu realmente quero é uma lista de usuários do exemplo principal filtrada com base nas associações de grupo, mas parece que a associação é definida pelo lado do Grupo, e não pelo lado da conta do usuário. Deve haver uma maneira de filtrar isso e exportar apenas o que eu preciso, certo?
fonte
memberOf
é um atributo operacional e precisa ser solicitado explicitamente. Um meroldapsearch
como sugerido aqui não retornarámemberOf
, mesmo que exista. Também deve ser mencionado que amemberOf
sobreposição geralmente não é ativada por padrão, embora eu não saiba como isso é tratado no OS X e no Open Directory.ldapsearch
funciona conforme anunciado.Você pretende representar grupos tendo objetos de usuário localizados em contêineres diferentes? Gostar:
Nesse caso, espero que você precise escrever um script para massagear o LDIF. Experimente os excelentes módulos Python-LDAP .
Gostaria de perguntar por que você quer fazer isso. Isso torna confuso ter usuários que pertencem a vários grupos e é contrário às convenções do Open Directory. Você não pode simplesmente copiar todos os objetos de usuário e grupo para o servidor OpenLDAP e consultá-lo com base na associação ao grupo, e não em qual container o objeto de usuário existe?
fonte
Isso funciona muito bem.
fonte