• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

thinkbrunus

[RESOLVIDO] Autenticação PHP+LDAP

6 mensagens neste tópico

Viva!

Depois de desenvolver um sistema de login com várias ajudas, de entre as quais também a vossa, pretendo adaptar este sistema login via LDAP.

Tenho pesquisado várias matéria para entender como poderei integrar esta funcionalidade. Já encontrei alguns códigos, mas a minha dificuldade persiste em configurar o PHP para utilizar as funções LDAP. Pelo que percebi, quando executo a função phpinfo(); deveria ser apresentada a informação do módulo LDAP...

Para carregar este módulo LDAP, segui alguns conselhos que fui encontrando durante as pesquisas, tal como descomentar linha "extension=php_ldap.dll" nos ficheiros php5.ini e php.ini

Também já vi várias referencias aos ficheiros libsasl.dll, libeay32.dll, ssleay32.dll que devem estar na pasta "windows\system32", estes estão no meu sistema em directorias diferentes, especificamente C:\xampp\apache\bin, C:\xampp\apache\bin e C:\xampp\php nos dois restantes ficheiros, terá alguma influência?

Futuramente e na prática, pretendo instalar o site num servidor que por sua vez se conectará a outro servidor com o win server, e neste será feita e resolvida a autenticação. Dada a situação, julgo que apenas é necessário a configuração do apache e php no servidor onde vou colocar o site, certo?

Depois de seguir os procedimentos referidos, no phpinfo(); não aparece o módulo ldap, e quando chamo a função ldap_connect("servidor") dá-me o seguinte erro: Fatal error: Call to undefined function ldap_connect() in C:\xampp\htdocs\myLDAP\index.php on line 4

As buscas que tenho feito e as tentativas realizadas, não tenho tido sucesso...alguém me poderia dar algumas luzes sobre o assunto?

Abraços!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No php.ini tens de descomentar o tal extension=php_ldap.dll. Depois desliga e volta a ligar o apache tenta outra vez ver o phpinfo(). Se não tiver lá nada sobre ldap, vê os logs do apache.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

A tal linha extension=php_ldap.dll no php.ini já descomentei, e não me aparece nada de ldap no phpinfo().

Estive a ver os logs do apache e não acho nada de estranho...deveria dar algum erro ou alguma referência ao módulo ldap?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Parece-me que o problema é que o PHP não está a encontrar dll. Mete a pasta do php_ldap.dll na PATH do windows ou então copia-o para o C:\Windows

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já tentei fazer o que disseste, primeiro coloquei o ficheiro php_ldap.dll em C:\windows e não funcionou, de seguida adicionei o caminho nas variáveis do windows e continua na mesma....

Pergunta parva, o ficheiro .php onde invoco a função ldap pode estar numa pasta no localhost (ex: http://localhost/myldap)? Ou tem de estar na raiz do localhost?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem já consegui activar o módulo ldap no php, faltou apenas uns passos. Para quem tenha a mesma dúvida deixo de seguida os passos que segui:

1.Descomentar linha “extension=php_ldap.dll” nos ficheiros em “C:\xampp\php\php.ini” e “C:\xampp\php\php5.ini“;

2.Adicionar nas variáveis de sistema em “Control Panel > System > Advanced > Environment Variables”.

Seleccionar a variável de sistema “Path” e adicionar caminho onde se encontra o ficheiro “php.ini” e “php5.ini” (ex: C:\xampp\php).

Inserir nova variável “PHPRC” e inserir caminho da directoria onde está o “php.ini”;

3.Copiar ficheiros “php_ldap.dll”, “ssleay32.dll” e “libeay32.dll”.

Obrigado pela ajuda!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora