Arquivo

Textos com Etiquetas ‘LDAP’

Consultando LDAP com PHP

27, julho, 2010 2 comentários
<?php
// Variaveis Globais
$ldap_server = "seudominio.com.br";
/*Usamos o nome do dominio ou o nome do Servidor do dominio Casa
seja 1 servidor Apenas*/
$dominio = "seudominio\\"; /*Aqui usaremos o nome Netbios do dominio*/

// Usuario para autenticacao na Base LDAP
$auth_user = "seudominio\usuario_de_consulta";
/*nome Netbios\usuario*/

$auth_pass = "senha_do_usuario";
/*Senha do usuario do dominio*/

// Caminho LDAP do Dominio
$base_dn = "OU=DOMINIO,DC=seudominio,DC=com,DC=br";
/*Nome do Dominio completo + OU principal*/

// Caminho LDAP do Grupo para consulta
$filter = "(&(objectClass=user)(memberOf=CN=grupo,OU=ou_do_grupo,
OU=ou_principal,DC=seudominio,DC=com,DC=br))";

//Funcao para conectar na base LDAP listar os usuarios de um grupo.

if (($connect=@ldap_connect($ldap_server))) {
 if (($bind=@ldap_bind($connect, $auth_user, $auth_pass))) {
 if (($search=@ldap_search($connect, $base_dn, $filter))){
 $number_returned = ldap_count_entries($connect,$search);
 $info = ldap_get_entries($connect, $search);

   for ($i=0; $i < $info["count"]; $i++){

     $user_pure = $info[$i]["samaccountname"][0];
     $user_up = strtoupper($user_pure);
     echo "Ususario - $user_up<br>";
   }

 }

 }

}
// Fecha a conexao LDAP.
ldap_close($connect);
?>

Fonte: www.revistaphp.com.br

Mais informações sobre AD:
http://www.learnthat.com/Software/learn/1295/Introduction-to-Active-Directory/

Abaixo uma breve descrição das variáveis:
$ldap_server -> essa variavel deve apontar para o servidor Active Directory, que pode ser preenchida com um nome FQDN ou o IP do servidor, ou seja, será a base onde consultaremos o(s) usuário(s).

$dominio -> essa variável deve conter o nome NETBIOS do domínio que é o nome curto do domínio do seu Active Directory. Suponhamos que seu domínio fosse phpldap.com.br , o nome curto(NETBIOS) para esse domínio seria phpldap que atribuímos a variável ‘$dominio’.

$auth_user -> esse variável deve conter o nome de um usuário existente na base do Active Diretory. Suponhamos que você tenha na sua base o usuário ‘teste’, nesse caso usando o exemplo acima com o nome do domínio phpldap a variável seria preenchida assim ‘phpldap\teste’. Esse usuário serva para se conectar a base de dados.
$auth_pass -> essa variável deve ser preenchida com a senha do usuário teste do Active Directory, conforme exemplo acima.

$base_dn -> usando o exemplo do domínio phpldap.com.br essa variável ficaria da seguinte forma ‘OU=phpldap,DC=phpldap,DC=com,DC=br’.

$filter -> deve ser preenchida com o caminho LDAP completo do grupo no qual você deseja pesquisar os usuários.

Obs: o código acima consulta usuários na base de dados de um servidor Active Directory, e também pode ser adaptado para consultar usuários em uma base de dados OPENLDAP.

Categories: Ajax, css + js, JavaScript, Linux, Php + Mysql Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Fazendo backup no OpenLDAP

4, junho, 2009 Sem comentários

Só uma pequena dica, principalmente para mim que provavelmente irei esquecer disso daqui a alguns dias! :)

Para fazer o backup do OpenLDAP (estou usando o Debian Sarge), uso a ferramenta slapcat, onde usando o backend bdb é possível fazer o backup com o serviço rodando (atenção, em alguns backends pode dar problema rodar o slapcat com o serviço rodando).

O slapcat gera um arquivo no formato LDIF, usado pelo OpenLDAP. Para isso uso a seguinte linha:

# /usr/sbin/slapcat -f /etc/ldap/slapd.conf -b “dc=domínio,dc=com” | bzip2 -9 > slapdb.ldif.bz2

Com isso no cron você pode ter backups diários, semanais ou como você escolher.

Para restaurá-lo uso a ferramenta slapadd, para isso é necessário ter o arquivo /etc/ldap/slapd.conf semelhante ao do servidor original (mesmo domínio, schemas e ACL), os arquivos de schema todos no lugar. Não sei garantir se é necessário o diretório /var/lib/ldap vazio, mas eu limpo antes de importar o backup de qualquer maneira.

Com o serviço desligado (é importante), uso o comando:

# bunzip2 slapdb.ldif.bz2 slapadd -l slapdb.ldif

Como superusuário, inicie o serviço e pronto, o backup está restaurado.

Categories: Php + Mysql Tags: , ,