Как работает 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 синхронизируются в Принтум и как часто выполняется синхронизация.