# Двухфакторная аутентификация для Redmine ## Описание Redmine умеет проверять учётные данные пользователей в каталоге — за это отвечают режимы LDAP-аутентификации. Если в режиме указать адрес локального инстанса Simple2FA вместо адреса контроллера домена, вход в Redmine получит второй фактор: пользователь подтверждает вход на своём устройстве. Метод подключения — [LDAP-прокси](index.md). Второй фактор подтверждается push-уведомлением в мобильном приложении, в Telegram или в MAX. Схема работы: 1. Пользователь открывает Redmine и вводит логин и пароль. 2. Redmine обращается по LDAP к локальному инстансу Simple2FA. 3. Инстанс проверяет логин и пароль в каталоге организации. 4. Инстанс запрашивает у пользователя подтверждение вторым фактором. 5. Пользователь подтверждает вход, и Redmine открывает сессию. ## Перед началом работы - В глобальных настройках инстанса включён LDAP-прокси, порты опубликованы на хосте — [шаги 1 и 2 общей инструкции](index.md#шаг-1-включить-ldap-прокси). - С сервера Redmine открыт доступ к инстансу по порту LDAP (`1389`) или LDAPS (`1636`). - DN сервисной учётной записи добавлен в список сервисных в глобальных настройках Simple2FA. - Сохранён доступ под локальным администратором Redmine — он не зависит от режимов LDAP. ## Подготовка в Simple2FA В панели администратора создайте [ресурс](../../admin/resources.md): | Поле | Значение | | --- | --- | | Название | Redmine | | Протокол | LDAP | | CIDR клиентов LDAP | IP-адрес сервера Redmine, например `10.0.0.60/32` | | Проверять первый фактор | Включить | | Поставщики учётных записей | Каталог, в котором проверяется пароль | Добавьте ресурс в группу пользователей, которым разрешён вход в Redmine. ## Настройка Redmine Войдите в Redmine под администратором, откройте **«Администрирование → LDAP-аутентификация»** и нажмите **«Создать»**: - **Имя** — например, `Simple2FA`; - **Сервер** — адрес локального инстанса Simple2FA; - **Порт** — `1389` для незашифрованного соединения или `1636` для LDAPS; при использовании LDAPS отметьте флажок LDAPS; - **Учётная запись** — DN сервисной учётной записи, например `CN=ldapbind,CN=Users,DC=example,DC=local`; - **Пароль** — её пароль из каталога; - **Базовый DN** — база поиска в вашем каталоге, например `DC=example,DC=local`; - **Таймаут (в секундах)** — `90`, чтобы пользователь успел подтвердить вход; - **Создавать пользователей автоматически** — включите, если учётные записи Redmine должны заводиться при первом входе. В блоке **«Атрибуты»** задайте соответствие полей Redmine атрибутам каталога: - **Атрибут логина** — `sAMAccountName` для Active Directory, `uid` для типового LDAP-каталога; - **Имя**, **Фамилия**, **Email** — `givenName`, `sn`, `mail`. Нажмите **«Создать»**. !!! warning "Кнопка проверки соединения не проверяет вход" Проверка подключения в Redmine выполняет только привязку сервисной учётной записи — второй фактор при этом не запрашивается. Реальную работу интеграции проверяйте входом тестового пользователя. ## Проверка работы 1. Откройте страницу входа Redmine в приватном окне браузера, не закрывая текущую сессию администратора. 2. Введите логин и пароль тестового пользователя каталога. 3. Дождитесь запроса подтверждения и подтвердите вход. 4. Убедитесь, что Redmine открыл сессию, а в журнале [«Попытки авторизации»](../../admin/auth-attempts.md) появилась успешная попытка на ресурсе Redmine. ## Смотрите также - [Приложения с входом по LDAP](index.md) — общая часть настройки и диагностика - [Ресурсы](../../admin/resources.md) - [Настройка ресурсов](../index.md)