The OpenLDAP Project <http://www.openldap.org/> 12 февраля 2012
Содержание
- Предисловие
1. Введение в службы каталогов OpenLDAP
- 1.1. Что такое служба каталогов?
1.2. Что такое LDAP?
1.3. Для чего можно использовать LDAP?
1.4. Для чего LDAP лучше не использовать?
1.5. Как работает LDAP?
1.6. Как насчёт X.500?
1.7. В чём отличие между LDAPv2 и LDAPv3?
1.8. Непростые взаимоотношения LDAP и реляционных СУБД
1.9. Что такое slapd и на что он способен?
2. Руководство по быстрому развёртыванию и началу работы
3. Общая картина - варианты конфигурации
- 3.1. Локальная служба каталогов
3.2. Локальная служба каталогов с отсылками
3.3. Реплицируемая служба каталогов
3.4. Распределённая локальная служба каталогов
4. Сборка и установка программного обеспечения OpenLDAP
- 4.1. Получение и распаковка программного обеспечения
4.2. Программное обеспечение, от которого зависит OpenLDAP
- 4.2.1. Transport Layer Security
4.2.2. Simple Authentication and Security Layer
4.2.3. Сервис аутентификации Kerberos
4.2.4. Программное обеспечение баз данных
4.2.5. Потоки
4.2.6. TCP Wrappers
4.3. Запуск configure
4.4. Сборка программного обеспечения
4.5. Тестирование программного обеспечения
4.6. Установка программного обеспечения
5. Настройка slapd
- 5.1. Макет конфигурации
5.2. Директивы конфигурации
- 5.2.1. cn=config
5.2.2. cn=module
5.2.3. cn=schema
5.2.4. Директивы, специфичные для механизмов манипуляции данными
5.2.5. Директивы, специфичные для базы данных
5.2.6. Директивы баз данных BDB и HDB
5.3. Пример конфигурации
5.4. Конвертирование конфигурационного файла в старом стиле slapd.conf(5) в формат cn=config
6. Конфигурационный файл slapd
- 6.1. Формат конфигурационного файла
6.2. Директивы конфигурационного файла
- 6.2.1. Глобальные директивы
6.2.2. Общие директивы механизмов манипуляции данными
6.2.3. Общие директивы баз данных
6.2.4. Директивы баз данных BDB и HDB
6.3. Пример конфигурационного файла
7. Запуск slapd
8. Контроль доступа
- 8.1. Введение
8.2. Контроль доступа при использовании статической конфигурации
- 8.2.1. Над чем осуществляется контроль доступа
8.2.2. Кому даются права на доступ
8.2.3. Какие права на доступ могут предоставляться
8.2.4. Принятие решения о предоставлении доступа
8.2.5. Примеры настройки контроля доступа
8.3. Контроль доступа при использовании динамической конфигурации
- 8.3.1. Над чем осуществляется контроль доступ
8.3.2. Кому даются права на доступ
8.3.3. Какие права на доступ могут предоставляться
8.3.4. Принятие решения о предоставлении доступа
8.3.5. Примеры настройки контроля доступа
8.3.6. Порядок применения контроля доступа
8.4. Типичные примеры контроля доступа
- 8.4.1. Основные ACL
8.4.2. Соответствие анонимным пользователям и пользователям, прошедшим аутентификацию
8.4.3. Контроль доступа для rootdn
8.4.4. Управление доступом с помощью групп
8.4.5. Предоставление доступа к подмножеству атрибутов
8.4.6. Разрешение пользователю изменять все записи, находящиеся ниже его собственной
8.4.7. Разрешение на создание записи
8.4.8. Советы по использованию регулярных выражений при контроле доступа
8.4.9. Предоставление и запрет доступа на основе факторов силы безопасности (ssf)
8.4.10. Если что-то работает не так, как ожидалось
8.5. Наборы - предоставление прав на основе взаимоотношений
9. Ограничения
- 9.1. Введение
9.2. Мягкие и жёсткие ограничения
9.3. Глобальные ограничения
9.4. Ограничения для отдельной базы данных
- 9.4.1. SОпределение того, на кого накладываются ограничения
9.4.2. Определение ограничений по времени
9.4.3. Определение ограничений по размеру
9.4.4. Ограничение по размеру и постраничный вывод результатов
9.5. Примеры настройки ограничений
- 9.5.1. Простые глобальные ограничения
9.5.2. Мягкие и жёсткие глобальные ограниченияs
9.5.3. Установка определённым пользователям ограничений большего размера
9.5.4. Установка ограничений на возможность выполнения поиска с постраничным выводом результатов
9.6. Дополнительная информация
10. Инструменты создания и обслуживания баз данных
- 10.1. Создание базы данных через LDAP
10.2. Создание базы данных при отключенном slapd
10.3. Формат текстового представления записи LDIF
11. Механизмы манипуляции данными
- 11.1. Механизмы Berkeley DB
11.2. LDAP
11.3. LDIF
11.4. Метакаталог
11.5. Мониторинг
11.6. Null
11.7. Passwd
11.8. Perl/Shell
11.9. Транслятор
11.10. SQL
12. Наложения
- 12.1. Ведение журнала доступа
12.2. Ведение журнала изменений
12.3. Сцепление
- 12.3.1. Обзор
12.3.2. Настройка наложения сцепления
12.3.3. Обработка ошибок сцепления
12.3.4. Чтение изменений, внесенных с использованием сцепления
12.3.5. Дополнительная информация
12.4. Ограничения на значения
12.5. Динамические службы каталогов (Dynamic Directory Services)
- 12.5.1. Обзор
12.5.2. Настройка наложения динамических служб каталогов
12.5.3. Дополнительная информация
12.6. Динамические группы
12.7. Динамические списки
12.8. Обратное обслуживание членства в группах
12.9. Кэширующий прокси-сервер
- 12.9.1. Обзор
12.9.2. Настройка наложения кэширующего прокси-сервера
12.9.3. Дополнительная информация
12.10. Политики паролей
12.11. Обеспечение целостности ссылок
- 12.11.1. Обзор
12.11.2. Настройка наложения обеспечения целостности ссылок
12.11.3. Дополнительная информация
12.12. Настраиваемые коды возврата
12.13. Перезапись/Переназначение (Rewrite/Remap)
- 12.13.1. Обзор
12.13.2. Настройка наложения перезаписи/переназначения
12.13.3. Дополнительная информация
12.14. Сервер-поставщик синхронизации
- 12.14.1. Обзор
12.14.2. Настройка наложения сервера-поставщика синхронизации
12.14.3. Дополнительная информация
12.15. Прозрачный прокси (Translucent Proxy)
12.16. Проверка уникальности атрибутов
- 12.16.1. Обзор
12.16.2. Настройка наложения проверки уникальности атрибутов
12.16.3. Дополнительная информация
12.17. Сортировка значений атрибутов
- 12.17.1. Обзор
12.17.2. Настройка наложения сортировки значений атрибутов
12.17.3. Дополнительная информация
12.18. Объединение наложений в стек
13. Спецификация схемы
14. Вопросы безопасности
- 14.1. Сетевая безопасность
14.2. Целостность данных и защита конфиденциальности
14.3. Методы аутентификации
14.4. Хранилище паролей
- 14.4.1. Схема хранения паролей SSHA
14.4.2. Схема хранения паролей CRYPT
14.4.3. Схема хранения паролей MD5
14.4.4. Схема хранения паролей SMD5
14.4.5. Схема хранения паролей SHA
14.4.6. Схема хранения паролей SASL
14.5. Сквозная аутентификация
15. Использование SASL
- 15.1. Вопросы безопасности при использовании SASL
15.2. Аутентификация с помощью SASL
- 15.2.1. GSSAPI
15.2.2. KERBEROS_V4
15.2.3. DIGEST-MD5
15.2.4. EXTERNAL
15.2.5. Отображение аутентификационных идентификационных сущностей
15.2.6. Прямое отображение
15.2.7. Отображения, основанные на поиске
15.3. Прокси-авторизация SASL
16. Использование TLS
17. Построение распределённой службы каталогов
- 17.1. Сведения о нижестоящих частях дерева
17.2. Сведения о вышестоящих частях дерева
17.3. Элемент управления ManageDsaIT
18. Репликация
- 18.1. Технология репликации
18.2. Варианты развёртывания
- 18.2.1. Дельта-syncrepl репликация
18.2.2. Разнонаправленная репликация с несколькими главными серверами (Multi-Master)
18.2.3. Репликация в режиме зеркала (MirrorMode)
18.2.4. Режим Syncrepl-прокси
18.3. Настройка различных типов репликации
19. Обслуживание
- 19.1. Резервное копирование каталога
19.2. Журналы Berkeley DB
19.3. Срабатывание контрольных точек
19.4. Миграция
20. Мониторинг
- 20.1. Настройка мониторинга при использовании cn=config(5)
20.2. Настройка мониторинга при использовании via slapd.conf(5)
20.3. Доступ к информации мониторинга
20.4. Информация мониторинга
21. Настройка производительности
- 21.1. Факторы, влияющие на производительность
- 21.1.1. Оперативная память
21.1.2. Диски
21.1.3. Топология сети
21.1.4. Проектирование структуры каталога
21.1.5. Предполагаемое использование
21.2. Индексирование
21.3. Журналирование
- 21.3.1. Какой уровень журналирования использовать
21.3.2. На что обращать внимание
21.3.3. Увеличение производительности
21.4. Кэширование
22. Устранение неполадок
- 22.1. Чьи ошибки, пользователя или программного обеспечения?
22.2. Список тестов
22.3. Ошибки OpenLDAP
22.4. Ошибки программного обеспечения третьих сторон
22.5. Как связаться с проектом OpenLDAP
22.6. Как представить Вашу проблему
22.7. Отладка slapd(8)
22.8. Коммерческая поддержка
A. Изменения по сравнению с предыдущей версией
- A.1. Новые разделы руководства
A.2. Новые функции и возможности в версии 2.4
- A.2.1. Лучшая функциональность cn=config
A.2.2. Лучшая функциональность cn=schema
A.2.3. Более тонкая настройка Syncrepl
A.2.4. Разнонаправленная репликация с несколькими главными серверами
A.2.5. Репликация конфигурации slapd (syncrepl и cn=config)
A.2.6. Репликация в режиме посылок
A.2.7. Более гибкое управление конфигурацией TLS
A.2.8. Улучшения производительности
A.2.9. Новые наложения
A.2.10. Новые возможности в существующих наложениях
A.2.11. Новые возможности в slapd
A.2.12. Новые возможности в libldap
A.2.13. Новые клиенты, инструменты и усовершенствования существующих инструментов
A.2.14. Новые опции сборки
A.3. Устаревшие возможности, удалённые из версии 2.4
B. Переход с версии 2.3.x
C. Распространённые ошибки при использовании программного обеспечения OpenLDAP
- C.1. Распространённые причины ошибок LDAP
- C.1.1. ldap_*: Can't contact LDAP server (невозможно соединиться с сервером LDAP)
C.1.2. ldap_*: No such object (нет такого объекта)
C.1.3. ldap_*: Can't chase referral (невозможно последовать по ссылке)
C.1.4. ldap_*: server is unwilling to perform (сервер не желает выполнять)
C.1.5. ldap_*: Insufficient access (недостаточные полномочия доступа)
C.1.6. ldap_*: Invalid DN syntax (неверный синтаксис DN)
C.1.7. ldap_*: Referral hop limit exceeded (превышен лимит перехода по ссылкам)
C.1.8. ldap_*: operations error (операционная ошибка)
C.1.9. ldap_*: other error (другая ошибка)
C.1.10. ldap_add/modify: Invalid syntax (неверный синтаксис)
C.1.11. ldap_add/modify: Object class violation (нарушение объектного класса)
C.1.12. ldap_add: No such object (нет такого объекта)
C.1.13. ldap add: invalid structural object class chain (неверная цепочка структурного объектного класса)
C.1.14. ldap_add: no structuralObjectClass operational attribute (нет операционного атрибута structuralObjectClass)
C.1.15. ldap_add/modify/rename: Naming violation (нарушение именования)
C.1.16. ldap_add/delete/modify/rename: no global superior knowledge (нет сведений о глобальной вышестоящей части дерева)
C.1.17. ldap_bind: Insufficient access (недостаточные полномочия доступа)
C.1.18. ldap_bind: Invalid credentials (неверные учётные данные)
C.1.19. ldap_bind: Protocol error (ошибка протокола)
C.1.20. ldap_modify: cannot modify object class (не могу изменить объектный класс)
C.1.21. ldap_sasl_interactive_bind_s: ...
C.1.22. ldap_sasl_interactive_bind_s: No such Object (нет такого объекта)
C.1.23. ldap_sasl_interactive_bind_s: No such attribute (нет такого атрибута)
C.1.24. ldap_sasl_interactive_bind_s: Unknown authentication method (неизвестный метод аутентификации)
C.1.25. ldap_sasl_interactive_bind_s: Local error (82) (локальная ошибка)
C.1.26. ldap_search: Partial results and referral received (получены частичные результаты и отсылка)
C.1.27. ldap_start_tls: Operations error (ошибка операций)
C.2. Другие ошибки
- C.2.1. ber_get_next on fd X failed errno=34 (Numerical result out of range) (числовой результат за границей диапазона)
C.2.2. ber_get_next on fd X failed errno=11 (Resource temporarily unavailable) (ресурс временно недоступен)
C.2.3. daemon: socket() failed errno=97 (Address family not supported) (семейство адресов не поддерживается)
C.2.4. GSSAPI: gss_acquire_cred: Miscellaneous failure; Permission denied; (различные сбои; доступ запрещён)
C.2.5. access from unknown denied (запрещён доступ от неизвестного)
C.2.6. ldap_read: want=# error=Resource temporarily unavailable (ресурс временно недоступен)
C.2.7. `make test' fails (`make test' завершился неудачей)
C.2.8. ldap_*: Internal (implementation specific) error (80) - additional info: entry index delete failed (внутренняя ошибка, зависящая от конкретной реализации, дополнительная информация: не удалось удалить индекс записи)
C.2.9. ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1) (не могу соединиться с сервером LDAP)
D. Рекомендуемые версии зависимостей программного обеспечения OpenLDAP
E. Примеры развёртывания OpenLDAP в реальном мире
F. Состав программного обеспечения OpenLDAP
- F.1. Клиентские API
F.2. Наложения
- F.2.1. acl
F.2.2. addpartial
F.2.3. allop
F.2.4. autogroup
F.2.5. comp_match
F.2.6. denyop
F.2.7. dsaschema
F.2.8. lastmod
F.2.9. nops
F.2.10. nssov
F.2.11. passwd
F.2.12. proxyOld
F.2.13. smbk5pwd
F.2.14. trace
F.2.15. usn
F.3. Инструменты
F.4. Плагины SLAPI
G. Примеры конфигурационных файлов
H. Коды возврата LDAP
- H.1. Неошибочные коды возврата
H.2. Коды возврата
H.3. success (0) - успех
H.4. operationsError (1) - ошибка операций
H.5. protocolError (2) - ошибка протокола
H.6. timeLimitExceeded (3) - превышение ограничения времени
H.7. sizeLimitExceeded (4) - превышение ограничения размера
H.8. compareFalse (5) - сравнение выявило ложь
H.9. compareTrue (6) - сравнение выявило истину
H.10. authMethodNotSupported (7) - метод аутентификации не поддерживается
H.11. strongerAuthRequired (8) - требуется более строгая аутентификация
H.12. referral (10) - отсылка
H.13. adminLimitExceeded (11) - превышение административного ограничения
H.14. unavailableCriticalExtension (12) - недоступное критическое расширение
H.15. confidentialityRequired (13) - требуется конфиденциальность
H.16. saslBindInProgress (14) - выполняется подсоединение SASL
H.17. noSuchAttribute (16) - нет такого атрибута
H.18. undefinedAttributeType (17) - неопределённый тип атрибута
H.19. inappropriateMatching (18) - неподходящее соответствие
H.20. constraintViolation (19) - нарушение ограничений
H.21. attributeOrValueExists (20) - атрибут или значение существует
H.22. invalidAttributeSyntax (21) - неверный синтаксис атрибута
H.23. noSuchObject (32) - нет такого объекта
H.24. aliasProblem (33) - проблема с псевдонимом
H.25. invalidDNSyntax (34) - неверный синтаксис DN
H.26. aliasDereferencingProblem (36) - проблема с разыменованием псевдонима
H.27. inappropriateAuthentication (48) - несоответствующая аутентификация
H.28. invalidCredentials (49) - неверные учётные данные
H.29. insufficientAccessRights (50) - недостаточные права доступа
H.30. busy (51) - занят
H.31. unavailable (52) - недоступен
H.32. unwillingToPerform (53) - не желают выполнять
H.33. loopDetect (54) - обнаружено зацикливание
H.34. namingViolation (64) - нарушение именования
H.35. objectClassViolation (65) - нарушение объектного класса
H.36. notAllowedOnNonLeaf (66) - не разрешено на нелистовой записи
H.37. notAllowedOnRDN (67) - не разрешено на нелистовой записи
H.38. entryAlreadyExists (68) - запись уже существует
H.39. objectClassModsProhibited (69) - изменение объектного класса запрещено
H.40. affectsMultipleDSAs (71) - оказывается влияние на несколько DSA
H.41. other (80) - другое
I. Глоссарий
J. Общие инструкции configure
K. Уведомления об авторских правах на программное обеспечение OpenLDAP
- K.1. Уведомление об авторских правах OpenLDAP
K.2. Дополнительные уведомления об авторских правах
K.3. Уведомление об авторских правах Мичиганского Университета
L. Открытая лицензия OpenLDAP