LDAP - O modelo de informação

Abril 2017

O que é o modelo de informação LDA

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


Chama-se entrada (em inglês entry) o elemento de base do diretório. Cada entrada do diretório LDAP corresponde a um objeto abstrato ou real (por exemplo, uma pessoa, objeto material, parâmetros, etc.) e, é 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 armazenar. Por analogia com a terminologia do objeto fala-se de uma ‘classe de objetos’, quer dizer o conjunto dos atributos que ele deve comportar. De qualquer 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 (em inglês Directory Schema) o conjunto de definições de objetos e atributos que um servidor LDAP pode gerar, bem como, a sua sintaxe. Desta maneira, um diretório pode comportar somente entradas correspondentes à uma classe de objeto no esquema. O esquema é, assim, armazenado no diretório em um lugar específico (trata-se, para sermos exatos, de uma instância da classe ‘subesquema’).

Graças ao esquema do diretório pode-se garantir, de maneira autônoma, a validade dos registros e de sua sintaxe. Quando uma entrada for criada no diretório, este verifica sua conformidade à classe de objetos, fala-se então de esquema de verificação (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 bem como a entrada definida. Distinguem-se habitualmente dois tipos de atributos: os atributos usuário que são os atributos que caracterizam o objeto manipulado pelo usuários do diretório (sobrenome, nome, etc...) e os atributos operacionais que são atributos aos quais é o único servidor que pode acessar para manipular os dados do diretório (datas de modificação, etc...).

O modelo LDAP permite definir tipos de atributos, quer dizer, estabelecer características que permitem defini-los de maneira exata. Cada atributo possui, desta forma, uma sintaxe que lhe é própria (a maneira de acordo com a qual o atributo deve ser informado, quer dizer, o formato dos dados), mas também o modo segundo a qual a comparação deve ser efetuada durante uma busca do diretório (por exemplo 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
binaria Atributo constituído por uma espécie de pacote de bites, quer dizer, por um arquivo binário (imagens, vídeos, arquivos,...)
booleano (dado primitivo que possui dois valores, que podem ser considerados como 0 ou 1) Atributo constituído de um booleano (verdadeiro ou falso)
dn Dirigir para um objeto do diretório detectado por seu distinguished name (nome distinguido)
Directory string (Sequência de diretório) Atributo constituído por uma cadeia de caracteres no formato UTF-8
integrar Atributo constituído de um inteiro
telephoneNumber Número de telefone


As principais regras de comparação de atributos definidos pelo standard LDAP v3 são:


Regra de comparação LDAPRegra de comparação X500Descrição
CIS caseIgnoreMatch (ignora a quebra) Atributo texto não sensível à quebra
CES caseExactMatch (observa a quebra) Atributo texto sensível à quebra
TEL telephoneNumberMatch Atributo 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 ver e comparar bites
BIN booleanMatch Atributo booleano. Permite comparar dois atributos booleanos.

Quais são os tipos de atributos predefinidos

O modelo LDAP define classes e tributos padrão que convém para a maioria das aplicações. 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, embora não exaustiva, dos principais atributos usuários definidos pelo padrão LDAP v3:

AtributoDescrição
AliasedObjectName (aliases do nome do objeto) DN do objeto inclusive aquele em andamento, é um aliás.
AuthorityRevocationList (Lista de revogação de autoridade) Lista de certificado revocados pela autoridade encarregado de sistemas operacionais
BusinessCategory Categoria de negócio) 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 revocados pela autoridade de regulação
CN Nome do objeto (common name)
Descrição Descrição do objeto
DistinguishedName Nome distinguido (utilizado por outros atributos por herança)
FacsimileTelephoneNumber Número de fax
GivenName Nome da pessoa
houseIdentifier Identificador de um grupo
Initials (Iniciais) Iniciais de uma pessoa
InternationalSDNNumber Número ISDN
l localidade do objeto (geograficamente falando)
Member (Membro) Distinguished Nome dos membros
Name (Nome) Nome (utilizado por outros atributos, por heranças ou por outros atributos por herança.
O (Organização) Nome da organização
objectClass Classe do objeto) Classe de objetos
ou Unidade de organização (ramificação da organização)
owner (Próprio) Nome do proprietário do objeto
PostalAddress (Endereço postal) Endereço postal (sem código postal)
PostalCode (Código postal) Código postal
PostalOfficeBox (Caixa de entrada) Caixa de entrada (postal)
PresentationAddress (Apresentação do endereço) Endereço da rede de apresentação do objeto (geralmente um URL)
ProtocolInformation (Protocolo de informação) Atributo complementar (presentationAddress) padrão para definir o protocolo
RegisteredAddress (Endereço registrado) Endereço postal para envios de correio recomendado e de pacotes
seeAlso (Ver também) DN do objeto complementar
serialNumber (Número de série Número de série do objeto
sn - Surname (Sobrenome) Nome de família da pessoa
st State) (Estado ou região) Estado ou região
street (rua) Nome da rua e similar
telephoneNumber (Número de telefone) Número de telefone
telexNumber Número de Fax ou telex) Número de telex
title (Título) Título da pessoa (diferente de função – senhor, Senhora, etc...)
uid (Identificador exclusivo) Identificador único do objeto
userCertificate (Certificado do usuário) Certificado do usuário
userPassword (senha do usuário) Senha do usuário


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


