Въведение в OpenLDAP Directory Service
Този документ описва как да инсталирате, конфигурирате и управлявате софтуера OpenLDAP, за да активирате услугата директория. Този документ също така включва описание на това как да настроите и стартирате slapd(8) самостоятелен LDAP демон и slurpd(8) самостоятелен LDAP демон за репликация. Документът е предназначен както за начинаещи, така и за опитни администратори. Този раздел съдържа основна информация за справочната услуга и по-специално за справочната услуга, предоставена от slapd(8).
1.1 Какво е справочна услуга?
1.2 Какво е LDAP?
LDAP е съкращение от Lightweight Directory Access Protocol. Както подсказва името, това е олекотен протокол за достъп до справочни услуги, по-специално справочни услуги, базирани на протокола X.500. LDAP работи през TCP/IP или друг протокол, ориентиран към данни. Информацията за LDAP е описана в RFC2251 „The Lightweight Directory Access Protocol (v3)“ и други документи, състоящи се от RFC3377 техническа информация. Този раздел се занимава с LDAP от името на потребителя.
Как се съхранява информацията в LDAP? В LDAP записите се съхраняват в йерархично дърво. Традиционно тази структура отразява географски и организационни граници. Записите, представляващи държави, са в горната част на дървото. Малко по-ниски са записите за региони и организации. Още по-ниско е информацията за отдели, хора, принтери, документи или каквото се сетите. Фигура 1.1 показва пример на LDAP директория, използваща традиционно именуване.
Дървото може да бъде създадено и въз основа на имена на интернет домейни. Това именуване става все по-популярно, защото ви позволява да откриете местоположението на директорийна услуга с помощта на DNS. Фигура 1.2 показва пример за дърво, базирано на имена на домейни.
Освен това LDAP ви позволява да контролирате кои атрибути са задължителни и разрешени в даден запис, като използвате специален атрибут - objectClass. Стойността на атрибута objectClass определя схемата на правилата, на която записът ще се подчинява.
Как е свързана информацията? Записите са свързани чрез тяхното DN, което се състои от собственото Относително отличително име (RDN) на записа и имената на неговите родителски записи. Например записът за Barbara Jensen в примера по-горе (Фигура 1.2) има RDN: uid=babs и DN: uid=babs,ou=People,dc=example,dc=com. Форматът на DN запис е описан в RFC2253, „Lightweight Directory Access Protocol (v3): UTF-8 String Representation of Distinguished Names.“
1.3 Как работи LDAP?
LDAP директорийната услуга е базирана на модел клиент/сървър. Един или повече LDAP сървъри съдържат данни, които създават информационно дърво на директория (DIT). Клиентът се свързва със сървъра и го пита. Сървърът дава на клиента отговор и/или индикация къде да получи повече информация (обикновено друг LDAP сървър). Няма значение към кой сървър се свързва клиентът, той ще види същата директория; името, предоставено на LDAP сървъра, се отнася до същия запис, който би бил на друг LDAP сървър. Това е важна характеристика на глобална справочна услуга като LDAP.
1.4 Какво ще кажете за X.500?
Технически LDAP е протокол за достъп до справочни услуги, базиран на X.500, OSI директорийната услуга. Първоначално клиентите на LDAP имат достъп до директорийната услуга X.500 през шлюзове. Тези шлюзове изпълняваха LDAP, свързвайки клиента и шлюза и протокола за достъп до директория (DAP) X.500, както и свързвайки шлюза и сървъра X.500. DAP е тежък протокол, който преминава през целия стек на OSI модела и е доста взискателен към компютърните ресурси. LDAP е проектиран да работи върху TCP/IP иосигуряват по-голямата част от функционалността на DAP, но с по-малко ресурси.
Докато LDAP все още се използва за достъп до директорийната услуга X.500 през шлюзове, LDAP вече се използва директно в сървърите X.500.
Самостоятелният LDAP демон или slapd(8) може да се дефинира като олекотена версия на сървъра на директории X.500. По този начин LDAP не прилага напълно DAP протокола и не поддържа пълни DAP модели.
Също така е възможно да се копират данни от LDAP сървър на директории към X.500 DAP DSA. ТАЗИ операция ще изисква шлюз, работещ с DAP/LDAP. OpenLDAP не предоставя тази функционалност, но демонът за репликация може да се използва за копиране на данни. Вижте Копиране на данни със slurpd за повече информация относно копирането на данни.
1.5 Каква е разликата между LDAPv2 и LDAPv3?
LDAPv3 е разработен през 1990 г., за да замени LDAPv2. Нови функции са добавени към LDAPv3:
- Силно удостоверяване и защита на данните със SASL. - Удостоверяване със сертификати и сигурност на данните с TLS(SSL). - Използване на Unicode. - Използване на връзки. - Преглед на схеми. - Разширяемост (контрол, разширени операции и т.н.).
LDAPv2 е описан в RFC3494. Повечето реализации на LDAPv2 (включително slapd) не следват техническата спецификация, така че поддръжката на LDAPv2 е спряна. LDAPv2 е много различен от LDAPv3, конфигурирането на LDAPv2 и LDAPv3 едновременно е доста проблематично. LDAPv2 е най-добре да не използвате. LDAPv2 е деактивиран по подразбиране.
1.6 Какво е slapd и какво може да прави?
slapd(8) е LDAP сървър за директории, който може да се изпълнява на различни платформи. Можете да го използвате, за да предоставите свой собствен сървър за директории.Вашият указател може да съдържа всяка информация, която искате. Можете също така да свържете вашия указател към LDAP глобалната указателна услуга или сами да стартирате указателната услуга. Някои характеристики на slapd:
LDAPv3: slapd ви позволява да използвате третата версия на LDAP протокола. Slapd поддържа LDAP през IPv4 и IPv6 и Unix IPC.
Обикновено ниво на удостоверяване и сигурност (SASL): slapd поддържа удостоверяване и сигурност на данните (цялост и поверителност) с помощта на SASL. Slapd използва помощни програми Cyrus-sasl, които поддържат различни механизми за удостоверяване като DIGEST-MD5, EXTERNAL и GSSAPI.
Защита на транспортния слой (TLS): slapd поддържа базирано на сертификат удостоверяване и сигурност на данните (цялост и поверителност) с помощта на TLS (SSL). Slapd използва помощните програми OpenSSL.
Контрол въз основа на мрежова информация: slapd може да бъде конфигуриран да разпределя достъпа въз основа на мрежовата топология. Тази функция използва TCP обвивки.
Интернационализация: slapd поддържа Unicode и езикови тагове.
Избор на типове бази данни: slapd предоставя избор на различни типове бази данни. BDB е високоефективна база данни, която поддържа транзакции. HDB е йерархична база данни с висока производителност, която поддържа транзакции. LDBM е олекотена версия на базата данни DBM. SHELL интерфейс за съхраняване на произволни SHELL скриптове. PASSWD е прост интерфейс към файла passwd(5). BDB и HDB използват Sleepycat Berkeley DB. LDBM използва Berkeley DB или GDBM.
Използване на различни типове бази данни: slapd може да бъде конфигуриран да управлява различни бази данни едновременно. Това означава, че един slapd сървър може да отговаря на заявки за логически различни части на LDAP дървото,използване на един и същи или различни видове бази данни.
Един интерфейс за програмиране за модули: Ако имате нужда от повече гъвкавост, можете да напишете свой собствен модул за slapd. slapd е разделен на две части: предната част, която съдържа протокола за комуникация с LDAP клиенти, и модулната част, която съдържа специфични задачи като операции с бази данни. Тъй като тези две части са свързани заедно с помощта на добре дефиниран език C, можете да напишете свои собствени модули, които могат да разширят възможностите на slapd. Поддържат се и голям брой програмируеми модули на бази данни. Това ще ви позволи да свържете външни данни към slapd, като използвате популярни езици за програмиране (Perl, Shell, SQL и TCL).
Нишки: slapd е многонишков за по-добра производителност. Един процес на slapd обработва всички входящи заявки, използвайки нишки. Това намалява натоварването на системата, повишавайки ефективността на работа.
Репликация: slapd може да бъде конфигуриран да съхранява копия на директории. Схемата с един главен/много подчинени е много важна в голяма среда, където един slapd сървър не може да осигури необходимата наличност и надеждност. Slapd поддържа два метода на репликация: един базиран на синхронизация и един базиран на slurpd(8) демон.
Кеширащ прокси: slapd може да бъде конфигуриран като LDAP кеширащ прокси.
Конфигурация: slapd е силно конфигурируем сървър с един конфигурационен файл, който ви позволява да промените всичко, което някога сте искали да промените. Опциите за конфигурация имат разумни настройки по подразбиране, което прави уау работата много по-лесна.
1.7 Какво е slurpd и какво може да прави?
slurpd(8) е демон, който с помощта на slapd(8) изпълнява услугата за репликация. Той отговаря заразпространяване на промените, направени в главната база данни на slapd, към други бази данни на slapd. Slurpd освобождава slapd от необходимостта да се тревожи, ако други slapd бази данни не работят или не са достъпни, когато главната база данни се промени. Slurpd автоматично прави повторен опит за актуализация. Slapd и Slurpd са свързани чрез прост текстов файл, който се използва за писане на промени.
Вижте Репликация със slurpd за информация как да настроите и стартирате демона за репликация slurpd(8).
Също така репликацията, базирана на синхронизация, може да се използва за предоставяне на услуга за репликация. Вижте главата LDAP Sync Replication за повече информация.