Format de schimb de date LDAP

LDIF (abreviere de limba engleză pentru L DAP D ate I nterchange F ormat ) este un ASCII format de fișier pe bază de a reprezenta informații dintr - un LDAP - director .

LDAP descrie doar un protocol de comunicație pentru serviciile de director; reprezentarea internă a datelor într-un director nu este specificată și, prin urmare, diferă pentru implementări specifice de către diferiți producători. Pentru a permite un schimb simplu de date chiar și între directoare eterogene, LDIF a fost specificat ca format de schimb.

La fel ca în cazul LDAP, s-a avut grijă la dezvoltarea LDIF pentru a face formatul cât mai simplu posibil. Datorită restricției la o reprezentare pur textuală, formatul rămâne lizibil de către om și, prin urmare, poate fi ușor interpretat. Conținutul fișierului este codat în ASCII. De îndată ce sunt incluse caractere speciale - cum ar fi umlauts - datele trebuie stocate în cod 64 (unele instrumente și implementări de server acceptă și valori necodificate). Numele atributelor sunt marcate cu un punct ( attribut:: base64-Wert).

Un obiect LDAP este descris de mai multe linii LDIF. Începe întotdeauna cu numele distins dn, care indică poziția absolută în arborele LDAP. Aceasta este urmată de una sau mai multe clase de obiecte care definesc ce atribute sunt permise sau necesare. Urmează perechile atribut / valoare care reprezintă conținutul real. Atributele cu mai multe valori sunt specificate de mai multe ori, cu o valoare pe linie. Definiția obiectului este completată de o linie goală. O linie care începe cu un semn hash (#) este un comentariu și este ignorată de instrumente. Liniile lungi pot fi sparte prin specificarea unei întreruperi de linie urmată de un spațiu.

Formate LDIF

Există două formate LDIF de bază care nu pot fi amestecate într-un fișier:

  • Conținut LDIF: descrie intrările ca atare cu atribute
  • Modificare LDIF: descrie modificările aduse intrărilor și atributelor acestora. Mai multe instrucțiuni diferite pot fi date pentru fiecare intrare.

Exemple

Exemplu: fișier de conținut LDIF companie structure.ldif cu cinci obiecte LDAP :

 dn: dc=structure-net, dc=de
 objectclass: organization
 objectclass: top
 o: Structure Net
 l: Hamburg
 postalcode: 21033
 streetaddress: Billwiese 22

 dn: ou=Sales, dc=structure-net, dc=de
 objectclass: organizationalunit
 ou: Sales
 description: Verkauf
 telephonenumber: 040-7654321
 facsimiletelephonenumber: 040-7654321

 dn: ou=Development, dc=structure-net, dc=de
 objectclass: organizationalunit
 ou: Development
 description: Entwicklung
 telephonenumber: 040-7654321
 facsimiletelephonenumber: 040-7654321

 dn: ou=Support, dc=structure-net, dc=de
 objectclass: organizationalunit
 ou: Support
 description: Support
 telephonenumber: 040-7654321
 facsimiletelephonenumber: 040-7654321

 dn: uid=admin, dc=structure-net, dc=de
 objectclass: person
 objectclass: organizationalperson
 objectclass: inetorgperson
 cn: admin
 cn: Systemverwalter
 cn: Thomas Bendler
 sn: Bendler
 uid: admin
 mail: tbendler@structure-net.de
 l: Hamburg
 postalcode: 21033
 streetaddress: billwiese 22
 telephonenumber: 040-7654321
 facsimiletelephonenumber: 040-7654321

de la: Thomas Bendler: Linux LDAP-HOWTO .

Exemplu: fișier de conținut LDIF cu o întrerupere de linie:

 dn: ou=VeryLong,o=TestOrg,dc=de
 objectclass: organizationalunit
 ou: veryLong
 l:: w5xiZXJsaW5nZW4=
 description: Dies ist eine sehr lange Beschreibung. Sie ist so lang, dass sie hier->
  <- umbrochen wird.
  Das laesst sich beliebig oft wiederholen. Dabei ist egal,
  ob nur die Daten getrennt werden oder auch Attributsnamen.
  Trennen ist ueberall im LDIF-Text moeglich.
 attr
  ibut: Beispiel fuer ein umbrochenes Attribut.

Exemplu: fișier de modificare LDIF cu comentariu:

 # Vorhandene Beispielabteilung modifizieren: Beschreibung (attribut description) hinzufügen
 dn: ou=Example,o=TestOrg,dc=de
 changeType: modify
 add: description
 description: Dies ist der Beschreibungstext

 # Eintrag mit mehreren Changeanweisungen
 #  1. Beschreibung hinzufügen
 #  2. Postleitzahl ersetzen
 #  3. Telefonnummer durch mehrere neue ersetzen
 #  4. Straße löschen
 #  5. bestimmte Faxnummer löschen (andere Faxnummern bleiben bestehen)
 dn: ou=AmpleEx,o=TestOrg,dc=de
 changeType: modify
 add: description
 description: Test1234
 -
 replace: postalCode
 postalCode: 12345
 -
 replace: telephoneNumber
 telephoneNumber: 01234 56789
 telephoneNumber: 98765 4321-0
 -
 delete: street
 -
 delete: facsimileTelephoneNumber
 facsimileTelephoneNumber: deleteJustThisValue
 # Neuen LDAP-Eintrag anlegen
 dn: cn=FooBar,ou=Example,o=TestOrg,dc=de
 changeType: add
 objectClass: person
 objectClass: organizationalPerson
 objectClass: inetOrgPerson
 cn: FooBar
 sn: Bar
 givenName: Foo
 mail: foobar@testorg.de
 telephonenumber: 1234 567890

Vezi si

Link-uri web

  • RFC 2849 - LDAP Data Interchange Format (LDIF) , iunie 2000
  • Thomas Bendler: Linux LDAP Howto