INFO: Cómo utilizar ADSI para consultar un servidor LDAP de terceros

Seleccione idioma Seleccione idioma
Id. de artículo: 251195 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Se utiliza el proveedor de Protocolo ligero de acceso a directorios (LDAP) para Active Directory Service Interfaces (ADSI) para recuperar información de servidores LDAP de terceros. En este artículo describe varios problemas que pueden surgir y cómo superarlos.

Más información

Cuando utilice ADSI para recuperar información de un servidor LDAP de terceros, deberá:
  • Determinar la disponibilidad de información de esquema.
  • Obtener la autenticación correcta.
  • Impedir que una búsqueda en un contenedor inexistente.

Determinar la disponibilidad de información de esquema

De acuerdo con la solicitud de comentarios (RFC) 2251, servidores de la versión 3 de LDAP debe exponer un atributo subSchemaSubEntry fuera la raíz de la empresa de servicio de directorio (rootDSE). ADSI utiliza este atributo para buscar información subschema, que a continuación, intenta validar y almacenar en caché.

Para obtener información adicional acerca de cómo ADSI almacena en caché el subschema, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
251189INFORMACIÓN: Buscar un esquema de servidor LDAP en caché por ADSI
ADSI utiliza la información de subschema para exponer las interfaces adecuadas para una clase dada y para recuperar los atributos de la sintaxis correcta de la caché de propiedades.

Si no se puede buscar o validar correctamente la información de subschema ADSI, utiliza el esquema de versión 2 de LDAP predeterminado. Ya que servidores LDAP versión 2 no exponer un subschema, ADSI mantiene información de esquema internamente acerca de muchas clases y atributos estándar. Si ADSI utiliza el esquema de versión 2 del predeterminado, no tiene acceso a información de esquema no estándar, incluidas las clases personalizadas o atributos que se han creado en el servidor.

Si no está disponible ninguna información de esquema sobre la sintaxis de un atributo, ADSI es no se puede recuperar el atributo de la caché de propiedades. En este caso, puede utilizar el método IADsPropertyList.GetPropertyItem para especificar una sintaxis para el atributo de la propiedad solicitada. Cuando se especifica un valor de ADsTYPE, evite la necesidad de ese atributo de información de sintaxis.

Si utiliza ActiveX Data Objects (ADO) y no tiene información de esquema disponible, necesita recuperar la cadena de ADsPath del objeto, enlazar con el objeto en el directorio y, a continuación, utilice el método IADsPropertyList.GetPropertyItem . No hay ninguna solución para utilizar ADO directamente sin información de esquema.

Obtener autenticación correcta

Hay varias formas de autenticar a un cliente LDAP a un servidor LDAP con ADSI. Entre estos métodos, sólo un enlace sencillo es compatible con forma nativa LDAP para transmitir credenciales al servidor. En otros casos, el cliente y el servidor deben acordar el método, normalmente con el uso de otro protocolo propietario o de autoridad de seguridad.

Por ejemplo, el método GetObject (o la función de ADsGetObject en C) utiliza el indicador ADS_SECURE_AUTHENTICATION, lo que puede provocar que un enlace LDAP que utiliza Microsoft Windows NT desafío/respuesta (NTLM). Este enlace es probable que falle porque muchos servidores de terceros no admiten NTLM. Si la autenticación falla, el enlace seguro se reducirá a un enlace anónimo; por ejemplo, un sencillo enlazar sin ninguna credencial de usuario. En este momento, la aplicación puede tener acceso sólo a un subconjunto de información (o incluso a ninguna información) según la configuración de servidor.

Para evitar esta situación, realizar un enlace sencillo mediante el método OpenDSObject (o la función ADsOpenObject en C) y especifique cero (no hay indicadores) o ADS_FAST_BIND (descrita más abajo) para el parámetro lnReserved . Con el enlace simple, pasar un nombre de usuario con atributos válido (cn = nombre de usuario, cn =...) y una contraseña para el servidor LDAP para la comprobación. Para conseguir un enlace sencillo con ADO, establezca la propiedad Cifrar la contraseña del objeto ADODB.Connection en FALSE y asigne el nombre de usuario con atributos y la contraseña a las propiedades User ID y Password respectivamente.

Impedir que una búsqueda en un contenedor no existe

De forma predeterminada, ADSI realiza una búsqueda de objectClass del objeto base especificado en una consulta o el enlace. Esta búsqueda falla si el nombre completo que no existe en el directorio.

Por ejemplo, supongamos que una búsqueda está establecida en comienzan en "o = corp, c = US" para todos los usuarios en el directorio. La estructura del directorio es, que no hay ningún contenedor real de "Trabajo", pero en lugar de dos objetos en la raíz del directorio con los nombres completos de "ou = Norteamérica, o = corp, c = US"y"ou = Europe, o = corp, c = US". ADSI emite una búsqueda objectClass "o = corp, c = US" que falla, detener la búsqueda para los usuarios antes de iniciar.

La solución más sencilla a este problema consiste en especificar un objeto de base que existe realmente en el directorio. Si no es posible, debido a la implementación de directorio, para realizar la búsqueda deseada con un objeto de base válido, debe impedir ADSI realizando una búsqueda de objectClass inicial.

Para evitar que una búsqueda de objectClass del objeto, pase el indicador ADS_FAST_BIND en el parámetro lnReserved del método OpenDSObject (o la función ADsOpenObject en C). Debido a que este indicador determina las acciones de ADSI cuando el enlace se ha producido, no afecta a autenticación apropiada. Tenga en cuenta que este indicador no está disponible antes a versión 2.5 de ADSI.

El proveedor de ADO para Microsoft Windows 2000 expone las propiedades de ADSI Flag en el objeto ADODB.Connection . Puede establecer el indicador ADS_FAST_BIND para esta propiedad para impedir que las consultas ADO realice una búsqueda de objectClass. La propiedad ADSI Flag no está presente en ADSI versión 2.5 para Microsoft Windows NT versión 4.0 o Microsoft Windows 9 x. Para una posible solución, vea el artículo siguiente:

223049Cómo: Consultar Exchange 5.x anónimo a través de ADSI

Referencias

Para obtener información adicional acerca de ADSI, consulte los artículos siguientes en Microsoft Knowledge Base:
233023Cómo: Buscar todos los proveedores ADSI en un sistema
187529Cómo: Utilizar ADO para objetos de Access mediante un proveedor LDAP de ADSI
251189INFORMACIÓN: Buscar un esquema de servidor LDAP en caché por ADSI
223049Cómo: Consultar Exchange 5.x anónimo a través de ADSI

Para obtener información general en ADSI, vea el siguiente sitio Web de:
http://msdn2.microsoft.com/library/aa772170.aspx

Propiedades

Id. de artículo: 251195 - Última revisión: viernes, 28 de septiembre de 2007 - Versión: 1.3
La información de este artículo se refiere a:
  • Microsoft Active Directory Service Interfaces 2.5
Palabras clave: 
kbmt kbinfo kbmsg KB251195 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 251195
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com