Autenticação de usuário em Servidores Windows via função ldap do PHP

•outubro 30, 2008 • 3 Comentários

Recentemente precisei fazer uma implementacao de autenticacao LDAP com um programa Monitor de ocorrencias (Ocomon), este post me ajudou muito espero que sirva pra alguem tb….

Este post é direcionado ao desenvolvedores em php que desejam implementar acesso direto aos servidores Windows via Active Directory (AD).

Utilizaremos a função do php inerentes ao protocolo LDAP, então: vamos entender melhor.

O que é o LDAP?
O Lightweight Directory Access Protocol (LDAP) é um protocolo para acesso e modificação de informações de diretórios através da rede.
O LDAP permite que você localize pessoas, organizações, e outros recursos tais como arquivos e dispositivos na rede, seja na Internet ou numa Intranet.

Para entendermos melhor podemos tomar como comparação os programas de banco de dados. O MySQL, MSSQL Server e Oracle dentre tantos outros são SGBDs com características e definições próprias,
mas para qualquer um a linguagem universal de comunicação e acesso a dados é o SQL. O LDAP nada mais é, do que a linguagem de comunicação entre qualquer aplicação com o Active Directory (AD).

Mais informações sobre o LDAP:
- LDAP Zone http://www.ldapzone.com/
- ldapman.org http://www.ldapman.org/ (apresenta alguns bons artigos introdutórios).
- The LDAP Schema Repository http://ldap.akbkhome.com/ (esse é indispensável).

Isto depende muito do cenário tecnológico no qual que você se encontra:
- O primeiro requisito mínimo indispensável para que você possa desfrutar desta tecnologia, é ter acesso a um ambiente que conte com algum servidor da plataforma WINDOWS que ofereça o recurso do AD (Active Directory).
- O segundo requisito é você entender a estrutura do AD de seu domínio. Se a empresa no qual trabalho tem uma árvore de AD muito vasta e complexa, contando com muitos usuáios subdivididos em vários domínios e em suas respectivas Ous (Organizations Units). Se você não entende muito bem essa linguagem, recomendo que pesquise informações sobre como funciona o AD antes de prosseguir, abaixo seguem link de sites que podem ajudar no processo de aprendizado sobre o AD:

- http://www.microsoft.com/brasil/technet/centralwindows/centromigracao/activedirectory/gerenciando.mspx
- http://support.microsoft.com/default.aspx?scid=kb;en-us;325284

Agora que já conhece o PHP, LDAP e o AD, você tem respaldo suficiente para analisar (tomando como base o contexto no qual sua empresa ou cliente esta inserido) para avaliar se esta é a melhor solução a se adequar ao seu caso.
Lembre-se cada caso é um caso, e por isso devemos analisar cuidadosamente todos os casos antes de definir qual o melhor método de autenticação para nossa(s) aplicação(ções).

Agora podemos começar as configurações do php e, se necessário: o servidor também, com adição com cópias de dll’s.

Servidor:
Precisa verificar se há três dll na pasta system32, caso não localize-as e faça uma cópia dessas para a pasta em questão: system32.
libsasl.dll
libeay32.dll
ssleay32.dll
Depois disso reinicie o servidor.

PHP:
Para poder habilitar o suporte ao LDAP em um ambiente com Apache/PHP é necessário seguir os seguintes passos:
- Abrir o arquivo php.ini e descomentar a linha:
;extension=php_ldap.dll

- Em seguida restartar o serviço do Apache

Testando a conexão:

Acessando o AD com PHP
Primeiro para acessar um servidor AD devemos indicar ao PHP qual o servidor queremos conectar e criar uma conexão, para isso usamos a função:
ldap_connect(”servidor”);

O uso desta função é bem simples, abaixo segue um exemplo:

<?php
if (!($conexao = @ldap_connect(”127.0.0.1″))) {
die(”Não foi possével se conectar com o servidor de AD”);
} else {
echo “Conectado com sucesso !!!”;
}
?>

No exemplo acima $connect é a variável que irá receber o ponteiro da conexão caso o PHP consiga estabelecer uma conexão com o AD. Como pode ter observado “127.0.0.1″ é o IP do servidor, mas também poderíamos se comunicar com o servidor AD pelo nome sem problemas.

<?php
if (!($conexao = @ldap_connect(”localhost”))) {
die(”Não foi possével se conectar com o servidor de AD”);
} else {
echo “Conectado com sucesso !!!”;
}
?>

OBS: Não se esqueça que o parâmetro de connect(); tem de ser uma string.

Agora que já conectamos ao servidor é necessário efetuarmos a autenticação com o mesmo, para isso o php tem a função:

ldap_bind($connect, $user, $password);

Exemplo:

<?php
if (!($conexao = @ldap_connect(”localhost”))) {
die(”Não foi possível se conectar com o servidor de AD”);
} else {
echo “Conectado com sucesso !!!<br>”;
}

if (!($bind = @ldap_bind($conexao, $usuario, $senha))) {
//se não validar
echo “Usuário ou senha incorretos !!!”;
} else {
//se validar
echo “Usuário autenticado !!!”;
}
?>

