Autenticando no LDAP com Zend Framework

Sem muita enrolação teórica, se você entrou nesse post ja deve saber o que procura, sendo assim, segue o tutorial.

Adicione os dados de conexão no arquivo de configuração do Zend

application/configs/application.ini

ldap.server.host = ldap://192.168.1.6
ldap.server.accountDomainName = seudominio.com.br
ldap.server.accountDomainNameShort = seudominio
ldap.server.accountCanonicalForm = 2
ldap.server.username = "cn=admin,o=suaorganizacao,dc=dominio,dc=com,dc=br"
ldap.server.password = "12345"
ldap.server.baseDn = "ou=Usuarios,o=suaorganizacao,dc=dominio,dc=com,dc=br"
ldap.server.bindRequiresDn = true

Configurações realizadas, agora basta implementar a sua controladora que irá realizar a autenticação, segue um exemplo.

application/AutenticacaoController.php

<?php
class AutenticacaoController extends Zend_Controller_Action
{
   public function loginAction()
   {
      $auth = Zend_Auth::getInstance();

      //Carrega as configurações
      $config = new Zend_Config_Ini('application/configs/application.ini', 'production');
      $options = $config->ldap->toArray();

      //Instancia o Adaptador com a conexão LDAP
      $adapter = new Zend_Auth_Adapter_Ldap($options, $this->_getParam('login'), $this->_getParam('senha'));

      //Autentica
      $result = $auth->authenticate($adapter);

      //Verifica se a autenticação foi válida
      if($result->isValid()){
         //$result->getIdentity(); //Objeto de retorno da autenticação

         /**
          * Exemplo de storage para guardar dados na sessão
          * $storage = Zend_Auth::getInstance()->getStorage();
          * $storage->write($array);
          */

         //Redireciona para o index
         $this->_redirect('index');
      }else{
         $this->_redirect('autenticacao/login');

      }
   }

   public function logoutAction()
   {
      Zend_Auth::getInstance()->clearIdentity();
      $this->_redirect('autenticacao/login');
   }
}

Para recuperar os dados salvos na sessão:

$array = Zend_Auth::getInstance()->getIdentity();

Artigos Relacionados

Postado em : Desenvolvimento, PHP, Zend Framework
Tags:, , , ,

2 Comentários para “Autenticando no LDAP com Zend Framework”

Adicionar Comentário (+)

  1. Eduardo disse:

    Ola, parabens pelo artigo, estou com o seguinte problema, consegui autenticar e redirecionar, o código para validação funciona na primeira página a qual é redirecionada, porém não funciona nas outras controllers da erro:

    atal error: Uncaught exception ‘Zend_Controller_Response_Exception’ with message ‘Cannot send headers; headers already sent in /var/www/NVS/application/controllers/RhController.php, line 98′ in /usr/share/php5/libzend-framework-php/Zend/Controller/Response/Abstract.php:323 Stack trace: #0 /usr/share/php5/libzend-framework-php/Zend/Controller/Response/Abstract.php(341): Zend_Controller_Response_Abstract->canSendHeaders(true) #1 /usr/share/php5/libzend-framework-php/Zend/Controller/Response/Abstract.php(768): Zend_Controller_Response_Abstract->sendHeaders() #2 /usr/share/php5/libzend-framework-php/Zend/Controller/Front.php(992): Zend_Controller_Response_Abstract->sendResponse() #3 /usr/share/php5/libzend-framework-php/Zend/Application/Bootstrap/Bootstrap.php(97): Zend_Controller_Front->dispatch() #4 /usr/share/php5/libzend-framework-php/Zend/Application.php(366): Zend_Application_Bootstrap_Bootstrap->run() #5 /var/www/NVS/public/index.php(26): Zend_Application->run() #6 {main} thrown in /usr/share/php5/libzend-framework-php/Zend/Controller/Response/Abstract.php on line 323

    O que pode ser?

Deixe seu Comentário