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.
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.