Cómo obtener el segundo valor del atributo ldap de múltiples valores

Cómo obtener el segundo valor del atributo ldap de múltiples valores

Tenemos el nombre del atributo ldap "correo", que tiene múltiples valores como

correo:[correo electrónico protegido]

correo:[correo electrónico protegido]

Ahora estoy buscando la consulta que devolverá el resultado solo del segundo valor del correo:[correo electrónico protegido]

ldapsearch -h xxx.xxx.xxx.xxx -xw $PASS -LLL -D "cn=admin,dc=example,dc=com" -b 
"ou=workers,dc=example,dc=com" "(&(mail=*demosite.com))"

pero la consulta anterior devuelve ambas identificaciones de correo electrónico. Sólo quiero el segundo. Por favor proporcione sus aportes.

Respuesta1

No puede hacer esto en una búsqueda LDAP; necesitará algún procesamiento adicional. Por un lado, es casi seguro que no hay garantía del orden de los atributos y valores devueltos por una búsqueda.

Respuesta2

Algunos servidores LDAP, por ejemplo OpenLDAP, admiten lavaloresReturnFiltercontrolar (verRFC 3876).

Puede utilizar este control con OpenLDAPldapbúsquedacon el argumento CLI -E.

Ejemplo: -E "mv=((memberOf=cn=test-users-2,cn=test,ou=ae-dir))".

Tenga en cuenta que el filtro es el llamado filtro simple.sinoperando.

Ejemplo con mi demostración en línea deÆ-DIR:

Sin el control:

$ ldapsearch -H "ldaps://demo.ae-dir.com" -b "ou=ae-dir" -s sub -x -D "uid=aead,cn=ae,ou=ae-dir" -w CorrectHorseBatteryStaple -LL "(memberOf=cn=test-users-2,cn=test,ou=ae-dir)" memberOf
version: 1

dn: uid=dsrg,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir
memberOf: cn=test-users-3,cn=test,ou=ae-dir

dn: uid=rqei,cn=test,ou=ae-dir
memberOf: cn=test-users-1,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir

Con control de valores coincidentes:

$ ldapsearch -H "ldaps://demo.ae-dir.com" -b "ou=ae-dir" -s sub -x -D "uid=aead,cn=ae,ou=ae-dir" -w CorrectHorseBatteryStaple -LL -E "mv=((memberOf=cn=test-users-2,cn=test,ou=ae-dir))" "(memberOf=cn=test-users-2,cn=test,ou=ae-dir)" memberOf
version: 1

dn: uid=dsrg,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir

dn: uid=rqei,cn=test,ou=ae-dir
memberOf: cn=test-users-2,cn=test,ou=ae-dir

información relacionada