/** * Connect and bind to ldap server * @throws \Adldap\Exceptions\Auth\BindException */ public function connect() { if ($this->useSsl && $this->useTls) { // Prefer TLS over SSL $this->useSsl = false; } /* * Initialize provider with configuration */ $schema = new OpenLDAP(); $this->ldapProvider = new Provider(['base_dn' => $this->baseDn, 'domain_controllers' => [$this->host], 'port' => $this->port, 'admin_username' => $this->adminUsername, 'admin_password' => $this->adminPassword, 'use_ssl' => $this->useSsl, 'use_tls' => $this->useTls], null, $schema); $this->ldapClient = new Adldap(); $this->ldapClient->addProvider('default', $this->ldapProvider); try { $this->ldapClient->connect('default'); $this->ldapProvider->auth()->bindAsAdministrator(); } catch (BindException $e) { throw $e; } }