LDAP: o modelo de informação

Julho 2017

Introdução ao modelo de informação LDA

O modelo de informação do protocolo LDAP define o tipo de dados que podem ser armazenados no diretório LPDA.


Chama-se entrada (entry) o elemento de base do diretório. Cada entrada do diretório LDAP corresponde a um objeto abstrato ou real (ex: uma pessoa, um objeto, parâmetros, etc.). Uma entrada é constituída por diversos objetos.

Um objeto é um conjunto de pares chaves/valores chamados atributos, que permitem definir de maneira única as características do objeto a ser armazenado. Por analogia, com a terminologia objeto fala-se de uma classe de objeto, para designar a estrutura de um objeto, ou seja, o conjunto dos atributos que ele deve comportar. Desta forma, um objeto é uma ‘instanciação’ da classe do objeto, quer dizer, um conjunto de atributos com valores particulares. Instanciação é a ação de instanciar, ou seja, a criação de uma instância, por meio de uma nova variante do material. Veja o quadro abaixo com um exemplo de entrada do diretório:

Atributo Valor de atributo
cn: Pillou Jean-Francois
uid: jfpillou
telephonenumber: 06209937xx
mail: webmaster@commentcamarche.net
jeff@commentcamarche.net

Qual é o esquema do diretório

Chama-se esquema (Directory Schema) o conjunto das definições de objetos e atributos que um servidor LDAP pode gerar, assim como a sua sintaxe. Desta maneira, um diretório pode comportar apenas entradas correspondentes a uma classe de objeto definida no esquema. O esquema é, na realidade, armazenado no diretório em um lugar específico (trata-se, mais exatamente, de uma instância da classe ‘subesquema’).

Graças ao esquema, o diretório pode garantir, de maneira autônoma, a validade dos registros e de sua sintaxe. Quando uma entrada é criada no diretório, este verifica sua conformidade à classe de objeto, fala-se então de esquema de verificação (schema checking).

Como são os atributos das entradas

Cada entrada é constituída por um conjunto de atributos (pares chave/valor) que permite caracterizar o objeto que a entrada define. Distinguem-se habitualmente dois tipos de atributos: os atributos dos usuários que são os atributos que caracterizam o objeto manipulado pelos usuários do diretório (sobrenome, nome, etc.) e os atributos operacionais , que são atributos aos quais só o servidor pode acessar para manipular os dados do diretório (datas de modificação, etc.).

O modelo LDAP permite definir tipos de atributos, ou seja, estabelecer características que permitem defini-los de maneira exata. Desta forma, cada atributo possui uma sintaxe que lhe é própria (a maneira de acordo com a qual o atributo deve ser informado, isto é, o formato dos dados), mas também o modo segundo a qual a comparação deve ser efetuada durante uma busca do diretório (ex: definir se a busca é sensível à quebra, quer dizer, se a busca deverá diferenciar letras minúsculas e maiúsculas). Confira, no quadro abaixo, as principais sintaxes de atributos definidas no protocolo LDAP v3:

Sintaxe de atributo Descrição
binary Atributo constituído por uma espécie de pacote de bytes, ou seja, por um arquivo binário (imagens, vídeos, arquivos, etc.)
boolean Atributo constituído de um booleano (verdadeiro ou falso)
dn Dirigir para um objeto do diretório detectado por seu distinguished name (nome distinto)
Directory string Atributo constituído por uma cadeia de caracteres no formato UTF-8
integer Atributo constituído de um inteiro
telephoneNumber Número de telefone

Veja as principais regras de comparação de atributos definidos pelo padrão LDAP v3:

Regra de comparação LDAPRegra de comparação X500Descrição
cis caseIgnoreMatch Atributo texto não sensível às maiúsculas/minúsculas
ces caseExactMatch Atributo texto sensível às maiúsculas/minúsculas
tel telephoneNumberMatch Atributo de texto que representa um número de telefone (as vírgulas e os espaços são ignorados na busca)
int integerMatch Atributo inteiro (para uma comparação digital)
dn distinguishedName Nome de entrada que permite comparar duas entradas
bin octetStreamMatch Atributo binário. Permite comparar byte por byte
bin booleanMatch Atributo booleano. Permite comparar dois atributos booleanos

Quais são os tipos de atributos predefinidos

O modelo LDAP define um conjunto de classes e atributos padrão que convêm para a maioria dos aplicativos. Estes atributos devem, imperativamente, ser implementados pelos servidores de diretórios LDAP v3. Isto permite uma certa homogeneidade entre os diferentes diretórios.

