- Технологический стек
- Архитектура решения
- Установка и настройка MULTIDIRECTORY
- Настройка Kerberos
- Настройка DNS
- Настройка DHCP
- Доверие доменов
- Групповые политики
- Подключение MF SelfService Portal к MD
- Управление пользователями, группами и ресурсами
- Подключение 2FA MULTIFACTOR
- Политики доступа
- Схема LDAP
- Журналирование событий
- Парольные политики
- Роли и полномочия
- LDAP-аутентификация в Ansible AWX
- LDAP-аутентификация в ArgoCD
- LDAP-аутентификация в GitLab
- LDAP-аутентификация в GitFlic
- LDAP-аутентификация в Jenkins
- LDAP-аутентификация в Harbor
- LDAP-аутентификация в Nexus
- LDAP-аутентификация в PostgreSQL
- LDAP-аутентификация в Proxmox VE
- LDAP-аутентификация в Rancher
- LDAP-аутентификация в SpaceVM
- LDAP-аутентификация в Tantor
- LDAP-аутентификация в Штурвал
Архитектура работы решения
Общая информация
В статье описывается архитектура службы каталогов MULTIDIRECTORY.

| Описание | |
|---|---|
| 1 | Пользователи и сервисы, которые используют Kerberos для аутентификации. Подключаются к порту 88 для работы с Kerberos. |
| 2 | Пользователи взаимодействуют с системой через клиентов LDAP. Эти клиенты могут быть различными приложениями или устройствами, которые используют протокол LDAP для доступа к данным и сервисам в системе. |
| 3 | Администраторы системы используют web-приложение для управления и конфигурирования системы в web-интерфейсе. |
| 4 | Контейнеризация всех компонентов службы каталогов происходит при помощи Docker’a. |
| 5 | Traefik является обратным прокси-сервером, который маршрутизирует запросы от пользователей, администраторов и автоматизированных систем к соответствующим внутренним сервисам. Он обеспечивает балансировку нагрузки, безопасность и управление маршрутизацией. |
| 6 | Центр распределения ключей, который управляет аутентификацией по протоколу Kerberos. |
| 7 | MULTIDIRECTORY Admin API выполняет роль серверного компонента, который отвечает за обработку запросов от административного интерфейса и запросов от систем автоматизации. Этот компонент обеспечивает все необходимые функции для безопасного и эффективного управления данными LDAP через административный интерфейс. |
| 8 | Представляет компонент для загрузки веб интерфейса, который позволяет управлять службой каталогов, создавать пользователей, настраивать политики доступа и управлять учетными записями клиентов. |
| 9 | Административный сервис управления Kerberos сервером. |
| 10 | LDAP-сервер реализует протокол Lightweight Directory Access Protocol (LDAP), хранит и обрабатывает поступающие от пользователей запросы в каталоге данных. Он отвечает за идентификацию, аутентификацию и авторизацию пользователей, определяя права доступа на основе атрибутов и членства в группах.* * LDAP — сервер представляет собой 4 сервиса в виде отдельных контейнеров, обеспечивая большую производительность и отказоустойчивость — на схеме представлен в виде одного блока. |
| 11 | DNS-сервер для разрешения доменных имен. |
| 12 | PostgreSQL является системой управления базами данных. База данных MULTIDIRECTORY хранит настройки конфигурации системы, данные службы каталогов, такие как информация о пользователях, группах, организационных единицах и т.д., а также другие важные данные. |

