O LDAP (Lightweight Directory Access Protocol, traduzir como Protocolo de acesso aos diretórios ligeiro e pronunciar "èl-dap") é um protocolo standard que permite gerenciar diretórios, quer dizer, acessar a bases de informações sobre os usuários de uma rede através de protocolos TCP/IP.
As bases de informações são geralmente relativas a usuários, mas às vezes são utilizadas para outros fins como gerenciar material numa empresa.
O protocolo LDAP, desenvolvido em 1993 pela Universidade do Michigan, tinha por objetivo suplantar o protocolo DAP (que serve para acessar ao serviço de diretório X.500 do OSI). A partir de 1995, o LDAP tornou-se um diretório nativo (standalone LDAP), para não servir unicamente para acessar diretórios de tipo X500. O LDAP é assim uma versão aligeirada do protocolo DAP, daí o seu nome Lightweight Directory Acess Protocol.
O protocolo LDAP define o método de acesso aos dados no servidor ao nível do cliente, e não a maneira como as informações são armazenadas.
O protocolo LDAP está actualmente na versão 3 e foi normalizado pelo IETF (Internet Engineering Task Force). Assim, existe um RFC para cada versão de LDAP, constituindo um documento de referência :
Por outro lado, o protocolo LDAP (na sua versão 3) propõe mecanismos de codificação (SSL,...) e de autenticação (SASL) que permitem proteger o acesso às informações armazenadas na base.
O LDAP apresenta as informações sob a forma de uma arborescência de informações hierárquica chamada DIT (Directory Information Tree), na qual as informações, chamadas entradas (ou ainda DSE, Directory Service Entry), são representadas sob a forma de ramos.
Um ramo situado na raiz de uma ramificação chama-se raiz ou sufixo (em inglês root entry).
Cada entrada do diretório LDAP corresponde a um objeto abstrato ou real (por exemplo uma pessoa, um objeto material, parâmetros,...).
Cada entrada é constituída por um conjunto de pares chave/valor chamados atributos.

Cada entrada é constituída por um conjunto de atributos (pares chave/valor) que permitem caracterizar o objeto que a entrada define. Existem dois tipos de atributos:
Uma entrada é indexada por um nome distinto (DN, distinguished name) que permite identificar de maneira única um elemento da arborescência.
Um DN constrói-se tomando o nome do elemento, chamado Relative Distinguished Name (RDN, isto é, o caminho da entrada em relação a um dos seus parentes), e acrescentando-lhe o conjunto do nome das entradas parentescos.
Trata-se de utilizar uma série de pares chave/valor que permite localizar uma entrada de maneira única. Eis uma série de chaves geralmente utilizadas:
uid=jeapil,cn=pillou,givenname=jean-francois
Assim, chama-se esquema ao conjunto das definições de objetos e de atributos que um servidor LDAP pode gerenciar. Isto permite por exemplo, definir se um atributo poder possuir um ou vários valores. Por outro lado, um atributo chamado objectclass permite definir os atributos obrigatórios ou facultativos...
O LDAP fornece um conjunto de funções (procedimentos) para efetuar pedidos sobre os dados, a fim de procurar, alterar, apagar entradas nos diretórios.
Eis a lista das principais operações que o LDAP pode efetuar :
| Operação | Descrição |
|---|---|
| Abandon | Abandona a operação previamente enviada ao servidor |
| Add | Acrescenta uma entrada ao diretório |
| Bind | Inicia uma nova sessão no servidor LDAP |
| Compare | Compara as entradas de um diretório de acordo com critérios |
| Delete | Suprime uma entrada de um diretório |
| Extended | Efectua operações vastas |
| Rename | Altera o nome de uma entrada |
| Search | Procura entradas num diretório |
| Unbind | Terminauma sessão no servidor LDAP |
O LDAP fornece um formato de troca (LDIF, Lightweight Data Interchange Format) que permite importar e exportar os dados de um diretório com um simples ficheiro texto. A maioria dos servidores LDAP suporta este formato, que permite uma grande interoperabilidade entre eles.
A sintaxe deste formato é a seguinte:
[<id>] dn: <distinguished name> <attribut> : <valeur> <attribut> : <valeur> ...
<sample>