安全 LDAP 身份验证

Secure LDAP authentication

本文关键字:身份验证 LDAP 安全      更新时间:2023-10-16

我想从C++客户端应用程序使用 OpenLDAP 服务器安全地进行身份验证,例如,使用 SSL/TLS 或 SASL。我使用Windows 7 64位操作系统。

我尝试了这个例子:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa366105%28v=vs.85%29.aspx

但它在此函数调用中失败:ULONG ldapConn = ldap_connect(pLdapConnection, NULL);

来自 ldap_connect 的返回代码是 81 (dec)。

我已经从这里将OpenLDAP安装到我的计算机上:

http://www.userbooster.de/en/download/openldap-for-windows.aspx

我使用 127.0.0.1(本地主机)作为主机。

OpenLDAP 调试日志如下所示:
TLS 跟踪:SSL_accept:SSLv3 刷新数据
tls_read:想要=5 错误=未知错误
TLS 跟踪:SSL_accept:SSLv3 读取客户端证书 A
中的错误TLS 跟踪:SSL_accept:SSLv3 读取客户端证书 A
中的错误守护程序:1 个描述符
上的活动守护进程:已
唤醒守护进程: WSselect: listen=2 active_threads=0 tvp=NULL
守护进程: WSselect: listen=3 active_threads=0 tvp=NULL

根据日志,这似乎与证书有某种关系。OpenLDAP 配置是安装包中的默认设置,例如:

TLSVerify客户端从不
TLSCipherSuite HIGH:MEDIUM:-SSLv2
TLSCertificateFile ./secure/certs/server.pem
TLSCertificateKeyFile ./secure/certs/server.pem
TLSCACertificateFile ./secure/certs/server.pem

有人知道ldap_connect为什么失败吗?

或者有人知道有关此主题的有用教程或C++代码示例?我特别不清楚客户端证书如何链接到客户端代码。换句话说,如何在客户端C++代码中定义它,其中证书是在身份验证期间获取的。

溴,图莫

找到这篇文章:http://www.openldap.org/lists/openldap-technical/200903/msg00061.html。 看起来您可能希望将 TLSCipherSuite HIGH:MEDIUM:-SSLv2 更改为 TLSCipherSuite HIGH:MEDIUM:+SSLv2。