Dell Unity: En un ambiente multiprotocolo que utiliza LDAP, el acceso compartido desde clientes de Windows falla debido a que no se puede corregir el usuario de mapeo
Summary: En este artículo, se explican los pasos para separar y solucionar el problema de una asignación incorrecta cuando se usa LDAP, donde el método de cifrado utilizado afecta al mapeo de LDAP. ...
Symptoms
Ldap de Unity está configurado correctamente, pero los usuarios no están mapeados.
Si utiliza el comando de búsqueda de LDAP para buscar usuarios en el servidor LDAP, estos aparecen correctamente.
Comando:
ldapsearch -h <ldapserver ip> -D "<BindDN>" -w <Password> -b "<BaseDN>" -s <scope(base,one,sub)> "cn=<username>"
Ejemplo de un comando correcto:
--------------------- root@solaris11:~# ldapsearch -h 5.6.7.xxx -D "cn=admin,dc=peeps,dc=lab" -w Password123# -b "ou=people,dc=peeps,dc=lab" -s sub "cn=user1" version: 1 dn: uid=user1,ou=People,dc=peeps,dc=lab uid: user1 uidNumber: 1 gidNumber: 1 cn: user1 sn: user1 objectClass: top objectClass: person objectClass: posixAccount objectClass: shadowAccount loginShell: /bin/bash homeDirectory: /home/user1 You have new mail in /var/mail/root ---------------------
Sin embargo, si se utiliza el comando SVC NAS para buscar usuarios, se produce un error con el siguiente mensaje:
Comando:
svc_nas <server name> -ldap -lookup -user <user name>
Ejemplo de un comando fallido:
--------------------- service@********* spb:~/user# svc_nas nas_multi -ldap -lookup -user user2 nas_multi : commands processed: 1 command(s) succeeded output is complete 1659693343: LDAP: 6: LdapService::connect: Connection to Ldap server ***.***.***.*** SUCCEEDED IP[0/1]=***.***.***.*** port=389 1659693343: LDAP: 3: User user2t: User name + password + uid + gid are too large to fit into buffer. 1659693343: LDAP: 6: Unable to get information for user user2 --------------------- ---------------------
Además, el nombre de usuario fallido puede contener caracteres innecesarios después del nombre de usuario.
Ejemplo de un comando correcto:
--------------------- service@********* spb:~/user# svc_nas nas_multi -ldap -lookup -user user1 nas_multi : commands processed: 1 command(s) succeeded output is complete 1659694219: LDAP: 6: user: user1, uid: 12333, gid: 12333, homeDir: /home/user1 Command succeeded --------------------- ---------------------
Cause
Unity admite "PBKDF2_SHA256", pero existe una restricción, pero la suma de [username + password + uid + gid] debe estar dentro de 452 bytes.
Con PBKDF2_SHA256 cifrado, si se utilizan muchos bytes para la contraseña, es posible que se supere el límite de 452 bytes cuando uidNumber, gidNumber y uid se agregan al total.
Superar el límite de 452 bytes hace que el acceso compartido de los clientes de Windows falle debido a que no hay mapeo en un ambiente multiprotocolo de LDAP.
Por ejemplo, si la contraseña del cliente utiliza 447 bytes, la cantidad restante de bytes que se usará para uidNumber, gidNumber y uid es solo 5 bytes.
Ejemplo que se ajusta al límite de 452 bytes:
userPassword = 404 Byte
uidNumber = 16 Byte
gidNumber = 16 Byte
uid = 16 Byte
Total = 452 Byte
Resolution
Considere el uso de un esquema de cifrado distinto de PBKDF2_SHA256; por ejemplo, utilice SSHA-512.
Esquemas de cifrado ldap compatibles con Unity:
A partir de agosto de 2022, los siguientes cifrados están disponibles en OE 5.2:
SHA, SHA-256, SHA-384, SHA-512, SSHA, SSHA-256, SSHA-384, SSHA-512, MD5, SMD5, PKCS5S2, CRYPT, CRYPT-MD5, CRYPT-SHA-256, CRYPT-SHA-512, PBKDF2_SHA256****
Cuando se utiliza PBKDF2_SHA256, la suma de [username + password + uid + gid] se limita a 452 bytes.