Разверните php с помощью ldap.conf

Я использую php 7 для подключения к активному каталогу с помощью LDAP. Мне нужно вручную создать файл в папке: C: \ openLDAP \ sysconf \ ldap.conf и никогда не устанавливать TLS_REQCERT. Если я не создам этот файл, ldap не сможет подключиться.

Как я могу развернуть это, например, на лазурном компьютере, на котором нет диска C:?

Знаете ли вы, как лучше решить эту ошибку?

Я пробовал это: Требуется помощь при игнорировании сервера сертификат при привязке к серверу LDAP с помощью PHP

   putenv('LDAPTLS_REQCERT=never');

Но не работает.


person Docu    schedule 14.03.2017    source источник
comment
В PHP 7.1 есть параметры для этого, которые вы можете установить без файла конфигурации, но я предполагаю, что вы застряли на PHP 7.0? Вы можете подключиться к сеансу консоли своего веб-приложения через портал и выяснить, что такое домашний каталог ваших пользователей, и поместить в это место файл .ldaprc с необходимыми вам параметрами. Или запустите файл PHP через консоль с вашим LDAP_OPT_DIAGNOSTIC, установленным на 7, и посмотрите, где он ищет файлы конфигурации.   -  person ChadSikorra    schedule 14.03.2017
comment
Большое спасибо за ваш awnser, но один вопрос: знаете ли вы, как я могу автоматически развернуть openLDAP на лазурном сервере Windows без исполняемого файла?   -  person Docu    schedule 16.03.2017


Ответы (1)


Я знаю его годы, но у меня была такая же проблема, и именно это я сделал, как сказал @ChadSikorra.

  1. поместите сценарий .php в корень сайта (я сделал test / ldap.php), который имеет ваши подключения к ldap, добавьте код ниже перед php ldap_connect()

    ini_set('display_errors', 1);
    
    error_reporting(E_ALL);
    
    ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7);
    
    
  2. используя Kudu CMD из корня сайта, cd test, php ldap.php

это были результаты

журналы ldap.php

  1. Обратите внимание на 5-ю красную строку, перейдите к D: / и создайте файл .ldaprc.

  2. отредактируйте файл и вставьте TLS_REQCERT never, сохраните, повторите шаг 2.

  3. Если ваше приложение запущено, перейдите в консоль приложения и перезапустите сервер.

Сделанный!

заполните файл ldap.php ниже

$username = "USERNAME";
$password = "PASSWORD";
$adServer = "IP"; //or domain
$adPort = 389;
$ldaprdn = "DOMAIN\\$username";

ldap_set_optioNULL, LDAP_OPT_DEBUG_LEVEL, 7);

putenv('LDAPTLS_REQCERT=never');

$ldap = ldap_connect("ldaps://$adServer", $adPort);

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);

$bind = ldap_bind($ldap, $ldaprdn, $password);

if ($bind) {
    echo "Connection successful";
    @ldap_close($ldap);
} else {
    echo "Invalid email address / password";
}
person Benjamin Ini    schedule 26.05.2020
comment
Никогда, никогда не используйте TLS_REQUCERT = never, если вы точно не знаете, что делаете. Вы открываете свою связь с MITM-атаками. Я писал в блоге об альтернативных решениях - person heiglandreas; 06.01.2021
comment
в моем случае это была услуга в закрытой сети. Для таких приложений, как веб-приложения, игнорируйте эту строку. Спасибо @heiglandreas - person Benjamin Ini; 08.01.2021
comment
Итак, вы точно знали, что делаете ;-) - person heiglandreas; 09.01.2021