我正在编写一个示例客户端(用 C/C++ 编码)以通过 LDAP 对用户进行身份验证。客户端是为 Windows 和 Linux 开发的。
对于 Linux,我使用 OpenLDAP使用 --with-tls
(OpenSSL) 编译的库。为了通过加密 channel 对用户进行身份验证,我跳过了服务器-客户端证书验证。为此,我将 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 的客户端证书验证??
最佳答案
看Session Options ,特别是 LDAP_OPT_SERVER_CERTIFICATE
。它允许您指定一个回调函数来验证服务器证书。
关于c++ - 如何在 Windows 上禁用 LDAP 身份验证的证书验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16943647/