ventajas utiliza usar sirve que para mismo funcion dominio directorio configura como caracteristica bosque basica activo active active-directory ldap jndi spring-ldap active-directory-group

active-directory - utiliza - que es active directory para que sirve y como se configura



filtro de directorio activo con objectGUID codificado como se especifica en rfc2254 no funciona (3)

Estoy usando java ldap para acceder al directorio activo, más específicamente spring ldap. una búsqueda de grupo por objectGUID no produce resultados cuando el filtro está codificado como se especifica en rfc2254.

este es el guid en su representación hexadecimal:

/49/00/f2/58/1e/93/69/4b/ba/5f/8b/86/54/e9/d8/e9

spring ldap codifica el filtro así:

(&(objectClass=group)(objectGUID=/5c49/5c00/5cf2/5c58/5c1e/5c93/5c69/5c4b/5cba/5c5f/5c8b/5c86/5c54/5ce9/5cd8/5ce9))

como se menciona en rfc2254 y en microsoft technet :

el carácter debe codificarse como el carácter ''/' de la barra diagonal inversa (ASCII 0x5c) seguido de los dos dígitos hexadecimales que representan el valor ASCII del carácter codificado. El caso de los dos dígitos hexadecimales no es significativo. Blockquote

entonces una barra inversa debería ser ''/ 5c''

pero no obtengo resultados con el filtro anterior de AD. también si pongo ese filtro en los filtros personalizados de la consola de administración de AD, no funciona. cuando elimino el 5c del filtro funciona tanto desde Java como desde la consola AD.

¿Me estoy perdiendo de algo?

por supuesto, puedo codificar el filtro sin el 5c, pero no estoy seguro de que sea el correcto y prefiero dejar que el resorte codifique los filtros porque sabe muchas cosas que debo hacer manualmente.



Pasar una matriz de bytes y la búsqueda debería funcionar.


encontré solución con php para obtener usuario con objectGUID etap one cuando creo usuario puse su objectGuid en bdd, el objectGuid que ve en el anuncio ex $ guid_str = "31207E1C-D81C-4401-8356-33FEF9C8A" después de crear mi propia función para transformar este objeto id int hexadécimal

function guidToHex($guid_str){ $str_g= explode(''-'',$guid_str); $str_g[0] = strrev($str_g[0]); $str_g[1] = strrev($str_g[1]); $str_g[2] = strrev($str_g[2]); $retour = ''//'; $strrev = 0; foreach($str_g as $str){ for($i=0;$i < strlen($str)+2; $i++){ if($strrev < 3) $retour .= strrev(substr($str,0,2)).''//' ; else $retour .= substr($str,0,2).''//' ; $str = substr($str,2); } if($strrev < 3) $retour .= strrev($str); else $retour .= $str ; $strrev++; } return $retour;

}

esta función me devuelve una cadena como / 1C / 7E / 20 / 31 / 1C / D8 / 01 / 44 / 83 / EF / 9C / 8A "/ F9 / ED / C2 / 7F después de esto puse esta cadena en mi filtro y obtengo el usuario

#

para obtener el formato de objectGuid utilizo esta función que lo escuché en internet

function convertBinToMSSQLGuid($binguid) { $unpacked = unpack(''Va/v2b/n2c/Nd'', $binguid); return sprintf(''%08X-%04X-%04X-%04X-%04X%08X'', $unpacked[''a''], $unpacked[''b1''], $unpacked[''b2''], $unpacked[''c1''], $unpacked[''c2''], $unpacked[''d'']); }

me refiero a este formato = 31207E1C-D81C-4401-8356-33FEF9C8A