Привязка и аутентификация к серверу 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-----