CakePHP e LDAP utilizando ORM
CakePHP é um dos meus xodós para desenvolvimento WEB, com ele me sinto extremamente produtivo. Eis que surgi-o a necessidade de integrar uma aplicação com autenticação LDAP, assim como a necessidade da aplicação interagir com os campos do LDAP. Solução no CakePHP extremamente elegante, rápida e simples.
Bakery como todo bom padeiro sabe, é uma fonte de códigos para todas as áreas, eis que alguem desenvolveu um datasource para o LDAP, ou seja utilizar o data mapping do CakePHP e o ORM do CakePHP com o LDAP, assim é possível conectar no LDAP, e tratar ele como modelos na estrutura de MVC.
Bom então vamos fazer o bolo, mão na massa:
- Download do Datasource;
- Salve o código dentro do diretório dos models, no diretório datasources, com o nome de ldap_source.php. Ficando assim
application > models > datasources > ldap_source.php; - Vá até o diretório configs no arquivo database e crie uma nova conexão:
1 2 3 4 5 6 7 8 9 10
var $ldap = array ( 'datasource' => 'ldap', 'host' => 'host', 'port' => 389, 'basedn' => 'dc=name,dc=com', 'login' => 'cn=admin,dc=name,dc=com', 'password' => 'password', 'version' => 3, 'database' => '' );
- Crie um modelo User.php
1 2 3 4 5 6 7 8
< ?php class User extends AppModel { var $name = 'User'; var $useDbConfig = 'ldap'; //usar a configuração do ldap var $primaryKey = 'uid'; //chave única no ldap var $useTable = 'ou=users'; //nome do campo no ldap com os dados necessários para esse modelo } ?>
E pronto, apenas com esses passos já é possivel instanciar o modelo User no seu controller, e utilizar métodos como:
1 2 | $user->find('all'); $user->find('User.name="Vinícius Krolow"'); |
É possível ainda integrar ao componente Auth, que em um próximo post, irei mostrar como fazer.

Leave a Reply