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