LDAP

Материал из Xgu.ru

Перейти к: навигация, поиск

Эта статья находится в процессе написания.
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

LDAP (Lightweight Directory Access Protocol) — легковесный протокол для доступа к службе каталога, то есть, к иерархической системе управления базами данных (СУБД). Облегченный и незначительно переработанный потомок мёртворождённого протокола DAP.

Каталоги отличаются тем, что они:

  1. Хорошо масштабируются в силу своей иерархичности;
  2. Хорошо справляются с запросами на чтение в сравнении с запросами на запись.

В UNIX/Linux-системах каталоги (и LDAP, как протокол доступа к ним) получили распространение для хранения системной информации, такой, например, как учётные записи пользователей и служебных настроек.

Одним из наиболее распространённых LDAP-серверов в UNIX/Linux-системах является OpenLDAP. В Windows LDAP-сервер встроен в ActiveDirectory.

Содержание

[править] Пример обращения к службе каталога

Пример обращения к службе каталога по протоколу LDAP с помощью утилиты ldapsearch.

%# # ldapsearch -W -x -D cn=admin,dc=mydc,dc=com -b "dc=mydc,dc=com" "(ou=People)"
Enter LDAP Password: 
# extended LDIF
#
# LDAPv3
# base <dc=mydc,dc=com> with scope sub
# filter: (ou=People)
# requesting: ALL
#

# People, mydc.com
dn: ou=People,dc=mydc,dc=com
objectClass: top
objectClass: organizationalUnit
ou: People

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

Аутентифицироваться при подключении к каталогу под именем cn=admin,dc=mydc,dc=com, использовать простую аутентификацию (-x), спросить пароль (-W).

Результат выполнения команды ldapsearch представлен в формате LDIF (LDAP Interchange Format). В этом формате записи представляются как набор полей, каждое из которых записывается в отдельном поле в виде пары:

имя_поля:значение_поля

Найденная запись содержит поля dn, objectClass и ou и выглядит так:

dn: ou=People,dc=mydc,dc=com
objectClass: top
objectClass: organizationalUnit
ou: People

Доступ к каталогу осуществляется от имени cn=admin,dc=mydc,dc=com, которое называется именем привязки (bind name). Имя привязки это полное имя (DN, distinguished name) учётной записи в каталоге пользователя, от имени которого будет производиться работа с каталогом.

[править] Фильтры

И:

   (& () ())
   (& (objectClass=user) (sn=simpson))

ИЛИ:

   (| () ())
   (| (sn=simpson) (sn=s*))

НЕ:

   (!())
   (!(sn=simpson))

Пример использования:

   "(&(objectClass=user)(sn=L*))"

objectClass равен user, и sn начинается с L.

[править] Пример отображения атрибутов Active Directory на UNIX

(Убрать на страничку по интеграции UNIX и Windows)

Содержание ldap.conf[1]:

# Information about the directory
uri ldap://192.168.1.151
binddn ldap@ertw.com
bindpw ldap
ssl no
base dc=ertw,dc=com

# Map attributes
nss_map_objectclass posixAccount user
nss_map_objectclass shadowAccount user
nss_map_attribute uid sAMAccountName
nss_map_attribute homeDirectory unixHomeDirectory
nss_map_attribute shadowLastChange pwdLastSet
nss_map_objectclass posixGroup group
nss_map_attribute uniqueMember member
pam_login_attribute sAMAccountName
pam_filter objectclass=User
pam_password ad

[править] Дополнительная информация

[править] Хранение конфигурации различных программ в LDAP

[править] Примечания

  1. https://www6.software.ibm.com/developerworks/education/l-lpic3305/section6.html

[править] Материалы по LDAP на xgu.ru

Серверы LDAP:

Источник — «http://xgu.ru/wiki/LDAP»