LDAP - O modelo de informação

Julho 2015
LDAP - O modelo de informação

Introdução ao modelo de informação


O modelo de informação do protocolo LDAP defini o tipo de dados podendo 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 exemple, uma pessoa, objeto material, parâmetros, ...). Uma entrada..) é constituído de diversos objetos.

Um objeto é constituído de um conjunto de pares chaves/valores chamados atributos permitem definir de maneira única as características do objeto a estocar. 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.

Eis 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

O esquema do diretório


Assim chama-se esquema (mais exatamente em inglês Directory Schema) o conjunto das definições de objetos e de atributos que um servidor LDAP pode gerar bem como sua sintaxe.

Desta maneira, um diretório pode comportar somente entradas correspondentes à uma classe de objeto no esquema. O esquema é, com efeito, estocado no diretório em um lugar específico (trata-se, por ser exato, de uma instancia da classe subesque).

Graças ao esquema do diretório pode 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 checking.

s aOtributos 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 (usuário atributos) são os atributos que caracterizam o objeto manipulado por usuários do diretório (sobrenome, nome, ...)
  • Os atributos operacionais (system atributos) são atributos aos quais unicamente o servidor pode acessar a fim de manipular os dados do diretório (datas de modificação, ...)

LDAP permite definir tipos de atributos, quer dizer características que permitem de definir de maneira precisa. Cada atributo possui desta maneira 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 a maneira segundo a qual a comparação deve se efetuar durante uma busca do diretório (por exemplo definir se a busca for sensível à quebra, quer dizer se a busca deverá ser diferenciar minúsculas e maiúsculas).

Eis as principais sintaxes atributos definidas no protocolo LDAP v3 :



| class="ccm"| Atributo constituído por uma sorte de pacote de octetos, quer dizer por um arquivo binário (imagens, vídeos, arquivos,...) |-
sintaxe de atributo descrição
binary
boolean Atributo constituído de um booleano (verdadeiro ou falso)
dn Dirigir para um objeto do diretório detectado por seu distinguished name
Directory string Atributo constituído por uma cadeia de caracteres no formato UTF-8
integrar Atributo constituído de um inteiro
telephoneNumber Numero de telefone



Eis as principais regras de comparação de atributos definidos pelo standard LDAP v3 :


regra de comparação LDAPregra de comparação X500descrição
cis caseIgnoreMatch Atributo texto não sensível à quebra
ces caseExactMatch Atributo texto sensível à quebra
tel telephoneNumberMatch Atributo texto que representa um número de telefone (as vírgulas e os espaços sao ignorados na busca)
int integerMatch Atributo inteiro (para uma comparação digital)
dn distinguishedName Nome de entrada . Permite de comparar duas entradas
bin octetStreamMatch Atributo binário. Permite comparar octeto
bin booleanMatch Atributo booleano. Permite comparar dois atributos booleanos.

Os atributos predefinidos


LDAP defini 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 certa homogeneidade entre os diferentes diretórios.

Eis uma pequena lista não exaustiva dos principais atributos usuários definidos pelo standard LDAP v3:



| class="ccm"| Atividade profissional de uma empresa ou de uma pessoa |-
| class="ccm"| Endereço postal para envios de correio recomendado e de pacotes |-
AtributoDescrição
aliasedObjectName DN do objeto inclusive aquele em curso é um aliás.
authorityRevocationList Lista de certificado revocados pela autoridade encarregado de os
businessCategory
c Código do pais em duas letras (respeitando o standard ISO 3166])
caCertificate Certificado da autoridade de regulação
certificadorevocaçãolista Lista dos certifaciados 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
iniciais Iniciais de uma pessoa
internationalSDNNumber Número ISDN
l localidade do objeto (geograficamente)
membro Distinguished Nome dos membros
name Nome (utilizado por outros atributos; por heranças r por outros atributo 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 Code postal
postalOfficeBox Caixa de entrada (postale) presentationAddress<td class="ccm"> Endereço rede da apresentação do objeto (geralmente uma URL para apresentação online)
protocoloinformação Atributo complementar à presentationAddress padrão definir o protocolo
registeredAddress
seeAlso DN do objeto complementar
serialNumber Número de série do objeto
sn Nome de família da pessoa (surname)
st Estado ou região (state)
street Nome da rua e similar (boulevard, ...)
telephoneNumber Número de telefone
telexNumber Número de telex
title Título da pessoa (diferente de função)
uid Identificador único do objeto
userCertificate Certificado do usuário
userPassword Senha do usuário


Eis uma pequena kista não exaustiva dos principais atributos operacionais definidos pelo standard LDAP v3 :



| class="ccm"| Contém a data de criação de um objeto, e assim está presente no todo objeto. Seu concorrente é único e pode ser modificado |-
AtributoDescrição
atributoetipo Lista dos atributos de diretório. Este operador operacional faz parte do esquema de diretório descrito pelo objeto subesquema
altServers Lista dos servidores LDAP alternativos em caso de estragos deste último.
createTimestamp
creatorsName Contém DN do objeto tendo servido à criação do objeto, e assim está presente em todo o 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 subesquema
matchingRuleUse Contém o conjunto dos atributos utilizando cada regra de comparação. Este operacional faz parte do esquema do diretório descrito pelo objeto subesquema
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. Eles 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 pose ser modificado por um usuário.
objectClasses Contém o conjunto das classes e objetos. Este operador operacional faz parte do diretório descrito pelo objeto subesquema
subschemaSubentry Contém o DN do objeto que contém o diretório (subesquema)
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 usuários) adicionadas ao diretório
supportedLDAPVersion Contém as versões do protocolo protocole LDAP geradas pelo servidor
supportedSASLMechanisms Contém a lista dos mecanismos SASL pelo diretório LDAP

