O que é LDAP e como ele funciona?

Steve Manjaly Março 5, 2024
- 7 min read

O LDAP ou Lightweight Directory Access Protocol é um dos protocolos mais antigos e populares usados para recuperar informações de serviços de diretório, autenticar usuários e criar aplicativos que não se comparam em termos de segurança ou velocidade. É um dos protocolos para gerenciar ativos e dados em uma rede e fornece acesso seguro a eles. 

Então, o que é LDAP? Como ele funciona? Quais são algumas das práticas recomendadas ao usar o protocolo LDAP? Vamos dar uma olhada. 

O que é o protocolo LDAP?

O LDAP é um dos principais protocolos para o desenvolvimento de aplicativos da Internet. O protocolo foi projetado para acessar e manter serviços de diretório pela Internet. 

O DLAP é uma alternativa ao protocolo de acesso a diretórios (DAP) criado por volta de 1993. O DAP era comumente usado para acessar os serviços de diretório X.500 usando a pilha OSI, mas descobriu-se que isso exigia muita rede e hardware. O protocolo LDAP foi desenvolvido para ser uma versão leve que exigia menos largura de banda de rede e utilizava a pilha TCP/IP.

Existem três versões do protocolo LDAP. A versão mais recente é o LDAP V3, que adiciona autenticação mais forte e segurança de dados ao integrar a camada de autenticação e segurança simples. O LDAPv3 também adicionou extensibilidade ao protocolo. 

A maioria dos serviços de diretório de fornecedores oferece suporte ao LDAP, que atua apenas como a linguagem com a qual os usuários podem acessar informações do diretório. 

O protocolo não sincroniza entre o usuário (cliente) e os usuários do servidor. O protocoloLDAP não especifica quando ou em que ordem o servidor retorna as respostas às consultas. E o cliente não precisa esperar por uma resposta antes de enviar outra pergunta. 

Quais são os diferentes tipos de dados que podem ser acessados usando o LDAP?

Um servidor de diretório LDAP segue uma configuração de árvore. Cada entrada pode ter vários atributos, cada um com sua identificação de objeto. 

Os dados armazenados podem ser:

  • Descritivos (com vários pontos de dados como: nome, data, local, etc., para definir um ativo).
  • Estático (não há muita mudança nesses dados, apenas pequenas mudanças de vez em quando. Também podem ser dados comerciais valiosos que podem ser acessados e alterados com frequência). 

O esquema de diretório define esses conteúdos, o que explica como armazenar todos os dados e as regras que regem como eles são armazenados. Ele define regras relacionadas a atributos e identificadores de objetos e compara com diferentes valores de recursos para tipos de atributos específicos. 

Elementos armazenados no diretório de dados

O primeiro elemento é a entrada, que pode ser o nome do usuário, um recurso e um bloco no banco de dados. Você pode imaginar isso como os nomes em sua agenda de endereços; cada termo e seu número de telefone, número da casa, ID de e-mail etc. Cada entrada se refere ao seu identificador exclusivo chamado Distinguished Name ou DN, que identifica a posição da entrada na árvore.

O próximo elemento é o atributo. Os atributos são anexados às entradas, e cada uma pode ter mais de um atributo. Há diferentes tipos de atributos, conforme definido no esquema, e todos esses tipos de atributos têm um identificador de objeto.

O próximo elemento é a classe de objeto. A classe de objeto é uma coleção de atributos e indica o tipo de objeto. Por exemplo, você pode definir uma classe de objeto para pessoas, que pode ter atributos como idade, sexo, ID de e-mail etc., ou pode especificar uma para impressoras, que pode ter atributos como data de compra, nome do fabricante etc. Cada entrada tem uma classe de objeto.

Como funciona o processo LDAP?

O processo é relativamente simples; o cliente se conecta ao servidor por meio de TCP e porta UDP 389 ou à porta636 para LDAP sobre SSL/TLC. O cliente envia uma consulta ao servidor, e o servidor envia uma resposta de volta. Uma vez concluída, a conexão termina.

Antes que o cliente possa executar operações no servidor, ele deve se autenticar. No método mais direto, é realizada uma operação BIND, em que o cliente envia seu nome de usuário e senha para o servidor, e o servidor os verifica. Mas com a v3, você pode optar por uma implementação que use a autenticação SASL. 

O protocolo LDAP envia todas as comunicações entre o cliente, o servidor e terceiros em texto simples.

Existem muitas operações que os clientes podem executar usando o LDAP. Descrevemos algumas delas abaixo. 

