LDAP

sigla

redessegurançaSuporte de TI

Significa: Lightweight Directory Access Protocol

O protocolo para consultar e modificar serviços de diretório como o Active Directory.

Protocolo Leve de Acesso a Diretórios (do inglês Lightweight Directory Access Protocol, RFC 4511) lê e grava dados hierárquicos de diretório - usuários, grupos, atributos. É central para autenticação e identidade corporativas. A RFC 4511 (junho de 2006, editada por Sermersheim, da Novell, trilha de padrão, tornando obsoleta a RFC 2251) define o protocolo como um conjunto de operações carregadas como mensagens codificadas em ASN.1 BER, mapeadas diretamente sobre o fluxo de bytes do TCP, na porta 389 atribuída pela IANA: Bind, Unbind, Search, Modify, Add, Delete, ModifyDN, Compare, Abandon, Extended e IntermediateResponse. Um Bind é autenticação, com uma escolha simples que envia uma senha em texto claro ou um mecanismo SASL; a operação estendida StartTLS, identificada pelo OID 1.3.6.1.4.1.1466.20037, eleva a conexão a TLS, e o LDAPS a embrulha em TLS desde o primeiro byte. Um Search é uma entrada base, um escopo, um filtro e uma lista de atributos a devolver, e a gramática do filtro é a parte que derrota as pessoas. O protocolo é como as aplicações perguntam quem é alguém e a que grupos pertence, como servidores RADIUS e de autenticação web verificam senhas e como a árvore de um diretório é lida por qualquer coisa que precise da forma de uma organização.

O LDAP é como as aplicações perguntam a um diretório quem é alguém e a que grupos pertence, e é bem anterior aos protocolos de identidade que se apoiam nele. O Active Directory o fala, a maioria dos diretórios corporativos o fala, e uma quantidade surpreendente de autenticação ainda termina numa consulta LDAP. A especificação atual é a RFC 4511, publicada em junho de 2006, editada por Sermersheim, da Novell, como documento em trilha de padrão tornando obsoleta a RFC 2251, e ela descreve um protocolo de onze operações: Bind, Unbind, Search, Modify, Add, Delete, ModifyDN, Compare, Abandon e Extended, mais o IntermediateResponse que deixa uma operação longa relatar progresso. Cada uma é uma LDAPMessage codificada nas Basic Encoding Rules do ASN.1, e a RFC especifica que as PDUs codificadas são mapeadas diretamente sobre o fluxo de bytes do TCP; a porta atribuída pela IANA é a 389.

O modelo pega as pessoas de surpresa porque é hierárquico e não relacional. As entradas vivem numa árvore, identificadas por um nome distinto que se lê do específico para o geral, e as consultas são filtros em notação prefixa com uma gramática própria entre parênteses. Escrever um corretamente de primeira é incomum, e um filtro apenas errado, em vez de malformado, devolve os usuários errados em silêncio. Um Search carrega um objeto base de onde partir, um escopo que diz se olhar só a base, um nível abaixo ou a subárvore inteira, o filtro e a lista de atributos desejados; a ferramenta de explicação de filtros LDAP deste site existe porque o filtro é onde o tempo vai.

Dois detalhes operacionais causam a maioria dos incidentes. Um bind é autenticação, e um bind anônimo ou sem privilégio pode ter sucesso e devolver bem menos do que o esperado, o que parece dado faltando e não permissão faltando. O AuthenticationChoice da operação Bind é ou simple, em que a senha vai em texto claro dentro da mensagem, ou sasl, que nomeia um mecanismo; senhas são strings UTF-8. E o LDAP puro não é cifrado, então credenciais cruzam a rede em claro a menos que LDAPS ou StartTLS esteja em uso, e é por isso que o tráfego de diretório é um apontamento recorrente em revisões de segurança. A RFC 4511 define o StartTLS como uma operação estendida, com o identificador de objeto 1.3.6.1.4.1.1466.20037, que eleva uma conexão existente na porta 389 a TLS; o LDAPS, TLS desde o primeiro byte em porta própria, é o outro caminho, e o verbete LDAPS cobre a diferença.

No mundo do AAA o LDAP é a retaguarda, não a frente. Um servidor RADIUS que recebe uma troca EAP-TTLS/PAP ou um login de autenticação web verifica a senha com um Bind como aquele usuário, ou a compara com um atributo; um motor de política lê a filiação a grupos com um Search para decidir que VLAN ou papel devolver; uma aplicação web mapeia um login a uma pessoa por um Search num atributo identificador. O esquema do diretório, suas convenções de nomes e seus controles de acesso moldam, portanto, toda autorização construída em cima, e uma mudança em qualquer um deles aparece como falhas de autenticação em sistemas que nunca mencionam LDAP no nome.

O material companheiro carrega o detalhe: o artigo de fundamentos de LDAP para a árvore e as operações, o artigo sobre filtros de busca LDAP e a ferramenta de explicação de filtros para a gramática, e o verbete Active Directory para o diretório que a maioria das empresas de fato roda atrás do protocolo.

Também conhecido como: ldap, tcp 389, directory protocol, bind, distinguished name

← Todos os verbetes do glossário