Настройка двухфакторной аутентификации для входа в Staffcop¶
Инструкция описывает настройку двухфакторной аутентификации (2FA) через Radius-адаптер. Staffcop отправляет Radius-запросы на адаптер, который передает их в сервис 2FA.
Поддерживаются два сервиса:
Контур ID (K.ID) — адаптер устанавливается на сервер Staffcop;
Multifactor — адаптер устанавливается на сервере с Multifactor.
Настройка Staffcop для обоих сервисов одинакова. Различаются адрес Radius-сервера, секрет и способ установки адаптера.
Порядок настройки¶
Определить сценарий входа
│
├── Пользователь в AD, для Контура также доступен ALD Pro ──┐
│ │
└── Локальный админ Staffcop ───────────────────────────────┤
│
Настроить пользователей ◄────────────────────────────────────────────┘
│
├── Служба каталогов
├── Контур.ID
└── Multifactor
│
Настроить сеть (если каталог)
│
Выбрать вариант 2FA
│
├── Контур.ID ──────► Развернуть RadiusProxy на сервере Staffcop
│ │ ──────────────────────┐
│ └── Настроить адаптер (appsettings.json) |
│ |
└── Multifactor ────► Развернуть multifactor-radius на сервере Multifactor |
│ |
└── Настроить адаптер (multifactor-radius-adapter.dll.config) ────|
|
|
|
Настроить двухфакторную авторизацию на сервере Staffcop |
в файле локальной конфигурации сервера /etc/staffcop/config ────┘
|
|
staffcop restart ─────────────────────────────────────────────┘
│
Проверить вход
Сценарии входа¶
Вход в Staffcop работает по одному из двух сценариев:
Сценарий |
Где проверяется пароль |
Чем подтверждается вход |
|---|---|---|
Пользователь есть в Active Directory или ALD Pro. |
В каталоге Active Directory или ALD Pro |
Контур.ID, Multifactor или Яндекс.Ключ |
Пользователь — локальный администратор Staffcop |
Не проверяется |
Контур.ID, Multifactor или Яндекс.Ключ |
Способы подтверждения входа зависят от сервиса 2FA:
Контур.ID — приложение Контур.Коннект: пуш-уведомление, OTP-код или звонок;
Multifactor — пуш-уведомление в приложении Multifactor;
Яндекс.Ключ — код.
Настройка пользователей¶
Перед настройкой Radius-прокси подготовьте учетные записи пользователей во всех задействованных системах.
Внимание
Radius игнорирует запросы пользователей с логином admin.
Служба каталогов¶
Создайте пользователя:
в Active Directory — user@domain.local;
в ALD Pro — user@domain.local.
Добавьте пользователя user@domain.local в группу, которая синхронизируется с MS AD / ALD Pro.
На сервере Staffcop подключитесь к AD — см. Настройка Active Directory.
Контур.ID¶
В кабинете администратора K.ID отправьте пользователю ссылку-приглашение на учетную запись user@example.com.
Примечание
К учетной записи user@example.com должен быть привязан Контур.Коннект. После перехода по ссылке из приглашения пользователь появится в списке.
Добавьте этого пользователя в Организацию.
Привяжите к пользователю Логин — Домен для входа: user@domain.local или user.
Примечание
Привязанные логины должны совпадать с логинами в AD, ALD Pro или на сервере Staffcop. При несовпадении аутентификация через RADIUS завершится ошибкой.
Multifactor¶
Пользователя в Multifactor можно добавить на вкладке Пользователи.
Настройка сети¶
Если вы используете службу каталогов, настройте сетевые параметры сервера Staffcop. Замените тестовые IP-адреса и домены в примерах на реальные.
Добавьте параметры MS AD / ALD Pro в файл конфигурации сетевых интерфейсов. Пример содержимого файла: /etc/netplan/00-installer-config.yaml:
network: ethernets: ens33: dhcp4: true dhcp-identifier: mac dhcp4-overrides: use-dns: false nameservers: addresses: [10.10.10.10] search: [domain.local] version: 2
Добавьте параметры MS AD / ALD Pro в файл /etc/resolv.conf.
nameserver 10.10.10.10 options edns0 trust-ad search domain.local
Развертывание адаптера¶
Контур.ID¶
RADIUS-адаптер RadiusProxy устанавливается на сервер Staffcop.
Пользователь Active Directory или ALD Pro¶
Установите RadiusProxy на сервере Staffcop по официальной документации. В настройках конфигурации ресурса Radius-адаптера в качестве Основного фактора выберите Active Directory:
Включите 2FA на сервере Staffcop.
Добавьте в /etc/staffcop/config настройки:
AUTHENTICATION_BACKENDS = ( 'accounts.backends.Radius2FABackend', 'django.contrib.auth.backends.ModelBackend', 'active_directory.backend.SimpleBackend', ) RADIUS_SERVER = 'localhost' # адрес Radius-сервера RADIUS_PORT = 1812 # порт Radius-сервера RADIUS_SECRET = 'test-shared-secret' # общий секретный ключ, должен совпадать с ключом на Radius-сервере RADIUS_RETRIES = 1 # количество попыток получить ответ от Radius-сервера RADIUS_TIMEOUT = 40 # таймаут ожидания ответа от Radius-сервера, в секундахПерезагрузите сервер:
staffcop restart
Пользователь — локальный администратор Staffcop¶
В файле настройки ресурса Radius-адаптера измените значение параметра
FirstFactorSourceнаNone.Измените настройки 2FA на сервере Staffcop.
Измените файл /etc/staffcop/config:
AUTHENTICATION_BACKENDS = ( 'accounts.backends.Radius2FABackend', 'django.contrib.auth.backends.ModelBackend', ) RADIUS_SERVER = 'localhost' # адрес Radius-сервера RADIUS_PORT = 1812 # порт Radius-сервера RADIUS_SECRET = 'test-shared-secret' # общий секретный ключ, должен совпадать с ключом на Radius-сервере RADIUS_RETRIES = 1 # число попыток получить ответ от Radius-сервера RADIUS_TIMEOUT = 40 # таймаут ожидания ответа от Radius-сервера, в секундахПерезагрузите сервер:
staffcop restart
Multifactor¶
В этом разделе вы настроите двухфакторную аутентификацию через сервис Multifactor. Radius-адаптер устанавливается на сервере с Multifactor. Второй фактор подтверждается одним из способов: приложение Multifactor или Яндекс.Ключ.
Пользователь Active Directory¶
Установите Radius-адаптер на сервере с Multifactor по официальной инструкции. Пример содержимого файла /opt/multifactor/radius/multifactor-radius-adapter.dll.config:
<configuration> <appSettings> <add key="adapter-server-endpoint" value="0.0.0.0:1812"/> <add key="multifactor-api-url" value="https://api.gos.multifactor.ru"/> <add key="multifactor-api-timeout" value="00:00:65"/> <add key="logging-level" value="Debug"/> <add key="multifactor-nas-identifier" value="rs_test000000000000000000000000"/> <add key="multifactor-shared-secret" value="test-multifactor-secret"/> <add key="first-factor-authentication-source" value="ActiveDirectory"/> <add key="active-directory-domain" value="ldap://10.0.0.10/DC=test,DC=local"/> <add key="radius-client-ip" value="10.10.10.10"/> <add key="radius-shared-secret" value="test-shared-secret"/> </appSettings> </configuration>
Включите 2FA на сервере Staffcop.
Добавьте в /etc/staffcop/config настройки:
AUTHENTICATION_BACKENDS = ( 'accounts.backends.Radius2FABackend', 'django.contrib.auth.backends.ModelBackend', 'active_directory.backend.SimpleBackend', ) RADIUS_SERVER = '10.10.10.10' # адрес Radius-сервера RADIUS_PORT = 1812 # порт Radius-сервера RADIUS_SECRET = 'test-shared-secret' # общий секретный ключ, должен совпадать с ключом на Radius-сервере RADIUS_RETRIES = 1 # число попыток получить ответ от Radius-сервера RADIUS_TIMEOUT = 40 # таймаут ожидания ответа от Radius-сервера, в секундах
Перезагрузите сервер:
staffcop restart
Пользователь — локальный администратор Staffcop¶
Установите адаптер на сервере с Multifactor по официальной инструкции. Пример содержимого файла /opt/multifactor/radius/multifactor-radius-adapter.dll.config:
<configuration> <appSettings> <add key="adapter-server-endpoint" value="0.0.0.0:1812"/> <add key="multifactor-api-url" value="https://api.gos.multifactor.ru"/> <add key="multifactor-api-timeout" value="00:00:65"/> <add key="logging-level" value="Debug"/> <add key="multifactor-nas-identifier" value="rs_test000000000000000000000000"/> <add key="multifactor-shared-secret" value="test-multifactor-secret"/> <add key="first-factor-authentication-source" value="None"/> <add key="radius-client-ip" value="10.10.10.10"/> <add key="radius-shared-secret" value="test-shared-secret"/> </appSettings> </configuration>
Включите 2FA на сервере Staffcop.
Добавьте в /etc/staffcop/config настройки:
AUTHENTICATION_BACKENDS = ( 'accounts.backends.Radius2FABackend', 'django.contrib.auth.backends.ModelBackend', ) RADIUS_SERVER = '10.10.10.10' # адрес Radius-сервера RADIUS_PORT = 1812 # порт Radius-сервера RADIUS_SECRET = 'test-shared-secret' # общий секретный ключ, должен совпадать с ключом на Radius-сервере RADIUS_RETRIES = 1 # количество попыток получить ответ от Radius-сервера RADIUS_TIMEOUT = 40 # таймаут ожидания ответа от Radius-сервера, в секундах
Перезагрузите сервер:
staffcop restart
Последнее обновление: 12.11.26

