Formato de Permuta de Dados de LDAP

O Formato de Permuta de Dados de LDAP (LDIF) fornece-lhe uma forma simples de transferir informações do diretório entre servidores de diretório de LDAP. Os arquivos de LDIF guardam entradas do diretório de LDAP num formato de texto simples.  O formato dos arquivos de LDIF utilizados pelo servidor de diretórios foi alterado ligeiramente, a partir da V4R5 do Directory Services.  Os arquivos de LDIF são constituídos por uma sequência de linhas que descreve uma entrada de diretório ou um conjunto de alterações feitas numa entrada de diretório.  Não pode descrever ambas.

O formato geral de uma entrada de LDIF é o seguinte:

versão: 1
dn: nome distinto
attrtype1: valoratrib1
...
 

em que:

  • versão mostra a versão do formato do arquivo de LDIF.  O número da versão tem de ser "1".  Se o número da versão estiver ausente, o arquivo de LDIF é considerado como um formato de arquivo de LDIF mais antigo.  Quando o arquivo de LDIF tem a versão 1, o conteúdo TEM de ser em código UTF-8.
  • nome distinto é o nome distinto da entrada de diretório
  • attrtype1 é um tipo de atributo de LDAP (como, por exemplo, nc ou uo)
  • valoratrib1 é o valor do atributo

Cada entrada pode ter vários atributos.  Cada atributo aparece numa linha em separado.  Se o valor de um atributo ocupar mais do que uma linha, pode continuar na linha seguinte e é precedido de um espaço em branco ou de uma tabulação.

As linhas em branco separam múltiplas entradas do mesmo arquivo de LDIF.  Qualquer linha que comece com um cardinal ("#") é uma linha de comentário e deve ser ignorada quando analisar um arquivo de LDIF.

Qualquer nome distinto ou valor de atributo que satisfaça uma das seguintes condições devem ser codificados em base64:

  • Contém retornos na linha ou mudanças de linha.
  • Começa com dois pontos (":"), ESPAÇO, ou menos que ("<").
  • Termina com um espaço.

Os atributos codificados em base64 são designados através da utilização de dois pontos entre o nome de atributo e o valor.

As referências externas estão no arquivo:// formato URL.  Deve haver dois pontos e menos que (":<") entre o tipo de atributo e o valor de referência externa.

Eis alguns exemplos de arquivos de LDIF:

Exemplo 1: Um arquivo de LDAP simples com duas entradas

versão: 1
   dn: nc=Bárbara Jorge, uo=Rio de Janeiro, e=Grande Empresa, p=PO
   classe do objeto: topo
   classe do objeto: pessoa
classe do objeto: organizationalPerson
   cn: Bárbara Jorge
   cn: Bárbara J Jorge
   cn: Babs Jorge
ap: Jorge
   uid: bjorge
   número de telefone: +55 21 855 1212
   descrição: Uma grande adepta da vela.
 
   dn: cn=Bernardo Jorge, ou=Sao Paulo, o=Grande Empresa, c=PO
   classe do objeto: topo
   classe do objeto: pessoa
classe do objeto: organizationalPerson
   cn: Bernardo Jorge
ap: Jorge
   número de telefone: +55 11 855 1212
   descrição:Babs é uma grande adepta da vela e viaja bastante por mar
    condições perfeitas para a prática da vela.
   título:Gestor de Produto, Divisão Audiovisual

Exemplo 2: Um arquivo que contém um valor codificado em base64

versão: 1
   dn: cn=Guilherme Jorge, ou=Rio de Janeiro, o=Grande Empresa, c=PO
   classe do objeto: topo
   classe do objeto: pessoa
classe do objeto: organizationalPerson
   cn: Guilherme Jorge
   cn: Guilherme Jorge
ap: Jorge
   uid: gernj
   número de telefone: +55 21 855 1212
   descrição:: V2hhdCBhIGNhcmVmdWwgcmVhZGVyIHlvdSBhcmUhICBUaGlzIHZhbHVlIGlzIGJ
    hc2UtNjQtZW5jb2RlZCBiZWNhdXNlIGl0IGhhcyBhIGNvbnRyb2wgY2hhcmFjdGVyIGluIGl0ICh
    hIENSKS4NICBCeSB0aGUgd2F5LCB5b3Ugc2hvdWxkIHJlYWxseSBnZXQgb3V0IG1vcmUu

Exemplo 3: Um arquivo que contém uma série de registos de alterações e comentários

Nota: Os arquivos de LDIF com registos de alterações não podem ser importados diretamente para o servidor. Contudo, são suportados pelas funções de interface de LDAP.

versão: 1
   # Adicionar uma nova entrada
   dn: cn=Filipa Jorge, ou=Porto, o=Grande Empresa, c=PT
   alterartipo: adicionar
   classe do objeto: topo
   classe do objeto: pessoa
classe do objeto: organizationalPerson
   cn: Filipa Jorge
ap: Jorge
   uid: filipa
   número de telefone: +351 21 855 1212
   jpegphoto:< arquivo:///usr/local/directory/photos/filipa.jpg
 
   # Eliminar uma entrada existente
   dn: cn=Ricardo Jorge, ou=Porto, o=Grande Empresa, c=PT
alterartipo: eliminar
 
   # Modificar o nome distinto relativo de uma entrada
   dn: cn=Paulo Jorge, ou=Porto, o=Grande Empresa, c=PT
   alterartipo: modrdn
   newrdn: cn=Paula Jorge
   deleteoldrdn: 1

A ordem das entradas no arquivo de LDIF é importante.  Para adicionar com êxito uma entrada que seja especificada no arquivo de LDIF a um diretório de LDAP, primeiro, a respectiva entrada ascendente tem de existir no espaço de nome do diretório.  No exemplo anterior, não seria possível adicionar a segunda nem a terceira entradas se a primeira entrada não existisse.

Igualmente, para importar um arquivo de LDIF para um servidor que suporta certos sufixos, o arquivo de LDIF tem de ter entradas para aqueles sufixos.  Por exemplo, se o seu servidor tivesse o sufixo ou=Porto, o=Grande Empresa, c=PT, o arquivo de LDIF mostrado acima podia ser importado.  Mas, se no entanto, o seu servidor tivesse o sufixo o=Grande Empresa, c=PT, tem de ter uma entrada para esse sufixo especificado em primeiro lugar no arquivo de LDIF, como é mostrado a seguir:

dn: o=Grande Empresa, c=PT
classe de objeto: organização
o: Grande Empresa

O formato específico e o conteúdo dos arquivos de LDIF são determinados pelo esquema do servidor a partir do qual são exportados.  Pode importar um arquivo de LDIF para qualquer servidor de LDAP que utilize o esquema idêntico como o servidor a partir do qual o arquivo foi exportado.  Os servidores de LDAP de fornecedores diferentes utilizam esquemas distintos (com classes de objetos e atributos diferentes).  Deste modo, pode não conseguir importar para um servidor um arquivo de LDIF que tenha sido criado por outro servidor.