Nuestro directorio LDAP corporativo está alojado en una configuración de directorio abierto del servidor Snow Leopard. Estoy tratando de usar la ldapsearch
herramienta para exportar un archivo .ldif para importarlo a otro servidor LDAP externo para autenticarlo externamente; básicamente tratando de poder usar las mismas credenciales interna y externamente.
Me puse a ldapsearch
trabajar y me proporcioné el contenido y los atributos de todo en la unidad organizativa "Usuarios", e incluso filté solo los atributos que necesito:
ldapsearch -xLLL -H ldap://server.domain.net /
-b "cn=users,dc=server,dc=domain,dc=net" objectClass /
uid uidNumber cn userPassword > directorycontents.ldif
Eso me da una lista de usuarios y propiedades que puedo importar a mi servidor remoto OpenLDAP.
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
Sin embargo, cuando intento la misma consulta en un "grupo" OD en lugar de un "contenedor", los resultados son algo como esto:
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
Lo que realmente quiero es una lista de usuarios del ejemplo superior filtrada en función de la membresía de su grupo, pero parece que la membresía se establece desde el lado del Grupo, en lugar del lado de la cuenta de usuario. Debe haber una manera de filtrar esto y solo exportar lo que necesito, ¿verdad?
fuente
memberOf
es un atributo operativo y debe solicitarse explícitamente. Un simpleldapsearch
como sugerido aquí no volverámemberOf
, incluso si existe. También debe mencionarse que lamemberOf
superposición generalmente no está habilitada de manera predeterminada, aunque no sé cómo se maneja esto en OS X y Open Directory.ldapsearch
trabajos actualizados según lo anunciado.¿Pretende representar grupos al tener objetos de usuario ubicados en diferentes contenedores? Me gusta:
Si es así, espero que tengas que escribir un guión para masajear el LDIF. Pruebe los excelentes módulos Python-LDAP .
Sin embargo, me preguntaría por qué quieres hacer eso. Es complicado tener usuarios que pertenecen a múltiples grupos, y es contrario a las convenciones de Open Directory. ¿No puede simplemente copiar todos los objetos de usuario y grupo a su servidor OpenLDAP y consultarlo en función de la pertenencia al grupo en lugar de en qué contenedor existe el objeto de usuario?
fuente
Esto funciona muy bien
fuente