1

我正在编写一个示例客户端(用 C/C++ 编码),用于通过 LDAP 对用户进行身份验证。该客户端是为 Windows 和 Linux 开发的。

对于 Linux,我使用的是使用(OpenSSL)编译的OpenLDAP库。--with-tls为了通过加密通道对用户进行身份验证,我将跳过服务器-客户端证书验证。为此,我将 ldap 选项设置为:

option = LDAP_OPT_X_TLS_NEVER;
returnCode = ldap_set_option(vLdapConnection, LDAP_OPT_X_TLS_REQUIRE_CERT, &option);

if(returnCode != LDAP_OPT_SUCCESS){
    return FALSE;
}

这将跳过认证验证,并始终允许客户端进行身份验证。

但是,在 Windows 上,我将 wldap.dll 用于应用程序。我无法弄清楚如何通过加密连接禁用 LDAP 的服务器客户端证书验证。

当我跑过:

returnCode = ldap_set_option(vLdapConnection, LDAP_OPT_SSL, LDAP_OPT_ON);

returnCode 始终设置为LDAP_SERVER_DOWN = 0x51

如何在 Windows 上使用 Wldap32.dll 禁用 LDAP 的客户端证书验证?

4

1 回答 1

2

看一下会话选项,特别是LDAP_OPT_SERVER_CERTIFICATE。它允许您指定一个回调函数来验证服务器证书。

于 2013-06-08T02:48:21.853 回答