fonction ldap_bind_s (winldap.h)
La fonction ldap_bind_s authentifie de manière synchrone un client auprès du serveur LDAP.
Syntaxe
WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
[in] LDAP *ld,
[in] const PSTR dn,
[in] const PCHAR cred,
[in] ULONG method
);
Paramètres
[in] ld
Handle de session.
[in] dn
Pointeur vers une chaîne terminée par null qui contient le nom unique de l’entrée utilisée pour la liaison. Il peut s’agir d’un nom DN, d’un UPN, d’un nom d’utilisateur de style WinNT ou d’un autre nom que le serveur d’annuaire acceptera comme identificateur.
[in] cred
Pointeur vers une chaîne terminée par null qui contient les informations d’identification avec lesquelles s’authentifier. Les informations d’identification arbitraires peuvent être transmises à l’aide de ce paramètre. Le format et le contenu des informations d’identification dépendent du paramètre de méthode . Pour plus d'informations, consultez la section Notes.
[in] method
Indique la méthode d’authentification à utiliser. Pour plus d’informations et une liste des méthodes d’authentification asynchrones valides, consultez la section Remarques. Pour plus d’informations et une description de la méthode d’authentification asynchrone valide, consultez ldap_bind.
Valeur retournée
Si la fonction réussit, la valeur de retour est LDAP_SUCCESS.
Si la fonction échoue, elle retourne un code d'erreur. Pour plus d’informations, consultez Valeurs de retour.
Remarques
L’introduction du contrôle de compte d’utilisateur dans Windows Server 2008 et Windows Vista a une conséquence très importante en ce qui concerne l’apport de modifications ou d’ajouts dans LDAP. Lorsqu’un utilisateur est connecté à un contrôleur de domaine avec un jeton administrateur UAC restreint et à l’aide d’informations d’identification NULL , toute modification ou ajout au répertoire, ou toute opération de modification de schéma, échoue. Cela inclut les recherches DirSync, la récupération de la liste SACL à partir de l’attribut ntSecurityDescriptor d’un objet lors de l’utilisation de SecurityDescriptorFlags et de nombreuses autres opérations.
Toutes ces opérations échouent avec des droits d’accès insuffisants.
Si le contrôle de compte d’utilisateur est en vigueur lorsqu’un administrateur se connecte à un contrôleur de domaine, l’administrateur obtient un jeton restreint dans la session d’ouverture de session. S’il utilise ensuite ldap_bind_s avec des informations d’identification NULL , les opérations qui apportent des modifications ou des ajouts échouent.
L’implémentation de ldap_bind_s prend en charge les méthodes d’authentification répertoriées dans le tableau suivant. Appeler ldap_bind_s avec l’option LDAP_AUTH_SIMPLE équivaut à appeler ldap_simple_bind_s.
Méthode | Description | Informations d'identification |
---|---|---|
LDAP_AUTH_SIMPLE | Authentification avec un mot de passe en texte clair. | Chaîne qui contient le mot de passe utilisateur. |
LDAP_AUTH_DIGEST | Package d’authentification Digest. | Pour vous connecter en tant qu’utilisateur actuel, définissez les paramètres dn et cred sur NULL. Pour vous connecter en tant qu’autre utilisateur, définissez le paramètre dn sur NULL et le paramètre cred sur un pointeur vers une structure de SEC_WINNT_AUTH_IDENTITY avec le nom d’utilisateur, le nom de domaine et le mot de passe appropriés. |
LDAP_AUTH_DPA | Authentification par mot de passe distribué. Utilisé par le système d’appartenance Microsoft. | Pour vous connecter en tant qu’utilisateur actuel, définissez les paramètres dn et cred sur NULL. Pour vous connecter en tant qu’autre utilisateur, définissez le paramètre dn sur NULL et le paramètre cred sur un pointeur vers une structure de SEC_WINNT_AUTH_IDENTITY avec le nom d’utilisateur, le nom de domaine et le mot de passe appropriés. |
LDAP_AUTH_MSN | Service d’authentification réseau Microsoft. | Pour vous connecter en tant qu’utilisateur actuel, définissez les paramètres dn et cred sur NULL. Pour vous connecter en tant qu’autre utilisateur, définissez le paramètre dn sur NULL et le paramètre cred sur un pointeur vers une structure de SEC_WINNT_AUTH_IDENTITY avec le nom d’utilisateur, le nom de domaine et le mot de passe appropriés. |
LDAP_AUTH_NEGOTIATE | Services de sécurité génériques (GSS) (Snego). Ne fournit pas d’authentification, mais choisit plutôt la méthode d’authentification la plus appropriée dans une liste de services disponibles et transmet toutes les données d’authentification à ce service. | Pour vous connecter en tant qu’utilisateur actuel, définissez les paramètres dn et cred sur NULL. Pour vous connecter en tant qu’autre utilisateur, définissez le paramètre dn sur NULL et le paramètre cred sur un pointeur vers une structure SEC_WINNT_AUTH_IDENTITY ou SEC_WINNT_AUTH_IDENTITY_EX avec le nom d’utilisateur, le nom de domaine et le mot de passe appropriés. |
LDAP_AUTH_NTLM | Gestionnaire NT LAN | Pour vous connecter en tant qu’utilisateur actuel, définissez les paramètres dn et cred sur NULL. Pour vous connecter en tant qu’autre utilisateur, définissez le paramètre dn sur NULL et le paramètre cred sur un pointeur vers une structure SEC_WINNT_AUTH_IDENTITY ou SEC_WINNT_AUTH_IDENTITY_EX avec le nom d’utilisateur, le nom de domaine et le mot de passe appropriés. |
LDAP_AUTH_SICILY | Couvre la négociation de package sur les serveurs MSN. | Pour vous connecter en tant qu’utilisateur actuel, définissez les paramètres dn et cred sur NULL. Pour vous connecter en tant qu’autre utilisateur, définissez le paramètre dn sur NULL et le paramètre cred sur un pointeur vers une structure de SEC_WINNT_AUTH_IDENTITY avec le nom d’utilisateur, le nom de domaine et le mot de passe appropriés. |
LDAP_AUTH_SSPI | Obsolète. Inclus pour la compatibilité descendante. L’utilisation de cette constante sélectionne le service de négociation GSS (Snego). | Identique à LDAP_AUTH_NEGOTIATE. |
Pour l’authentification de liaison asynchrone, utilisez LDAP_AUTH_SIMPLE avec ldap_bind.
L’opération de liaison identifie un client au serveur d’annuaire en fournissant un nom unique et un type d’informations d’identification d’authentification, comme un mot de passe. Les informations d’identification exactes dépendent de la méthode d’authentification utilisée. Si vous transmettez null pour les informations d’identification avec ldap_bind_s() (non simple), les informations d’identification actuelles de l’utilisateur ou du service seront utilisées. Si une méthode de liaison simple (comme dans ldap_simple_bind_s) est spécifiée, elle équivaut à un mot de passe en texte clair NULL. Pour plus d’informations, consultez ldap_bind.
N’oubliez pas que les serveurs LDAP 2 nécessitent une liaison d’application avant d’essayer d’autres opérations qui nécessitent une authentification.
Multithreading : les appels de liaison ne sont pas sécurisés, car ils s’appliquent à la connexion dans son ensemble. Soyez prudent si les threads partagent des connexions et essaient de threader les opérations de liaison avec d’autres opérations.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | winldap.h |
Bibliothèque | Wldap32.lib |
DLL | Wldap32.dll |