As classes do objeto


Por analogia com a terminologia do objeto fala-se 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.

Uma classe de objetos é assim composta de um conjunto de tributos obrigatórios (que devem ser registrados nos objetos que dele resultam) e eventualmente dos facultativos.

Distinguem-se diversos tipos de classes de objetos :

  • As classes abstratas são classes não instanciáveis. Trata-se de classes que pode, ser derivadas, quer dizer outras classes pode, herdar. A classe do objeto de mais alto nível é a classe top da qual toda classe deriva
  • As classes estruturais são classes instanciáveis. Então, é possível ter objetos.
  • As classes auxiliares são classes que permitem adicionar atributos facultativos para classes estruturais.


Uma das características interessantes das classes de objetos LDAP é a possibilidade em utilizar a herança.
Assim a classe de mais alto nível é a casa top da qual todas as classes de objetos derivam. Com LDAP somente a herança simples é autorizada (então sem herança múltipla), quer dizer que uma classe pode derivar uma só classe, mas uma classe pode ter diversas filhas.

O exemplo seguinte mostra o princípio de herança LDAP com algumas classes de objetos standards:

herança de classes de objetos com LDAP



Os atributos são caracterizados por :

  • seu nome único
  • um Objeto identificador (OID) que permite de identificá-los de maneira única
  • uma sintaxe e regras de comparação
  • um identificador de uso
  • um formato ou um limite de tamanho


Trata-se de utilizar uma série de pares chave/valor que permitam detectar uma entrada de maneira única. Eis uma série de chaves geralmente utilizadas :
  • uid (userid), trata-se de umidentificador único obrigatório
  • cn (common name), trata-se do sobrenome da pessoa
  • givenname, trata-se do nome da pessoa
  • sn (surname), trata-se do nome da pessoa
  • o (organization), trata-se da empresa da pessoa
  • u (organização), trata-se do serviço da empresa na qual a pessoa trabalha
  • mail, trata-se do endereço de correio eletrônico da pessoa (é claro)
  • ...

Consultar os dados


LDAP fornece um conjunto de nove funções (chamadas às vezes procedimentos ou operações) de base para efetuar solicitações sobre os dados para buscar, modificam apagar entradas nos diretórios.

As operações 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 de (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 9se identificar), de fechá-la bem como anular uma solicitação.


Eis a lista das principais operações que LDAP pode efetuar:



| class="ccm"| Suprime uma entrada de um diretório |-
Operação Descrição
Abandono Abandono da operação precedentemente enviadas ao servidor
Add Adição de uma entrada ao diretório
Bind Inicia uma nova sessão sobre o servidor
Compara Compara as entradas de um diretório de acordo com os critérios.
Delete
Extended Efectua operações expandidas
Rename Modifica o nome de uma entrada
Search Busca entradas de um diretório
Unbind Termina uma sessão em um servidor LDAP

O formato de uma troca de dados LDIF


LDAP fornece um formato de troca (LDIF, 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> 
...

Neste arquivo id é facultativo , 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 um salto de linha (linha vazia )
  • É 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
Para uma leitura offline, é possível baixar gratuitamente este artigo no formato PDF:
Ldap-o-modelo-de-informacao .pdf

Veja também

Este documento, intitulado « LDAP - O modelo de informação  »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.