Проверка подлинности LDAP PHP на нескольких доменах AD

Во-первых, я хотел бы заявить, что мой набор навыков PHP / LDAP минимален, поэтому я ищу гения sudo, чтобы помочь мне решить эту проблему.
Недавно объединившись с другой компанией, компания хочет, чтобы мы позволили нашим пользователям проходить проверку подлинности на основе веб-приложения PHP в другом домене Active Directory, которому доверяет лес.
Ниже приведен код, который мне дали для соединения с LDAP, и предыдущий человек, который был гением PHP, теперь покинул компанию, и мне пришлось работать над этим. Код, однако, не работает. Пользователи в домене, где хранится PHP-приложение, могут получить правильный доступ.

    <?php

$browser_shortname = explode('\\', $_SERVER['AUTH_USER']);

// Generate the global LDAP connection to the specificed primary server.

$ldap_connection = ldap_connect($ldap_protocol.$ldap_primaryhost) or die( header('Location: /error/?e=LD01'));
ldap_set_option($ldap_connection, LDAP_OPT_PROTOCOL_VERSION, $ldap_protocolversion);
ldap_set_option($ldap_connection, LDAP_OPT_REFERRALS, $ldap_referrals);

if ($ldap_tls == 1) {

ldap_start_tls($ldap_connection);

}

if ($ldap_debug == 1) {

ldap_set_option($ldap_connection, LDAP_OPT_DEBUG_LEVEL, 7);

}

$ldap_binding = ldap_bind($ldap_connection, $ldap_domain.'\\'.$ldap_username, $ldap_password);

if (!$ldap_binding) {

include ('/core/styles/'.$theme_selected.'/templates/101.tpl');
die();

}

$ldapus_filter = "(sAMAccountName=$browser_shortname[1])";
$ldapus_result = ldap_search($ldap_connection, $ldap_dn, $ldapus_filter);
$ldapus_details = ldap_get_entries($ldap_connection, $ldapus_result);

if ($browser_shortname[0] == "MY-DOMAIN") {

$ldap_khaconnection = ldap_connect($ldap_protocol.$ldap_khahost) or die( header('Location: /error/?e=LD01'));
ldap_set_option($ldap_khaconnection, LDAP_OPT_PROTOCOL_VERSION, $ldap_protocolversion);
ldap_set_option($ldap_khaconnection, LDAP_OPT_REFERRALS, $ldap_referrals);
$ldapus_filter = "(sAMAccountName=$browser_shortname[1])";
$ldapus_result = ldap_search($ldap_khaconnection, $ldap_khadn, $ldapus_filter);
$ldapus_details = ldap_get_entries($ldap_khaconnection, $ldapus_result);

echo "This confirms the user is coming from KHA.";
echo $browser_shortname[1];

}
$ldap_userfullname = $ldapus_details[0]["displayname"][0];
$ldap_userfirstname = $ldapus_details[0]["givenname"][0];
$ldap_usertitle = $ldapus_details[0]["title"][0];
$ldap_accountname =  $ldapus_details[0]["samaccountname"][0];



?>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]