安全LDAP身份验证

时间:2012-04-23 19:41:28

标签: c++ windows ldap

我想使用OpenLDAP服务器从C ++客户端应用程序安全地进行身份验证,例如,使用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(localhost)作为主机。

OpenLDAP调试日志如下所示:
TLS跟踪:SSL_accept:SSLv3刷新数据
tls_read:want = 5 error =未知错误
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配置是安装包的默认配置,例如:

TLSVerifyClient永远不会 TLSCipherSuite HIGH:MEDIUM:-SSLv2
TLSCertificateFile ./secure/certs/server.pem
TLSCertificateKeyFile ./secure/certs/server.pem
TLSCACertificateFile ./secure/certs/server.pem

有人知道ldap_connect失败的原因吗?

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

BR, 脱膜

1 个答案:

答案 0 :(得分:0)

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