AtributoDescrição
attributeTypes (atributo e tipo) Lista dos atributos de diretório. Este operador operacional faz parte do esquema de diretório descrito pelo objeto ‘subesquema’
altServers (Servidores) Lista dos servidores LDAP alternativos em caso de avaria deste último.
createTimestamp (Carimbo da data de criação) 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 (Nome do criador) Contém o DN do objeto tendo servido à sua criação e, assim está presente em qualquer objeto. Seu concorrente é único e ele não pode ser modificado pelo usuário
matchingRules (Regras de correspondência) Contém o conjunto das regras de comparação. Este operador faz parte do esquema do diretório descrito pelo objeto ‘subesquema’
matchingRuleUse (Uso da regra de correspondência) Contém o conjunto dos tributos utilizando cada regra de comparação. Esta operação faz parte do esquema do diretório descrito pelo objeto ‘subesquema’
modifiersName (modificar o nome) Contém o DN do objeto utilizado para a identificação durante a modificação. Ele está presente em todos os objetos modificados, pelo comando modify. Não pode ser modificado pelo usuário.
modifyTimestamp (Modificação do carimbo da data/hora) 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 (Contextos de nomeação) Contém o conjunto dos contextos suportados pelo servidor. Sua ocorrência é única e ele pose ser modificado por um usuário.
objectClasses (Classes de objetos) Contém o conjunto das classes e objetos. Esta operação faz parte do diretório descrito pelo objeto ‘subesquema’
subschemaSubentry (Sub entrada de um sub esquema) Contém o DN do objeto que contém o diretório (‘subesquema’)
supportedControl (Controle suportado) Contém o conjunto dos OID dos controles complementares adicionados ao diretório
supportedExtensions (extensões suportadas) Contém o conjunto dos OID das extensões complementares (funções usuários) adicionadas ao diretório
supportedLDAPVersion (Versão LDAP suportada) Contém as versões do protocolo protocole LDAP geradas pelo servidor
supportedSASLMechanisms (mecanismos SASL suportados) Contém a lista dos mecanismos SASL pelo diretório LDAP

Como é a estrutura da classe dos objetos

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

Uma classe dos objetos é, assim, composta de um conjunto de tributos obrigatórios (que devem ser registrados nos objetos que dele resultam) e eventualmente dos facultativos. Existem diversos tipos de classes de objetos, vejamos quais são elas:

As classes abstratas são classes não instanciáveis. Trata-se de classes que podem ser derivadas, quer dizer, outras classes podem ser herdadas. A classe do objeto de mais alto nível é a classe dita Top da qual toda classe deriva.

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

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

Uma das características mais importantes das classes de objetos LDAP é exatamente a possibilidade em 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 somente uma classe, embora uma classe derivada pode 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 seguidamente utilizadas:

UID (userid), trata-se de um identificador único obrigatório
CN (common name), trata-se do sobrenome da pessoa
GIVENNAME (Primeiro nome da pessoa), trata-se do nome da pessoa
SN (surname</), trata-se do nome da pessoa
O (organization), trata-se da empresa da pessoa
U (Departamento), trata-se do serviço da empresa na qual a pessoa trabalha
MAIL (Correio), trata-se do endereço de correio eletrônico da pessoa (é claro)

Como consultar os dados

O modelo LDAP fornece um conjunto de nove funções (chamadas às vezes de procedimentos ou operações) de base para executar solicitações de dados buscados. Essas operações modificam e apagam entradas nos diretórios. Elas são, geralmente, classificadas em três categorias:


As funções de interrogação: trata-se das operações que permitem buscar ou comparar entradas de diretório (busca, comparação).

As funções de atualização: trata-se das operações que permitem modificar entradas (adição, supressão, modificação, denominação).

As funções de sessão: trata-se das operações que permitem abrir uma sessão, ou seja, identificar-se), de fechá-la, bem como, anular uma solicitação. Confira a lista das principais operações que o modelo LDAP pode efetuar:


Operação Descrição
Abandon (Abandono) Abandono da operação precedentemente enviadas ao servidor
Add (Adição) Adição de uma entrada no diretório
Bind (Ligar, iniciar) Inicia uma nova sessão sobre o servidor
Compare (Compara) Compara todas as entradas de um diretório de acordo com os critérios.
Delete (Suprimir Suprime uma entrada de um diretório
Extended (Expandir) Efetua operações expandidas
Rename (Renomear) Modifica o nome de uma entrada
Search (pesquisa) Busca entradas de um diretório
Unbind (terminar, desligar) Termina uma sessão em um servidor LDAP

Qual é o formato de compartilhamento de dados LDIF

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

A sintaxe deste formato é a seguinte:

[<id>] 
dn: <distinguished name>
<atributo> : <valor>
<atributo> : <valor>
...

Observe que:

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 precedente, com a ajuda de uma linha vazia, dito, salto de linha;

É possível definir um atributo em diversas linhas ao começar pelas seguintes linhas por um espaço ou uma tabulação;

É possível definir diversos valores por 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 ‘::’ pois o valor é codificado em base64.

Veja também


LDAP - Le modèle d'information
LDAP - Le modèle d'information
Última modificação: 24 de abril de 2017 às 12:08 por ninha25.
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.