# Двухфакторная аутентификация для Ansible AWX ## Описание Ansible AWX умеет аутентифицировать пользователей в каталоге по протоколу LDAP. Если указать в настройках адрес локального инстанса Simple2FA вместо адреса контроллера домена, вход в веб-интерфейс AWX получит второй фактор: пользователь подтверждает вход на своём устройстве, и только после этого AWX открывает сессию. Метод подключения — [LDAP-прокси](index.md). Второй фактор подтверждается push-уведомлением в мобильном приложении, в Telegram или в MAX. Схема работы: 1. Пользователь открывает AWX и вводит логин и пароль. 2. AWX обращается по LDAP к локальному инстансу Simple2FA. 3. Инстанс проверяет логин и пароль в каталоге организации. 4. Инстанс запрашивает у пользователя подтверждение вторым фактором. 5. Пользователь подтверждает вход, и AWX открывает сессию. ## Перед началом работы - В глобальных настройках инстанса включён LDAP-прокси, порты опубликованы на хосте — [шаги 1 и 2 общей инструкции](index.md#шаг-1-включить-ldap-прокси). - С сервера AWX открыт доступ к инстансу по порту LDAP (`1389`) или LDAPS (`1636`). - DN сервисной учётной записи добавлен в список сервисных в глобальных настройках Simple2FA. - Сохранён доступ под локальным администратором AWX — он не зависит от настроек LDAP. ## Подготовка в Simple2FA В панели администратора создайте [ресурс](../../admin/resources.md): | Поле | Значение | | --- | --- | | Название | Ansible AWX | | Протокол | LDAP | | CIDR клиентов LDAP | IP-адрес сервера AWX, например `10.0.0.40/32` | | Проверять первый фактор | Включить | | Поставщики учётных записей | Каталог, в котором проверяется пароль | Добавьте ресурс в группу пользователей, которым разрешён вход в AWX. ## Настройка Ansible AWX Войдите в AWX под администратором и откройте **Settings → Authentication → LDAP settings**. Заполните параметры: - **LDAP Server URI** — адрес инстанса Simple2FA: `ldap://simple2fa.example.local:1389` или `ldaps://simple2fa.example.local:1636`; - **LDAP Bind DN** — DN сервисной учётной записи, например `CN=ldapbind,CN=Users,DC=example,DC=local`; - **LDAP Bind Password** — её пароль из каталога; - **LDAP Group Type** — `ActiveDirectoryGroupType` для Active Directory; - **LDAP User Search** — область и фильтр поиска пользователей в вашем каталоге: ```json [ "CN=Users,DC=example,DC=local", "SCOPE_SUBTREE", "(sAMAccountName=%(user)s)" ] ``` - **LDAP Group Search** — область и фильтр поиска групп: ```json [ "DC=example,DC=local", "SCOPE_SUBTREE", "(objectClass=group)" ] ``` - **LDAP User Attribute Map** — сопоставление атрибутов каталога с полями пользователя AWX: ```json { "first_name": "givenName", "last_name": "sn", "email": "mail" } ``` - **LDAP Connection Options** — параметры соединения. Увеличьте сетевой таймаут, чтобы пользователь успел подтвердить вход: ```json { "OPT_REFERRALS": 0, "OPT_NETWORK_TIMEOUT": 90 } ``` При необходимости заполните **LDAP Organization Map** или **LDAP Team Map** — они определяют, в какую организацию и команду попадают пользователи каталога. Нажмите **Save**. !!! warning "Таймаут должен превышать время ожидания подтверждения" По умолчанию Simple2FA ждёт ответа пользователя 60 секунд. Если сетевой таймаут AWX меньше, соединение оборвётся раньше подтверждения, и вход не пройдёт. Значение 90 секунд даёт запас; при другом значении «Таймаута ожидания подтверждения» пересчитайте его. ## Проверка работы 1. Откройте страницу входа AWX в приватном окне браузера. 2. Введите логин и пароль тестового пользователя каталога. 3. Дождитесь запроса подтверждения и подтвердите вход. 4. Убедитесь, что AWX открыл сессию, а в журнале [«Попытки авторизации»](../../admin/auth-attempts.md) появилась успешная попытка на ресурсе Ansible AWX. ## Смотрите также - [Приложения с входом по LDAP](index.md) — общая часть настройки и диагностика - [Ресурсы](../../admin/resources.md) - [Настройка ресурсов](../index.md)