Проверка подлинности LDAP PHP на нескольких доменах AD - PullRequest
0 голосов
/ 03 сентября 2018

Во-первых, я хотел бы заявить, что мой набор навыков 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];



?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...