LDIF
LDAP Data Interchange Format (LDIF, Формат обмена данными LDAP) — формат представления записей службы каталогов или их изменений в текстовой форме. Записи каталога или их изменения представляются набором LDIF-записей, по одной на каждую запись каталога или изменение. LDIF-файл может содержать записи только одного типа, то есть только представление записей каталога или только представление изменений записей каталога.
LDIF был разработан в начале 90-х годов Тимом Хоузом (en:Tim Howes), Марком Смитом (Mark C Smith) и Гордоном Гудом (Gordon Good) в Мичиганском университете и был доработан и дополнен в конце 90-х для использования с LDAP версии 3. Эта, более поздняя версия формата, получила номер версии 1, была официально специфицирована IETF в RFC 2849, опубликована в июне 2000 года и в настоящее время имеет статус предложенного стандарта.
За прошедшие годы предложено множество расширений LDIF. Одно из них официально специфицировано IETF и опубликовано в RFC 4525. Также ожидаются публикации других расширений.
Формат записей каталога
Записи каталога представляются группами строк, разделенных пустой строкой, при этом каждая строка в группе представляет отдельное значение атрибута записи. Первая строка в группе должна представлять уникальное имя записи. Значение атрибута записывается в 7-битной кодировке ASCII и отделяется от его имени символом «:». Значения, не подходящие под эту кодировку, записываются в кодировке base64 и отделяются от имени атрибута символами «::». Также значение атрибута можно задать из внешнего ресурса, указав его единый указатель и отделяя от имени атрибута символами «:<». Схема file:// обязательна для всех реализаций и означает, что значение атрибута без изменений читается из указанного файла.
dn: <уникальное_имя> <имя_атрибута>: <значение_атрибута> <имя_атрибута>:: <base64_значение_атрибута> <имя_атрибута>:< <url> dn: <уникальное_имя> <имя_атрибута>: <значение_атрибута> <имя_атрибута>: <значение_атрибута>
Утилиты, использующие LDIF
- Пакет OpenLDAP включает утилиты, использующие LDIF для экспорта записей LDAP-сервера (ldapsearch), добавление записей на LDAP-сервер (ldapadd) и модификацию записей LDAP-сервера (ldapmodify).
- Netscape Communicator и Mozilla Application Suite используют LDIF в качестве одного из форматов импорта и экспорта адресных книг. Следует отметить, что Yahoo! Mail, также использующий LDIF для экспорта адресной книги, неправильно кодирует некоторые символы. Например, амперсанд (&), который должен использоваться как есть, кодируется как специальный символ HTML (&). В результате, «John & Jane Doe» из адресной книги Yahoo! Mail становятся «John & Jane Doe» в адресной книге например Thunderbird'а.
- Microsoft Windows 2000 Server и Windows Server 2003 включают основанную на LDIF утилиту командной строки (LDIFDE), предназначенную для импорта и экспорта данных Active Directory.
- JXplorer — кроссплатформенное приложение с открытым исходным кодом, позволяющее просматривать LDIF-файлы и вносить простые изменения.
Ограничения LDIF
Значения многозначных атрибутов не могут быть непосредственно заменены. Необходимо сначала удалить значения атрибута, а затем использовать «add:» несколько раз чтобы вставить все необходимые значения.
Поля LDIF
dn: уникальное имя
Относится к имени, однозначно идентифицирующему запись каталога.
dc: доменное имя
Относится к каждому домену из полного имени. Например www.google.com должно быть записано как DC=www,DC=google,DC=com
ou: organizational unit
Относится к организационному подразделению (иногда — к группе пользователей), частью которого является пользователь. Если пользователь относится более чем к одной группе, то это можно записать в виде OU= Lawyer,OU= Judge.
cn: common name
Относится к имени объекта (имя человека; переговорной комнаты; рецепту; названию должности), о котором выполнен запрос.
Примеры LDIF
Пример простой записи каталога с несколькими атрибутами:
dn: cn=The Postmaster,dc=example,dc=com objectClass: organizationalRole cn: The Postmaster
Пример изменения значений нескольких однозначных атрибутов двух разных записей каталога (формат, используемый в утилите Microsoft LDIFDE):
dn: CN=John Smith,OU=Legal,DC=example,DC=com changetype: modify replace:employeeID employeeID: 1234 - replace:employeeNumber employeeNumber: 98722 - replace: extensionAttribute6 extensionAttribute6: JSmith98 - dn: CN=Jane Smith,OU=Accounting,DC=example,DC=com changetype: modify replace:employeeID employeeID: 5678 - replace:employeeNumber employeeNumber: 76543 - replace: extensionAttribute6 extensionAttribute6: JSmith14 -
Примечание: Символ «-» между каждым изменением значения атрибута обязателен. Каждая запись каталога должна заканчиваться символом «-», после которого должна идти пустая строка. Последний символ «-» также обязателен.
Пример добавления номера телефона существующего пользователя:
dn: cn=Peter Michaels, ou=Artists, l=San Francisco, c=US changetype: modify add: telephonenumber telephonenumber: +1 415 555 0002
RFC
- RFC 2849 — The LDAP Data Interchange Format (LDIF) — Technical Specification
- RFC 4510 — Lightweight Directory Access Protocol (LDAP): Technical Specification Road Map
- RFC 4525 — LDAP Modify-Increment Extension
См. также
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.