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.
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 |