Pregunta

Asi que El proyecto directo golpea de nuevo. No soy un experto en LDAP, pero estoy tratando de configurar un entorno de prueba, ya que el estándar requiere cualquier paquete para admitir los certificados de LDAP y DNS CERT, independientemente de qué método sea implementado por el paquete.

De acuerdo a la documentación, la secuencia prescrita de eventos (recortado para relevancia) de la sección "3.3.3 consulta LDAP":

* Discover the Base DNs
     Branches in LDAP must be defined by a “Base DN”. The list of Base DNs that are
     provided by a LDAP directory are found by doing a LDAP Query with a NULL (i.e.
     “”) Base DN, and ObjectClass=”DN”.
* Query across the Base DN for entries where "Mail" contains the endpoint address

Estoy tratando de implementar este proceso en PHP, utilizando las funciones LDAP_*, pero su camino no parece funcionar. Obviamente, NULL no es lo mismo que una cadena vacía (este último hace que cualquier llamada a LDAP_Search devuelva un error de "no objetos"), y "DN" no es un valor válido para un atributo de Clase de Object.

Entonces, TL; DR, ¿hay otra forma en que un usuario remoto anónimo recupere la (lista de?) DNS base que me falta?

ACTUALIZACIÓN: Vuelva a redactar el título para reflejar la causa raíz de mi problema: leer el rootdse de php cuando la API LDAP_* no le permite especificar el alcance 'base'.

¿Fue útil?

Solución

Entonces otra lectura de los documentos respondió mi pregunta por mí.

Aparentemente, la única diferencia entre ldap_search (), ldap_list () y ldap_read () son los ámbitos (ldap_scope_subtree (sub), ldap_scope_onelevel (uno) y ldap_scope_base (base), respectivamente). Entonces, usar ldap_read () en lugar de los demás permitirá que uno obtenga el rootdse.

Otros consejos

En el Root DSE. Ver "NamingContexts".

Actualizar:

En Java:

LDAPConnection conn = new LDAPConnection(hostname,port);
SearchRequest req = new SearchRequest("",SearchScope.BASE,"(&)","+");
SearchResult result = conn.search(req);

// If the search succeeds, the result will comprise one entry,
// and that entry is the Root DSE:

dn: 
subschemaSubentry: cn=schema
namingContexts: C=us
vendorName: UnboundID Corp.
vendorVersion: UnboundID Directory Server 4.1.0.6
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top