Привязка и аутентификация к серверу LDAP через SSL и TLS

Я пишу простой клиент LDAP для подключения к серверу LDAP через SSL. Я использую "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 для подключения к серверу LDAP по SSL и StartTLS?

2 ответа

Решение

Вот подробный пример того, как установить соединение ldap через SSL на MSDN (для приложения win32):
Пример кода для установки сеанса по SSL

надеюсь, это будет полезно,

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-----
Другие вопросы по тегам