Veja esta lista dos principais atributos usuários definidos pelo padrão LDAP v3:

AtributoDescrição
aliasedObjectName DN do objeto em andamento, que é um aliás.
authorityRevocationList Lista de certificados revogados pela autoridade encarregada de regulá-los
businessCategory Atividade profissional de uma empresa ou de uma pessoa
c Código do país em duas letras (respeitando o padrão ISO 3166])
caCertificate Certificado da autoridade de regulação
certificatedrevocationlist Lista dos certificados revogados pela autoridade de regulação
cn Nome do objeto (common name)
description Descrição do objeto
distinguishedName Nome distinto (utilizado por outros atributos por herança)
facsimileTelephoneNumber Número de fax
givenName Nome da pessoa
houseIdentifier Identificador de um edifício
initials Iniciais de uma pessoa
internationalSDNNumber Número ISDN
l localidade do objeto (geograficamente falando)
member Nome distinto dos membros
name Nome (utilizado por outros atributos por herança)
o Nome da organização
objectClass Classe de objetos
ou Unidade de organização (ramificação da organização)
owner Nome do proprietário do objeto
postalAddress Endereço postal (sem código postal)
postalCode Código postal
postalOfficeBox Caixa de entrada (postal)
presentationAddress Endereço da rede da apresentação do objeto (geralmente um URL para a apresentação online)
protocolInformation Atributo complementar ao presentationAddress para definir o protocolo a ser utilizado
registeredAddress Endereço postal para envios de correio recomendado e de pacotes
seeAlso DN dos objetos complementares
serialNumber Número de série do objeto
sn Sobrenome da pessoa (surname)
st Estado ou região (state)
street Nome da rua, avenida, etc.
telephoneNumber Número de telefone
telexNumber Número de telex
title Título da pessoa (diferente da função: senhor, senhora, etc.)
uid Identificador único do objeto
userCertificate Certificado do usuário
userPassword Senha do usuário

Quadro com a lista dos principais atributos operacionais definidos pelo padrão LDAP v3:

AtributoDescrição
attributeTypes Lista dos atributos do diretório. Este operador operacional faz parte do esquema de diretório descrito pelo objeto subschema
altServers Lista dos servidores LDAP alternativos em caso de falha deste último.
createTimestamp Contém a data de criação de um objeto, está presente em qualquer objeto. Seu concorrente é único e não pode ser modificado
creatorsName Contém o DN do objeto que serviu para a sua criação e, assim, está presente em qualquer objeto. Seu concorrente é único e ele não pode ser modificado pelo usuário
matchingRules Contém o conjunto das regras de comparação. Este operador faz parte do esquema do diretório descrito pelo objeto subschema
matchingRuleUse Contém o conjunto dos atributos utilizando cada regra de comparação. Esta operação faz parte do esquema do diretório descrito pelo objeto subschema
modifiersName Contém o DN do objeto utilizado para se identificar durante a modificação. Ele está presente em todos os objetos modificados, pelo comando modify. Não pode ser modificado pelo usuário.
modifyTimestamp Contém a data da última modificação do objeto. Os carimbos estão presente em todos os objetos modificados modify. Sua ocorrência é única e não pode ser modificado pelo usuário.
namingContexts Contém o conjunto dos contextos suportados pelo servidor. Sua ocorrência é única e ele não pode ser modificado pelo usuário
objectClasses Contém o conjunto das classes e objetos. Esta operação faz parte do diretório descrito pelo objeto subschema
subschemaSubentry Contém o DN do objeto que contém o diretório (subschema)
supportedControl Contém o conjunto dos OID dos controles complementares adicionados ao diretório
supportedExtensions Contém o conjunto dos OID das extensões complementares (funções de usuários) adicionadas ao diretório
supportedLDAPVersion Contém as versões do protocolo LDAP geradas pelo servidor
supportedSASLMechanisms Contém a lista dos mecanismos SASL suportados pelo diretório LDAP

Como é a estrutura das classes de objetos

Por analogia, com a terminologia do objeto, fala-se de classe do objeto para designar a estrutura de um objeto, ou seja, o conjunto dos atributos que ele deve comportar. Desta forma, dir-se-á que um objeto é uma ‘instanciação’ da classe do objeto, isto é, um conjunto de atributos com valores particulares (Veja mais acima).

