Включить на php поддержку ldap

Подключение к AD из PHP по протоколу LDAPS

Прочитав пост Создаем пользователя AD через веб-интерфейс, вспомнил, что около года назад занимался с аналогичной задачей. Проблема была в том, что не удавалось создать пользователя при соединении по протоколу LDAP, а получилось только по протоколу LDAPS. Выкладываю свои записи, вдруг кому пригодится.

Все действия проделывались в RHEL 5.5 и Windows Server 2003 R2 EE.

Сертификаты
rpm -ivh openssl-0.9.8e-12.el5_4.6.i686.rpm rpm -ivh openssl-perl-0.9.8e-12.el5_4.6.i386.rpm
dir = /root/sslCA default_days = 3650 countryName_default = UA stateOrProvinceName_default = Lugansk localityName_default = Lugansk 0.organizationName_default = CompanyName organizationalUnitName_default = IT . # в конце файла [ sign_ias_csr ] subjectKeyIdentifier = hash authorityKeyIdentifier = keyid,issuer:always keyUsage = digitalSignature, keyEncipherment extendedKeyUsage = clientAuth,serverAuth 
cd /root/ mkdir sslCA chmod 700 sslCA cd /root/sslCA mkdir certs private newcerts echo 1000 > serial touch index.txt openssl req -new -x509 -days 3650 -extensions v3_ca -keyout private/cakey.pem -out cacert.pem -config /etc/pki/tls/openssl.cnf 
Сертификаты для контроллеров домена
#!/bin/sh NAME=$1 BITS=1024 CONFIG=/etc/pki/tls/openssl.cnf # Generating the Certificate Request # Create server key echo ""; echo "Creating server key"; echo "" openssl genrsa -des3 -out server$.key.pass -passout pass:1234 $ || exit # Remove passphrase echo ""; echo "Removing passphrase"; echo "" openssl rsa -in server$.key.pass -out server$.key -passin pass:1234 || exit # Generate certificate request echo ""; echo "Generating certificate request"; echo "" openssl req -config $ -new -days 3650 -key server$.key -out csr$.pem || exit # Signing the Certificate echo ""; echo "Signing the Certificate"; echo "" openssl ca -config $ -days 3650 -extensions sign_ias_csr -out new$.pem -in csr$.pem || exit # Generate a Public/Private key file cp server$.key cert$.pem openssl x509 -in new$.pem >> cert$.pem || exit # Generate the PKCS12 file echo ""; echo "Generating PKCS12"; echo "" openssl pkcs12 -name "Test Cert" -export -in cert$.pem -out cert$.p12 || exit 
chmod +x /root/sslCA/gencert.sh /root/sslCA/gencert.sh 01 

При запросе **Common Name (eg, your name or your server’s hostname) []:** нужно обязательно ввести FQDN DC для которого создаем сертификат.

cp /root/sslCA/cacert.pem /etc/pki/tls/certs/ c_rehash rpm -ivh openldap-clients-2.3.43-12.el5.i386.rpm 
# Instruct client to NOT request a server's cert. TLS_REQCERT never # Define location of CA Cert TLS_CACERT /etc/pki/tls/certs/cacert.pem TLS_CACERTDIR /etc/pki/tls/certs 
cp /etc/openldap/ldap.conf /var/www/.ldaprc 
Установка сертификатов на DC

1. Копируем на сервер файлы
* cert.p12 — The certificate
* cacert.pem — The Root Certificate

Читайте также:  Php очистить строку от спецсимволов

2 .Start, Run, MMC, File, Add/Remove Snap-in, Add, Certificates, Computer Account, Local Computer, My User Account, Next, Finish, Close, Ok

3. Разворачиваем Certificates

4. Импортируем cacert.pem в Trusted Root Certificates Authorities (правой кнопкой на Trusted Root Certificates Authorities, All Tasks, Import, Next, Browse, All files, выбираем наш cacert.pem . )

5. Импортируем cert.p12 в Personal (правой кнопкой на Personal, All Tasks, Import, Next, Browse, All files, находим наш cert.p12, если нужно вводим пароль . )

6. Проверяем сертифика на DC
* Разворачиваем папки Personal и Certificates
* Двойной щклчок по установленному сертификару
* Убеждаемся, что есть строка «You have a private key that corresponds to this certificate»

Проверка сзязи

Источник

Установка поддержки LDAP в PHP на сервере LAMP Ubuntu

Чтобы включить поддержку LDAP на существующем веб-сервере Ubuntu Apache, вам необходимо установить пакет php5-ldap.

# sudo apt-get install php5-ldap

Это должно быть так, но в моей конкретной ситуации после запуска sudo apt-get install php5-ldap я получил следующую ошибку:

Reading package lists. Done Building dependency tree Reading state information. Done The following NEW packages will be installed php5-ldap 0 upgraded, 1 newly installed, 0 to remove and 12 not upgraded. Need to get 19.6 kB of archives. After this operation, 115 kB of additional disk space will be used. Err http://gb.archive.ubuntu.com/ubuntu/ natty-updates/main php5-ldap amd64 5.3.5-1ubuntu7.2 404 Not Found Err http://security.ubuntu.com/ubuntu/ natty-security/main php5-ldap amd64 5.3.5-1ubuntu7.2 404 Not Found [IP: 91.189.92.166 80] Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php5/php5-ldap_5.3.5-1ubuntu7.2_amd64.deb 404 Not Found [IP: 91.189.92.166 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

