terça-feira, 6 de agosto de 2013

LDAP



O LDAP (Lightweight Directory Access Protocol) é um protocolo para atualizar e pesquisar diretórios rodando sobre TCP/IP. Ele foi criado como uma alternativa ao DAP (Directory Access Protocol) para navegar em diretórios no formato X.500. O LDAP permite manipular informações sobre pessoas, senhas, impressoras, recursos e serviços, unidades organizacionais, entre outros, e define as formas como essas informações podem ser consultadas, inseridas, removidas ou atualizadas. Uma versão segura desse protocolo, o LDAPS, também está disponível.
O LDAP:
·         Centraliza, em um único local da rede, informações acerca de usuários, senhas e diretórios.
·         Permite acesso aos dados de forma segura usando SSL.
·         É independente de plataforma, podendo ser usado tanto no Active Directory do Windows como no Open LDAP do Linux.
·         Armazena as informações de forma hierárquica em uma estrutura de árvore.
·         Sofre mais consultas que atualizações.
·         Suporta tanto a autenticação por meio de certificados quanto o uso de TLS.
Um cliente começa uma sessão de LDAP ligando-se a um servidor LDAP normalmente pela porta padrão TCP 389. Este envia requisições para o servidor, que devolve respostas das consultas e alterações. As operações básicas são divididas em três categorias, conforme a seguir:
Categoria
Operação
Descrição
Autenticação e controle
Bind
Autentica e especifica a versão do protocolo LDAP.
Autenticação e controle
Abandon
Aborta uma requisição prévia.
Autenticação e controle
Unbind
Fecha a conexão, não o inverso de Bind.
Pesquisa e comparação
Search
Procura por e/ou recupera entradas dos diretórios.
Pesquisa e comparação
Compare
Testa se uma entrada tem determinado valor como atributo.
Atualização
Add
Adiciona uma nova entrada.
Atualização
Delete
Apaga uma entrada.
Atualização
Modify
Modifica uma entrada.
Atualização
Modify DN
Move ou renomeia uma entrada.

Start TLS
Protege a conexão com a Transport Layer Security (TLS).

Extended Operation
Operação genérica para definir outras operações.

A estrutura básica das informações LDAP é baseada em uma árvore conceitual, chamada de DIT (Directory Information Tree). Cada folha dessa árvore é um objeto identificado por um DN (Distinguished Name), que representa um endereço na estrutura LDAP sendo considerada. Os identificadores DN possuem uma utilização parecida com os sistemas de arquivo, com a diferença de que a parte mais significativa no LDAP aparece primeiro (ex: cn=Henrique,o=funcionário,ou=administrativo), enquanto nos endereços de arquivo acontece o contrário (ex: /home/user/arquivo). A identificação de elementos do LDAP é semelhante à estrutura utilizada no DNS, com a parte mais significativa aparecendo primeiro (mais à esquerda).
Para cada objeto (folha da árvore) são definidos atributos. Alguns dos atributos que podem ser associados aos objetos são:
Atributo
Descrição
c
country (País)
cn
common name
dc
domainComponent
dn
distinguished name (define uma entrada sem ambigüidades. É o caminho de registros que fica entre o registro a ser especificado e a raiz)
Givenname
Primeiro nome
ou
organizationalUnitName
rdn
relative distinguished name (identifica um registro em seu nível)
sn
surname (sobrenome)
uid
user ID

Registro: contém informações sobre o objeto armazenado (usuário, impressora, etc.).
Object class: define quais atributos são obrigatórios e quais são opcionais em um registro. Um registro tem uma ou mais object class.
Schema: conjunto de regras que define os tipos de dados possíveis (int, string, etc.) e organização desses dados. Busca manter a consistência dos dados no diretório LDAP.

Modelos de abordagem do LDAP
Modelo de informações: define o tipo de informação que pode ser armazenada em um diretório LDAP. Trata dos atributos, das object class, dos schemas, etc.
Modelo de nomes: define como a informação no diretório LDAP pode ser organizada e referenciada. Trata da organização da DIT, como os RDNs e o DNs.
Modelo funcional: define o que pode ser feito com a informação no diretório LDAP e como ela pode ser acessada e alterada. Descreve o que fazer com o diretório e através de quais ferramentas, como por exemplo, fazer autenticação, buscar no diretório, modificar dados, etc.
Modelo de segurança: define como a informação no diretório LDAP pode ser protegida de acessos ou modificações não autorizadas. No LDAP, podemos ter vários usuários além do administrador. Na verdade, caso você deseje, o LDAP pode tratar cada registro da DIT como um usuário. Para dizer o que cada usuário terá permissão de fazer (ler ou modificar) e em quais registros ele poderá fazer isso (registros próprios dele ou dos outros), existem as ACLs (Access Control Lists). O modelo de segurança utiliza o TLS (criptografa a comunicação entre cliente e servidor) e a SASL – Simple Authentication and Secutiry Layer (método de negociação seguro de autenticação entre cliente e servidor para provar ao serviço que um cliente é válido).