Assim sendo, uma classe dos objetos é composta por um conjunto de atributos obrigatórios (que devem ser registrados nos objetos que dele resultam) e, eventualmente, dos facultativos. Existem diversos tipos de classes de objetos, como:

As classes abstratas, que são classes não instanciáveis. São classes que podem ser derivadas, ou seja, que outras classes podem herdar. A classe do objeto de mais alto nível é a classe dita Top da qual toda classe de objeto deriva;

As classes estruturais , que são as classes instanciáveis. Por esse motivo, é possível ter objetos;

As classes auxiliares, que são classes que permitem adicionar atributos facultativos para classes estruturais.

Uma das características mais importantes das classes de objetos LDAP é a possibilidade de utilizar a herança. Assim, a classe de mais alto nível, é a casa Top (original) da qual todas as classes de objetos derivam. No entanto, saiba que, no modelo LDAP somente a herança simples é autorizada (sem herança múltipla), quer dizer que de uma classe Top pode derivar apenas uma classe, embora uma classe derivada possa gerar várias classes ‘filhas’. O exemplo abaixo mostra o princípio de herança LDAP, com algumas classes de objetos padrão:

herança de classes de objetos com LDAP

Os atributos são caracterizados pelo seu nome único; por um objeto identificador (OID) que permite identificá-los de maneira única; por uma sintaxe e regras de comparação; por um identificador de uso e por um formato ou limite de tamanho. Trata-se de utilizar uma série de pares chave/valor que permitam detectar uma entrada de maneira exclusiva. Veja exemplos de séries de chaves muito utilizadas:

UID (userid), trata-se de um identificador único obrigatório;
CN (common name), trata-se o sobrenome da pessoa;
GIVENNAME, trata-se o nome da pessoa;
SN (surname), trata-se do sobrenome da pessoa;
O (organization), trata-se da empresa da pessoa;
U (departamento), trata-se do serviço da empresa na qual a pessoa trabalha;
e-mail, trata-se do endereço de e-mail da pessoa (é óbvio)

Como consultar os dados

O modelo LDAP fornece um conjunto de nove funções básicas (também chamadas de procedimentos ou operações) para efetuar consultas sobre os dados a fim de procurar, alterar e apagar entradas nos diretórios. Geralmente, elas são classificadas em três categorias:


As funções de interrogação: são operações que permitem buscar ou comparar entradas do diretório;

As funções de atualização: são operações que permitem modificar entradas (adição, remoção, modificação e denominação);

As funções de sessão: são operações que permitem abrir uma sessão (se identificar), de fechá-la, assim como cancelar uma pesquisa.

Veja a lista das principais operações que o modelo LDAP pode efetuar:

Operação Descrição
Abandon Abandono da operação enviada ao servidor
Add Adiciona uma entrada no diretório
Bind Inicia uma nova sessão no servidor LDAP
Compare Faz a comparação entre as entradas de um diretório de acordo com certos critérios.
Delete Exclui a entrada de um diretório
Extended Efetua operações expandidas
Rename Modifica o nome de uma entrada
Search Busca entradas de um diretório
Unbind Fecha uma sessão em um servidor LDAP

Qual é o formato de troca de dados LDIF

O modelo LDAP fornece um formato de troca, dito LDIF (Lightweight Data Interchange Format), que permite importar e exportar dados de um diretório com um simples arquivo de texto. A maioria dos servidores LDAP suportam este formato, o que permite uma grande interoperabilidade entre eles.

A sintaxe deste formato é a seguinte:
[<id>] 
dn: <distinguished name>
<atributo>: <valor>
<atributo>: <valor>
...

Neste arquivo id é facultativo, pois trata-se de um inteiro positivo que permite identificar a entrada na base de dados. Cada nova entrada deve ser separada da definição de entrada anterior, com a ajuda de um salto de linha (linha vazia). Pode-se definir um atributo em diversas linhas começando as linhas seguintes com um espaço ou uma tabulação. Também é possível configurar vários valores para um atributo repetindo a cadeia
nome:valor
nas linhas separadas. Quando o valor contém um caractere especial (não imprimível, um espaço ou ‘:’), o atributo deve ser seguido de :: e o valor codificado em base64.

Veja também


LDAP - Le modèle d'information
LDAP - Le modèle d'information
Última modificação: 30 de junho de 2017 às 13:36 por Pedro.CCM.
Este documento, intitulado 'LDAP: o modelo de informação', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.