Skip to main content

Как работает LDAP — основы для инженера Принтум

Как работает LDAP — основы для инженера Принтум

Назначение

LDAP (Lightweight Directory Access Protocol, RFC 4511) — протокол доступа к каталогу. Чаще всего используется для хранения учётных записей пользователей (Microsoft Active Directory, OpenLDAP, FreeIPA).

Порты

Режим Порт
LDAP (plaintext / StartTLS) 389
LDAPS (TLS с первого байта) 636
AD Global Catalog 3268 / 3269 (LDAPS)

Структура каталога (DIT)

Каталог — дерево записей (Directory Information Tree).

dc=example,dc=com
├── ou=Users
│   ├── cn=Ivan Petrov
│   └── cn=Anna Sidorova
├── ou=Groups
│   └── cn=PrintUsers
└── ou=Computers
    └── cn=WS001
Атрибут Расшифровка Пример
DC Domain Component dc=example,dc=com
OU Organizational Unit ou=Users
CN Common Name cn=Ivan Petrov
DN Distinguished Name cn=Ivan Petrov,ou=Users,dc=example,dc=com
SN Surname sn=Petrov
UID User ID (OpenLDAP) uid=ipetrov
sAMAccountName Логин Windows (AD) ipetrov
userPrincipalName UPN (AD) ipetrov@example.com

Bind (аутентификация)

Bind — операция аутентификации клиента на LDAP-сервере.

Тип Описание
Simple bind DN + пароль в открытом виде (требует TLS)
Anonymous bind Без аутентификации (ограниченный доступ)
SASL / GSSAPI Kerberos или другие механизмы

Сервис, читающий каталог, выполняет bind с отдельной учётной записью (service account / bind DN).

Фильтры поиска

Фильтры определяют, какие записи возвращает запрос.

Фильтр Значение
(objectClass=user) Все объекты типа user
(sAMAccountName=ipetrov) Конкретный пользователь
(&(objectClass=person)(mail=*)) Все люди с заполненным email
(|(ou=IT)(ou=Finance)) Записи из OU IT или Finance
(memberOf=cn=PrintUsers,ou=Groups,dc=example,dc=com) Члены группы PrintUsers

Как Принтум использует LDAP

Принтум подключается к LDAP/AD для:

  • синхронизации учётных записей пользователей;
  • получения атрибутов (имя, email, номер карты, группы);
  • проверки членства в группах для управления доступом;
  • аутентификации пользователей через bind с их учётными данными.

Синхронизация выполняется периодически. При отказе LDAP Принтум продолжает работу с последними синхронизированными данными (degraded mode).

TODO: уточнить — какие именно атрибуты AD/LDAP синхронизируются в Принтум и как часто выполняется синхронизация.