Чтобы решить эту проблему, мне пришлось запустить:

(это обновляет ваш локальный индекс пакета с последними изменениями, внесенными в репозитории).
и повторите приведенные выше команды.

Читайте также:  Select md5 mysql php

Когда ldap установлен и включен, phpinfo () отобразит раздел ldap:

Пример использования функций PHP LDAP для поиска в Windows Active Directory.

Источник

Enable PHP LDAP Module (XAMPP)

Connection to LDAP in PHP isn’t that easy task by itself. Things get even more complicated, if you’re working in XAMPP environment under Windows. It hope this article will help you in getting un-stuck, if you’re stuck on the similar things.

As in our experience, on a very rare situation, we were required to use Windows Active Directory or OpenLdap as our user database in WordPress. We need to enable php ldap module in XAMPP. By default this php ldap module is not enable in XAMPP as most web servers are not using ldap as their database or directory. Follow these simple steps to enable this module.

To use LDAP support in PHP served under Windows you need to have three libraries:

libsasl.dll ssleay32.dll libeay32.dll

You have to put them into system32 folder, if you’re serving your PHP through XAMPP.

You need to have libsasl.dll library not only for very old PHP 4.3 or older. Even newest versions of PHP 5.3 and above require this lib.

What is even more strange, I had this library (along with required ssleay32.dll and libeay32.dll) in my PHP’s directory and my PHP’s directory was listed in Windows’ PATH variable. And even so, I’m facing the problem of Apache failing to start. The only workaround, I found, was to copy libsasl.dll to system32 system directory.

Enable support

You have to edit your php.ini file and uncomment extension=php_ldap.dll line. Then you have to restart your Apache / XAMPP server.

If you don’t have above mentioned libraries, next run of server will fail with information, which directory is missing. Newest XAMPP brings these libraries in XAMPP’s php folder, so you only have to copy them to system32 folder, because for some strange reason, libraries in XAMPP’s php are not loaded, though all of them are in PATH system environment variable.

Читайте также:  Код символа пробела html

Copy all of these libraries (or just libsasl.dll, as many other programs are using ssleay32.dll and libeay32.dll libraries and one of them could already put these two libs) to your system32 folder.

Procedure

To enable php ldap module in XAMPP, find the following files and copy them to C:\Windows\system32\.

libsasl.dll ssleay32.dll libeay32.dll

Enable PHP LDAP Module (XAMPP)

Find and edit C:\xampp\php\php.ini and uncomment «extension=php_ldap.dll» around line 965.

Enable PHP LDAP Module (XAMPP)

Enable PHP LDAP Module (XAMPP)

Restart XAMPP (restart Apache service) and you should now have access to the PHP LDAP functions.

Источник

Добавляем поддержку LDAP в PHP 7.4 на Astra Linux 2.12

Для авторизации на сайте и хранения некоторых типов данных удобнее всего использовать LDAP. Для PHP написан модуль, предоставляющий функционал доступа к серверу по протоколу LDAP – Php-ldap. В прошлой части мы рассмотрели добавление в PHP 7.4 поддержки работы со шрифтами через FreeType. Сегодня мы добавим в PHP поддержку протокола LDAP. Так как на Astra Linux мы собирали PHP 7.4 из исходного кода, то нам нужно переконфигурировать и пересобрать PHP.

Обновление и установка

sudo apt install libldap2-dev

Сборка PHP 7.4

./configure --with-config-file-path=/etc/php/php7.4 \ --sysconfdir=/etc/php/php7.4 \ --enable-mysqlnd \ --with-pdo-mysql \ --with-pdo-mysql=mysqlnd \ --with-pdo-pgsql=/usr/bin/pg_config \ --enable-bcmath \ --enable-fpm \ --with-fpm-user=www-data \ --with-fpm-group=www-data \ --enable-mbstring \ --enable-phpdbg \ --enable-shmop \ --enable-sockets \ --enable-sysvmsg \ --enable-sysvsem \ --enable-sysvshm \ --with-zlib \ --with-curl \ --with-pear \ --with-openssl \ --enable-pcntl \ --enable-gd \ --with-jpeg \ --with-mysqli \ --with-readline \ --with-freetype \ --with-ldap
sudo service php-7.4-fpm restart

Проверка наличия поддержки LDAP

2021-10-01_11-48-21.png

Откроем страницу информации php и найдем блок с Ldap: Поддержка Ldap успешно добавлена

Заключение

Сегодня мы добавили поддержку протокола LDAP в PHP 7.4 на Astra Linux. Установили паке libldap2-dev, добавили опцию при конфигурации PHP 7.4 и пересобрали его из исходного кода. Перезапустили php-fpm и проверили наличие поддержки LDAP через страницу информации PHP.

Источник

Оцените статью