Operações LDAP 

  • Add: A operação adiciona um novo registro ao banco de dados do diretório. O servidor não permite entradas duplicadas. Em vez disso, envia uma notificação "name already exists" se você tentar adicionar um novo item com um nome já existente no diretório. 

  • Ligação: Como discutido acima, a operação BIND autentica um cliente com o servidor LDAP. 

  • Delete: A solicitação de exclusão exclui uma entrada. Mas, na maioria dos casos, essa operação exclui apenas as entradas sem nenhum subordinado. 

  • Pesquisa e comparação: A operação faz o que o nome sugere. Você pode definir vários parâmetros para essa operação, como onde pesquisar e outros filtros.

  • Modificar: A operação de modificação altera as entradas existentes. Além dessas, algumas funções estendidas não faziam parte da especificação original. 

  • StartTLS: Com essa ferramenta, iniciamos a segurança TLS na conexão para a segurança dos dados. 

  • Abandon: Usado para abandonar uma solicitação específica enviada ao servidor.

  • Unbind: Unbind não está relacionado às operações BIND: ele fecha a conexão. Ele permite que o servidor saiba que o cliente não está mais interessado e que ele pode realocar seus recursos em outro lugar.

Qual é a diferença entre o Active Directory e o LDAP?

O Active Directory é um serviço de diretório da Microsoft para redes de domínio do Windows. Ele armazena informações sobre vários dispositivos e outros ativos na Web, e os administradores o utilizam para gerenciar as permissões e o acesso aos ativos da rede. O Active Directory armazena informações como objetos e seus atributos.

O Active Directory usa o LDAP como um dos protocolos e outros protocolos como DNS e Kerberos. O Kerberos ajuda na autenticação e o LDAP recupera informações. O serviço de diretório usa o DNS para localizar os controladores de domínio do Active Directory (os servidores que executam o serviço de domínio do Active Directory).

O DLAP não se limita apenas ao active directory. Podemos usá-lo com qualquer outro serviço de diretório de diferentes fornecedores que o suportem. 

Melhores práticas para usar o protocolo LDAP

O protocolo LDAP envia toda a comunicação entre o cliente, o servidor e terceiros em texto simples. Qualquer pessoa pode acessar todas essas informações. A criptografia com TLS no LDAP não será suficiente. Portanto, é essencial ativar a criptografia com TLS no LDAP, pois o SSL não será suficiente. A melhor solução é configurar os servidores LDAP para que eles não aceitem operações antes de StartTLS. 

Também é vital higienizar as entradas do usuário ou as consultas LDAP antes de passá-las para o servidor. Os ataques de injeção de LDAP são uma vulnerabilidade conhecida, e os invasores podem ser capazes de ignorar a autenticação, acessar informações confidenciais e até mesmo modificá-las.

Também é importante seguir outros princípios de segurança, como nunca reutilizar identificadores, usar um gerenciador de senhas, fazer hashing das senhas e nunca armazená-las em texto simples. 

Glossário de termos usados com o protocolo LDAP

Aqui estão alguns dos outros termos usados em associação com o protocolo. 

  • DIT: Uma estrutura hierárquica para representar entradas usando seu nome distinto. 

  • Alias: Uma entrada na DIT que se refere a outra entrada. 

  • Dereferenciamento: Seguir um alias para encontrar a entrada. 

  • Agente de servidor de diretório: É um aplicativo que usa LDAP para acessar dados de diretório por um cliente. 

  • RDN: RDN ou Relative Distinguished Name refere-se a qualquer nome de atributo e par de valores. Um DN geralmente é composto de um ou mais RDNs. 

  • SASL: SASL ou Simple Authentication Security Layer integra outros mecanismos de autenticação, como o Kerberos, que não estão diretamente incorporados ao protocolo.

Perguntas frequentes

Quando você pode usar o LDAP?

O LDAP é normalmente usado para recuperar informações de serviços de diretório e autenticar usuários antes de permitir que eles acessem as informações armazenadas. Ele é útil em situações em que você deseja fazer pesquisas de alta velocidade em grandes bancos de dados que contêm pequenas partes de dados. O protocolo é otimizado para ser bom na leitura de dados em troca de velocidades de gravação, portanto, se você atualiza os dados com frequência, o LDAP pode não ser a melhor opção.

Qual é a diferença entre LDAP e SSO?

O LDAP é um protocolo que armazena e recupera dados rapidamente. Os dados são armazenados como entradas, atributos e valores de atributos. O protocolo gerencia o acesso aos ativos de rede. 

SSO ou logon único é qualquer sistema que permite que os usuários acessem vários sistemas com uma única autenticação. 

OLDAP ajuda com o logon único, mas essa não é sua única finalidade. 

Qual é a diferença entre LDAP e Kerberos?

O LDAP armazena e localiza informações sobre vários objetos, como pessoas ou ativos de rede. Ele gerencia o acesso a diferentes ativos em uma rede.

Kerberos é um protocolo para autenticar clientes e servidores usando uma chave criptográfica secreta. O Kerberos é frequentemente usado como um método de autenticação em vez da autenticação LDAP ao usar o protocolo LDAP.