Após ter conectado com o servidor o ponteiro para esta conexão é armazenado na variável $connect que é passado para a função ldap_bind();

Os outros dois parâmetros desta função são um usuário e uma senha válidos no AD. Uma observação importante é que usuário na verdade é composta da seguinte forma: “DOMINIO\USUARIO”

Caso o domínio da minha empresa seja “´portalwepe.com” e eu queira autenticar o usuário “evaldo” o script ficaria da seguinte forma:

<?php
if (!($conexao = @ldap_connect(”localhost”))) {
die(”Não foi possível se conectar com o servidor de AD”);
} else {
echo “Conectado com sucesso !!!<br>”;
}

if (!($bind = @ldap_bind($conexao, “portalwebpe.com\evaldo”, $senha))) {
//se não validar
echo “Usuário ou senha incorretos !!!”;
} else {
//se validar
echo “Usuário autenticado !!!”;
}
?>

Como traduzir as versões Home Basic , Premium e Business do Windows Vista?

•outubro 2, 2008 • 6 Comentários

Olá pessoal este é o  primeiro Post do  meu blog, e neste post quero deixar registrado uma dica de como ultilizar os pacotes de tradução  do Vista Ultimate nas versões (Vista Home Basic , Premium , Business) essa dica foi fruto de uma pesquisa na grande rede motivada por uma necessidade real de traduzir o Vista Business de um Notebook Sony Vaio… aproveitem!!!

O Windows Vista inovou em várias coisas, mas uma me chamou a atenção. Os MUI Packs (Multilinguage User Interface). Com eles, você pode traduizr a interface do seu Windows, sem a instalação de outro sistema em outra língua. Muito útil para emigrantes que querem ter um Windows na sua língua materna.

Os MUI Packs, não são novidade no mercado empresarial (A versão Enterprise do Vista e o XP Pro suportam também), mas no Windows Vista Ultimate, essa função ficou mais aprimorada e disponível ao público sendo possível trocar o idioma com alguns cliques.

Mas quem tem as versões “pequenas” (Vista Home Basic e Premium e Business) não pode aproveitar dessa funcionalidade… até agora. Com um pequeno programa chamado “Vistalizator“, torna se possível sim, e ainda, muito fácil. Se você quiser traduzir o seu Windows, faça o seguinte:

1 – Baixe o programa aqui

2 – Baixe o MUI Pack correspondente ao idioma que você deseja. (No meu caso, o meu Windows é em Alemão sem o SP1 e quero em Português Brasileiro). Você pode baixar clicando nos links (provenientes da Microsoft):

Vista RTM 32bit (Sem SP1)

Vista SP1 32bit (Com SP1)

Vista RTM 64bit (Sem SP1)

Vista SP1 64bit (Com SP1)

3 – Salve os arquivos (programa e MUI Pack) na raiz do HD (ex: C:\Vistalizator) (Para ser mais fácil)

4 – Descompacte e rode o programa (Vistalizator.exe)

5 – Se o UAC estiver ativado, clique em “Permitir”.

6 – Se ocorrer um erro em relação ao BCD, não tem problema, clique em OK

cmldvp_2.jpg (37 KB)

7 – Clique em “Add Language” e selecione aonde está o MUI Pack (ele deve estar com a extensão .exe, ex: “lp-pt-br_86694c7aba41372e04da9d45ce40309a3141a9e3.exe”

cmldvp_2.jpg (37 KB)

8 – Espere a conversão para .cab

cmldvp_3.jpg (40 KB)

9 – Agora clique em “Install”

cmldvp_4.jpg (37 KB)

 

 

 

10 – A partir daí, o programa extrairá e instalará automaticamente.

cmldvp_5.jpg (44 KB)

11 – Vai aparecer uma janela perguntando se você aceita que a língua instalada seja o padrão, caso queira, clique em “Yes”.

cmldvp_6.jpg (43 KB)

12 – Nessa janela, clique em OK.
cmldvp_7.jpg (34 KB)

Para quem quiser trocar o idioma depois de instalado:

1 – Inicie o programa

2 – Selecione o idioma e clique em “Change Language”.

3 – Reinicie o PC.

Bem, espero que aproveitem!  

Instalei o SP1 e funcionou até melhor. Antes o Windows Update continuava na língua original, agora praticamente 100% do sistema está em PT-BR.

Há possibilidades de alguns programas insistirem em instalar na língua original (meu caso: alemão), mas você pode definir a variável do sistema para PT-BR.

1. Aperte a tecla Windows + Pause, ou vá a Iniciar -> Painel de Controle -> Sistema
2. Clique em “Configurações avançadas do sistema”
3. Se o UAC estiver ativado, aperte “Continuar”
4. Vá para a aba “Avançado” e depois clique em “Variáveis de Ambiente”
5. Na parte “Variáveis do sistema”, clique em “Novo”
6. Em “Nome da variável” digite LANG
7. Em “Valor da variável” digite pt_BR
8. Aperte Ok, talvez reinciar a máquina seja uma boa idéia.

Para os amigos portugueses, simplesmente mudem (PT-BR) somente para (PT).

POSTEM O RESULTADO!!!
Fonte: Forumcs.com.br

 
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.