Compartir a través de


función ldap_bind_s (winldap.h)

La función ldap_bind_s autentica de forma sincrónica un cliente en el servidor LDAP.

Sintaxis

WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
  [in] LDAP        *ld,
  [in] const PSTR  dn,
  [in] const PCHAR cred,
  [in] ULONG       method
);

Parámetros

[in] ld

Identificador de sesión.

[in] dn

Puntero a una cadena terminada en null que contiene el nombre distintivo de la entrada utilizada para enlazar. Puede ser un DN, un UPN, un nombre de usuario de estilo WinNT u otro nombre que el servidor de directorios aceptará como identificador.

[in] cred

Puntero a una cadena terminada en null que contiene las credenciales con las que se va a autenticar. Las credenciales arbitrarias se pueden pasar mediante este parámetro. El formato y el contenido de las credenciales dependen de la configuración del parámetro de método . Para obtener más información, vea la sección Comentarios.

[in] method

Indica el método de autenticación que se va a usar. Para obtener más información y una lista de métodos de autenticación asincrónicos válidos, vea la sección Comentarios. Para obtener más información y una descripción del método de autenticación asincrónico válido, consulte ldap_bind.

Valor devuelto

Si la función se ejecuta correctamente, se LDAP_SUCCESS el valor devuelto.

Si la función presenta un error, devuelve un código de error. Para obtener más información, vea Valores devueltos.

Comentarios

La introducción del control de cuentas de usuario en Windows Server 2008 y Windows Vista tiene una consecuencia muy importante con respecto a la realización de modificaciones o adiciones en LDAP. Cuando un usuario haya iniciado sesión en un controlador de dominio con un token de administrador de UAC restringido y use credenciales NULL , se producirá un error en cualquier modificación o adición al directorio o en cualquier operación de cambio de esquema. Esto incluye búsquedas de DirSync, recuperación de SACL desde el atributo ntSecurityDescriptor de un objeto al usar SecurityDescriptorFlags y muchas otras operaciones.

Se producirá un error con derechos de acceso insuficientes.

Si el control de cuentas de usuario está en vigor cuando un administrador inicia sesión en un controlador de dominio, el administrador obtendrá un token restringido en la sesión de inicio de sesión. Si luego usa ldap_bind_s con credenciales NULL , se producirá un error en las operaciones que realicen modificaciones o adiciones.

La implementación de ldap_bind_s admite los métodos de autenticación enumerados en la tabla siguiente. Llamar a ldap_bind_s con la opción LDAP_AUTH_SIMPLE equivale a llamar a ldap_simple_bind_s.

Método Descripción Credential:
LDAP_AUTH_SIMPLE Autenticación con una contraseña de texto no cifrado. Cadena que contiene la contraseña de usuario.
LDAP_AUTH_DIGEST Paquete de autenticación implícita. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en NULL y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_DPA Autenticación de contraseña distribuida. Usado por Microsoft Membership System. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en NULL y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_MSN Servicio de autenticación de red de Microsoft. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en NULL y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_NEGOTIATE Servicios de seguridad genéricos (GSS) (Snego). No proporciona autenticación, sino que elige el método de autenticación más adecuado de una lista de servicios disponibles y pasa todos los datos de autenticación a ese servicio. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en NULL y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY o SEC_WINNT_AUTH_IDENTITY_EX con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_NTLM NT LAN Manager Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en NULL y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY o SEC_WINNT_AUTH_IDENTITY_EX con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_SICILY Trata la negociación de paquetes en servidores MSN. Para iniciar sesión como usuario actual, establezca los parámetros dn y cred en NULL. Para iniciar sesión como otro usuario, establezca el parámetro dn en NULL y el parámetro cred en un puntero a una estructura de SEC_WINNT_AUTH_IDENTITY con el nombre de usuario, el nombre de dominio y la contraseña adecuados.
LDAP_AUTH_SSPI Obsoleto. La compatibilidad con versiones anteriores está incluida. Con esta constante, se selecciona el servicio de negociación GSS (Snego). Igual que LDAP_AUTH_NEGOTIATE.
 

Para la autenticación de enlace asincrónica, use LDAP_AUTH_SIMPLE con ldap_bind.

La operación de enlace identifica un cliente al servidor de directorios proporcionando un nombre distintivo y algún tipo de credencial de autenticación, como una contraseña. Las credenciales exactas dependen del método de autenticación usado. Si pasa NULL para las credenciales con ldap_bind_s() (no simple), se usarán las credenciales de usuario o servicio actuales. Si se especifica un método de enlace simple (como en ldap_simple_bind_s), es equivalente a una contraseña de texto no cifrado NULL . Para obtener más información, consulte ldap_bind.

Tenga en cuenta que los servidores LDAP 2 requieren que una aplicación se enlace antes de intentar otras operaciones que requieran autenticación.

Multithreading: las llamadas de enlace no son seguras porque se aplican a la conexión en su conjunto. Tenga cuidado si los subprocesos comparten conexiones e intenten subprocesar las operaciones de enlace con otras operaciones.

Nota El cliente LDAP de Microsoft usa un valor de tiempo de espera predeterminado de 120 segundos (2 minutos) para cada ida y vuelta de respuesta de enlace. Este valor de tiempo de espera se puede cambiar mediante la opción LDAP_OPT_TIMELIMIT sesión. Otras operaciones no tienen un tiempo de espera a menos que se especifique mediante ldap_set_option.
 
Cuando se completan todas las operaciones del identificador de sesión, la sesión debe finalizar pasando el identificador de sesión LDAP a la función de ldap_unbind . Además, si se produce un error en la llamada ldap_bind_s , el identificador de sesión debe liberarse con una llamada a ldap_unbind cuando ya no sea necesario para la recuperación de errores.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado winldap.h
Library Wldap32.lib
Archivo DLL Wldap32.dll

Consulte también

Establecimiento de una sesión LDAP

Funciones

Valores devueltos

SEC_WINNT_AUTH_IDENTITY

ldap_bind

ldap_simple_bind_s

ldap_unbind