2012-01-04 2 views
0

Я пытаюсь подключиться к серверу ldap, который, по словам ИТ-специалиста клиента, не имеет сертификата SSL. Это находится в тестовом файле в своем домене, на котором установлен SSL. Допустим, файл находится в https://client.org/test_LDAP.phpПодключение к незащищенному LDAP-серверу через PHP в безопасном домене

Поэтому я использую очень простой код для подключения, который работал хорошо с другим клиентом, только в прошлом месяце:

ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, 7); 

define("LDAP_SERVER","ldap://name.their.junk"); 
define("LDAP_BASE","CN=Users,DC=their,DC=junk"); 

$username = 'CN=Username,'.LDAP_BASE; 
$password = "Password"; 

$ldap = ldap_connect(LDAP_SERVER, 389) or die("Can't connect to LDAP server"); 

ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3) ; 

if (ldap_bind($ldap, $username, $password)) { 
    ldap_unbind($ldap); 
    echo 'OK - Login valid'; 
} else { 
    die(ldap_error($ldap) . ' (' . ldap_errno($ldap) . ')'); 
} 

Если я бегу код из домена с Установлен ли SSL, означает ли это, что я использую ldaps и порт 636, даже если у сервера AD клиента нет сертификата? Я пробовал код с обоими портами, а также ldaps: и ldap: в незащищенном домене запуска, а также в защищенном домене. Ничто не работает. Но он клянется, имя пользователя и пароль, и все переменные верны, и сказал мне использовать их IP instaed имени хоста (например, ldap: 000.000.000.00).

Я делаю что-то неправильно здесь?

И да, у меня есть LDAP, настроенный правильно на моем сервере, потому что мы просто смогли сделать это точно так же с другим клиентом в последнее время.

Любое понимание было бы высоко оценено.

+0

вы получаете какие-либо ошибки? Что-то в журнале? Вы пробовали смотреть попытку подключения (tcpdump и т. Д.) – Jakub

+0

На моем конце или конце? Я попросил его проверить его журналы и не слышал назад. Какие журналы я должен проверить? –

+0

Вы должны проверить свои стандартные журналы для своего приложения (например, журналы ошибок php, при необходимости добавьте многословие ведения журнала для AD), вам действительно кажется, что «его не работают» и пользователи SO говорят «что не работает, что вы уже пробовали? ». Журналы должны быть просмотрены, прежде чем обращаться за помощью, поскольку они часто указывают на ошибку (если она зарегистрирована). Это всего лишь предпосылка для лучшего форматирования вопросов. – Jakub

ответ

1

При попытке выполнить поиск на Windows 2003 Server, Active Directory или выше, кажется, что вы должны установить опцию LDAP_OPT_REFERRALS 0:

ldap_connect(..) 
ldap_set_option ($ldap, LDAP_OPT_REFERRALS, 0); 
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); 
ldap_bind(..) 
+0

Это пока не работает. Версия, которую он говорит, что он работает, - это Windows 2003 Server x64 SP2, если это что-то значит. Спасибо, спасибо. –

+0

Я собираюсь идти дальше и отмечать это как правильный ответ, поскольку нет ничего, что можно было бы сделать, пока он не даст мне больше информации о сервере. Я полностью снимаю в темноте то, что у них есть, и я думаю, что это проблема брандмауэра, которая не позволяет нашему серверу пройти. –

+0

Почему вы не используете wireShark, чтобы узнать, что произошло в сети. – JPBlanc

Смежные вопросы