| Описание | |
|---|---|
| 1 | Пользователи и сервисы, которые используют Kerberos для аутентификации. Подключаются к порту 88 для работы с Kerberos. |
| 2 | Пользователи взаимодействуют с системой через клиентов LDAP. Эти клиенты могут быть различными приложениями или устройствами, которые используют протокол LDAP для доступа к данным и сервисам в системе. |
| 3 | Администраторы системы используют web-приложение для управления и конфигурирования системы в web-интерфейсе. |
| 4 | Контейнеризация всех компонентов службы каталогов происходит при помощи Docker’a. |
| 5 | Traefik является обратным прокси-сервером, который маршрутизирует запросы от пользователей, администраторов и автоматизированных систем к соответствующим внутренним сервисам. Он обеспечивает балансировку нагрузки, безопасность и управление маршрутизацией. |
| 6 | Центр распределения ключей, который управляет аутентификацией по протоколу Kerberos. |
| 7 | MultiDirectory Admin API выполняет роль серверного компонента, который отвечает за обработку запросов от административного интерфейса и запросов от систем автоматизации. Этот компонент обеспечивает все необходимые функции для безопасного и эффективного управления данными LDAP через административный интерфейс. |
| 8 | Представляет компонент для загрузки веб интерфейса, который позволяет управлять службой каталогов, создавать пользователей, настраивать политики доступа и управлять учетными записями клиентов. |
| 9 | Административный сервис управления Kerberos сервером. |
| 10 | LDAP-сервер реализует протокол Lightweight Directory Access Protocol (LDAP), хранит и обрабатывает поступающие от пользователей запросы в каталоге данных. Он отвечает за идентификацию, аутентификацию и авторизацию пользователей, определяя права доступа на основе атрибутов и членства в группах.* * LDAP — сервер представляет собой 4 сервиса в виде отдельных контейнеров, обеспечивая большую производительность и отказоустойчивость — на схеме представлен в виде одного блока. |
| 11 | DNS-сервер для разрешения доменных имен. |
| 12 | PostgreSQL Cluster является системой управления базами данных. База данных хранит настройки конфигурации системы, данные службы каталогов, такие как информация о пользователях, группах, организационных единицах и т.д., а также другие важные данные.* * На данной схеме представлена в виде отдельной БД, которая подключается к MultiDirectory как внешний сервис. |
MULTIDIRECTORY используют следующие репозитории:
- MULTIDIRECTORY — сервер веб-API LDAP и JSON.
- MULTIDIRECTORY Web Admin — веб-интерфейс для API.
Описание MULTIDIRECTORY Enterprise Edition
Описание контейнеров MULTIDIRECTORY Enterprise Edition
| Имя контейнера | Описание | |
|---|---|---|
| traefik | Контейнер, отвечающий за маршрутизацию (HTTP/TCP/UDP), TLS. | |
| traefik_certs_dumper | Контейнер, выгружающий/подготавливающий сертификаты из Traefik. | |
| multidirectory_api | Контейнер с Web API. | |
| multidirectory-ldap_server-* | Контейнер(ы) LDAP-сервера, обслуживает LDAP/LDAPS запросы. | |
| cldap_server | Контейнер с CLDAP-сервером для обнаружения доменов/LDAP-сервисов по UDP. | |
| multidirectory-global_ldap_server-* | Контейнер(ы) глобального LDAP-сервера (Global Catalog) для централизованного поиска/репликации. | |
| MD-postgres | Контейнер с СУБД PostgreSQL. | |
| multidirectory_interface | Контейнер с веб-интерфейсом администрирования. | |
| multidirectory_migrations | Контейнер, выполняющий миграции базы данных. | |
| multidirectory_certs_check | Контейнер, выполняющий проверку/генерацию сертификатов. | |
| md_maintence | Контейнер, выполняющий периодические задания. | |
| kdc | Контейнер с сервером аутентификации Kerberos. | |
| kadmind | Контейнер с Kerberos admin-службой и сменой паролей. | |
| kadmin_api | Контейнер с API для администрирования Kerberos. | |
| pdns_auth | Контейнер PowerDNS Authoritative. | |
| pdns_recursor | Контейнер PowerDNS Recursor. | |
| pdnsdist | Контейнер dnsdist (входная точка DNS на :53 TCP/UDP, балансировка/фильтрация). | |
| kea_dhcp4 | Контейнер DHCPv4 (ISC Kea). | |
| kea_ctrl_agent | Контейнер с API/Control Agent для управления DHCP. | |
| dragonfly | Контейнер DragonflyDB (кэширование/хранение сессий. | |
| shadow_api | Скрытое API, недоступное извне. | |
| event_handler | Контейнер сбора и первичной обработки системных событий и логов. | |
| event_sender | Контейнер для отправки событий. | |
| salt_master | Контейнер Salt Master (сервер групповых политик/управления конфигурациями). | |
Описание портов MULTIDIRECTORY Enterprise Edition
| Сервис | Используемые порты | Описание |
| DNS | :53/tcp :53/udp | DNS-запросы клиентов. |
| Web-интерфейс / API | :80 :443 | Доступ к веб-консоли и API через Traefik (HTTPS). |
| LDAP/LDAPS | :389 :389/udp :636 | LDAP (TCP), CLDAP (UDP 389), LDAPS (TCP 636). |
| Global Catalog | :3268 :3269 | Глобальный LDAP-каталог (3268 без TLS, 3269 с TLS). |
| Kerberos | :88 :88/udp | Аутентификация Kerberos (KDC). |
| Kpasswd | :464 | Смена паролей Kerberos. |
| Kadmind | :749 | Администрирование Kerberos. |
| Групповые политики Salt | :4505 :4506 | Коммуникация Salt Master и Salt Minion (управление конфигурациями). |
| Salt API | :8002 | HTTP API Salt Master. |
| DHCPv4 | :67/udp | Порт для DHCP-запросов клиентов. |
Описание MULTIDIRECTORY Community Edition
Описание контейнеров MULTIDIRECTORY Community Edition
| Имя контейнера | Описание | |
|---|---|---|
| traefik | Контейнер, отвечающий за маршрутизацию (HTTP/TCP/UDP), TLS. | |
| traefik_certs_dumper | Контейнер, выгружающий/подготавливающий сертификаты из Traefik. | |
| multidirectory_api | Контейнер с Web API. | |
| multidirectory-ldap_server-* | Контейнер(ы) LDAP-сервера, обслуживает LDAP/LDAPS запросы. | |
| cldap_server | Контейнер с CLDAP-сервером для обнаружения доменов/LDAP-сервисов по UDP. | |
| multidirectory-global_ldap_server-* | Контейнер(ы) глобального LDAP-сервера (Global Catalog) для централизованного поиска/репликации. | |
| MD-postgres | Контейнер с СУБД PostgreSQL. | |
| multidirectory_interface | Контейнер с веб-интерфейсом администрирования. | |
| multidirectory_migrations | Контейнер, выполняющий миграции базы данных. | |
| multidirectory_certs_check | Контейнер, выполняющий проверку/генерацию сертификатов. | |
| md_maintence | Контейнер, выполняющий периодические задания и служебные операции. | |
| kdc | Контейнер с сервером Kerberos. | |
| kadmind | Контейнер с Kerberos admin-службой и сменой паролей. | |
| kadmin_api | Контейнер с API для администрирования Kerberos. | |
| pdns_auth | Контейнер PowerDNS Authoritative. | |
| pdns_recursor | Контейнер PowerDNS Recursor. | |
| pdnsdist | Контейнер dnsdist (входная точка DNS на :53 TCP/UDP, балансировка/фильтрация). | |
| kea_dhcp4 | Контейнер DHCPv4 (ISC Kea). | |
| kea_ctrl_agent | Контейнер с API/Control Agent для управления DHCP. | |
| dragonfly | Контейнер DragonflyDB (кэширование/хранение сессий). | |
| shadow_api | Скрытое API, недоступное извне. | |
| event_handler | Контейнер сбора и первичной обработки системных событий и логов. | |
| event_sender | Контейнер для отправки событий. | |
Описание портов MULTIDIRECTORY Community Edition
| Сервис | Используемые порты | Описание |
| DNS | :53/tcp :53/udp | DNS-запросы клиентов. |
| Web-интерфейс / API | :80 :443 | Доступ к веб-консоли и API через Traefik (HTTPS). |
| LDAP/LDAPS | :389 :389/udp :636 | LDAP (TCP), CLDAP (UDP 389), LDAPS (TCP 636). |
| Global Catalog | :3268 :3269 | Глобальный LDAP-каталог (3268 без TLS, 3269 с TLS). |
| Kerberos | :88 :88/udp | Аутентификация Kerberos (KDC), опубликовано портами контейнера kdc. |
| Kpasswd | :464 | Смена паролей Kerberos. |
| Kadmind | :749 | Администрирование Kerberos. |
| DHCPv4 | :67/udp | Порт для DHCP-запросов клиентов. |