Zend Framework-1.11 Интеграция с LDAP не работает - PullRequest
0 голосов
/ 06 ноября 2019

Я разработал веб-приложение Zend Framework-1.11. Первоначально я создал учетные записи пользователей и связал их с таблицей пользователей в XAMPP (MySQL). Учетная запись пользователя может быть создана и сохранена в базе данных. Также каждый пользователь может войти в приложение.

C: \ xampp \ htdocs \ hrm_app \ index.php

$mysqlPDO = new PDO('mysql:host='.HRM_HOST.';dbname='.HRM_DBNAME.'',HRM_USERNAME, HRM_PASSWORD,array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));  

C: \ xampp \ htdocs \ hrm_app \ public \ db_constants.php

<?php
   defined('HRM_HOST') || define('HRM_HOST','localhost');
   defined('HRM_USERNAME') || define('HRM_USERNAME','test');
   defined('HRM_PASSWORD') || define('HRM_PASSWORD','pass');
   defined('HRM_DBNAME') || define('HRM_DBNAME','hrm_app');
?>

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

C: \ xampp \ htdocs \ hrm_app \ Zend \ Ldap.php

public function setOptions($options)
{
    if ($options instanceof Zend_Config) {
        $options = $options->toArray();
    }

  $permittedOptions = array(
     'host'                   => 'ad.kkklimited.com',
     'port'                   => 0,
     'useSsl'                 => false,
     'username'               => 'testing',
     'password'               => '@Testing_12345#',
     'bindRequiresDn'         => false,
     'baseDn'                 => 'CN=Users,DC=ad, DC=kkklimited, DC=com',
     'accountCanonicalForm'   => null,
     'accountDomainName'      => 'ad.kkklimited.com',
     'accountDomainNameShort' => 'KKK',
     'accountFilterFormat'    => null,
     'allowEmptyPassword'     => false,
     'useStartTls'            => true,
     'optReferrals'           => false,
     'tryUsernameSplit'       => true,
  );

        foreach ($permittedOptions as $key => $val) {
            if (array_key_exists($key, $options)) {
                $val = $options[$key];
                unset($options[$key]);
                /* Enforce typing. This eliminates issues like Zend_Config_Ini
                 * returning '1' as a string (ZF-3163).
                 */
                switch ($key) {
                    case 'port':
                    case 'accountCanonicalForm':
                        $permittedOptions[$key] = (int)$val;
                        break;
                    case 'useSsl':
                    case 'bindRequiresDn':
                    case 'allowEmptyPassword':
                    case 'useStartTls':
                    case 'optReferrals':
                    case 'tryUsernameSplit':
                        $permittedOptions[$key] = ($val === true ||
                                $val === '1' || strcasecmp($val, 'true') == 0);
                        break;
                    default:
                        $permittedOptions[$key] = trim($val);
                        break;
                }
            }
        }
        if (count($options) > 0) {
            $key = key($options);
            /**
             * @see Zend_Ldap_Exception
             */
            require_once 'Zend/Ldap/Exception.php';
            throw new Zend_Ldap_Exception(null, "Unknown Zend_Ldap option: $key");
        }
        $this->_options = $permittedOptions;
        return $this;
 }

Как мне достичьэто?

...