2

我正在编写一个简单的 LDAP 客户端来通过 SSL 连接到 LDAP 服务器。我正在使用“openldap-2.4.35”

到目前为止,我尝试在没有任何加密机制的情况下进行简单绑定。这是我尝试过的代码:

#define LDAP_DEPRECATED 1
#include<stdio.h>
#include<ldap.h>

#define HOST "ldap://192.168.1.95:389"
#define BASEDN "cn=manager,dc=ashwin,dc=com"

int main(){
    LDAP *ld;
    int rc;

    LDAPMessage *message;

    if(ldap_initialize(&ld, HOST))    
    {
        perror( "ldap_initialize" );
        return( 1 );
    }
    printf("LDAP initialized\n");

    rc = ldap_simple_bind_s( ld, BASEDN, "secret" );
    if( rc != LDAP_SUCCESS )
    {
        fprintf(stderr, "ldap_simple_bind_s: %s\n", ldap_err2string(rc) );
        return( 1 );
    }
    printf( "Successful authentication\n" );

    return 0;
}

这将连接到 LDAP 并绑定用户。如果ldap_simple_bind_s成功则认证成功。

是否有任何文档用于构建 LDAP 客户端以连接到 SSL 和 StartTLS 上的 LDAP 服务器?

4

2 回答 2

3

在 MSDN 上有一个关于如何通过 SSL 建立 ldap 连接的详细示例(对于 win32 应用程序):
Example Code for Establishing a Session over SSL

希望这将是有用的,

于 2013-05-06T13:00:45.693 回答
0
HOST "ldap://192.168.1.95:389" should be: HOST "ldaps://192.168.1.95:636"

此外,在 /etc/openssl/ldap.conf 中,确保您的顶级根证书包含在 pem 文件中,例如:

TLS_CACERT /my/top/root/certs.pem

如果您没有 TLS_CACERT 行,请添加一个并确保 pem 文件可读:

cat /my/top/root/certs.pem
-----BEGIN CERTIFICATE-----
MII...
....I=
-----END CERTIFICATE-----
于 2018-02-11T18:20:12.097 回答