Настройка переменных окружения FreeRADIUS
Переменная | Описание |
---|---|
RADIUS_TAG | Тег docker-образа. Необходимо указать тег образа, который вы импортировали из архива через команду sudo docker load -i <имя архива>.tar . Также тег можно посмотреть после импорта образа через команду sudo docker images . |
RAD_UID | ID пользователя, под которым будет работать сервис (рекомендуется, чтобы ID не пересекалось с ID локальных пользователей хоста). Пример: 200000. |
RAD_GID | ID группы пользователя, под которым будет работать сервис (рекомендуется, чтобы ID не пересекалось с ID локальных пользователей хоста). Пример: 200000. |
INDEED_AM_URI | URL-адрес сервера Core Server. Пример: https://127.0.0.1/am/core/ . |
INDEED_AM_VALIDATE_CERT | Валидация серверного сертификата. Значения: true , false . |
INDEED_AM_CA_CERT_PATH | Путь внутри контейнера к каталогу с сертификатами сервера. Обычно монтируется к каталогу хоста common_certs. Если в INDEED_AM_VALIDATE_CERT задано значение true , то для каталога должен быть разрешен доступ на запись.Пример: ./common_certs:${INDEED_AM_CA_CERT_PATH}:rw,Z . |
LDAP_SERVER | IP-адрес LDAP-сервера. Если указан, то первый фактор аутентификации будет проверятся непосредственно на LDAP-сервере. |
LDAP_PORT | Порт AD-сервера. Для ldaps соединения обычно используется 636. Значение по умолчанию: 389. |
LDAP_IDENTITY | Учетная запись AD в формате значения атрибута distinguishedName , с правами на чтение AD. Пример: cn=someuser,cn=users,dc=mycompany,dc=com . |
LDAP_PASSWORD | Пароль к учетной записи из переменной LDAP_IDENTITY . |
LDAP_BASE_DN | Каталог пользователей AD в формате значения атрибута distinguishedName , с которыми будет взаимодействие.Пример: cn=users,dc=bond,dc=test . |
LDAP_CERT | Имя доменного сертификата, который находится в директории common_certs. Используется для установки ldaps-соединения с AD-сервером. Если используется LDAP, то переменную необходимо закомментировать. Пример: ad.crt . |
AM_PUSH_TIMEOUT_SEC | Настройка таймаута времени ожидания получения push-сообщения для провайдеров Indeed Key Push. |
AM_DEBUG | Запуск в режиме отладки, выводятся отладочные сообщения, модуль запускается в однопоточном режиме. Переменная закомментирована (false - не работает). Для включения необходимо раскомментировать.Значения: true , false . |
AM_MT_DEBUG | Запуск в режиме отладки, выводятся отладочные сообщения, модуль запускается в многопоточном режиме, флаг имеет приоритет над AM_DEBUG . |
LDAP_NETBIOS_NAME | Задает имя NETBIOS LDAP-сервера. Позволяет осуществлять вход пользователям в виде EXAMPLE\user. |
LDAP_DOMAIN_NAME | Задает доменное имя сервера, используется для определения LDAP-сервера, если задано несколько LDAP-серверов. Для режима нескольких LDAP-серверов для каждого сервера необходимо указать либо LDAP_DOMAIN_NAME , либо LDAP_NETBIOS_NAME . |
DEFAULT_DOMAIN_NAME | Содержит имя домена, которое добавляется к имени пользователя в виде суффикса, и таким образом создается имя пользователя в формате User Principal Name. Имя в формате UPN используется для запросов к LDAP и AM-серверам. Исходное имя пользователя во FreeRADIUS Extension атрибуте User-Name не изменяется. Данная переменная имеет приоритет над DEFAULT_NETBIOS_NAME . |
DEFAULT_NETBIOS_NAME | Содержит имя NetBIOS AD-сервера, которое добавляется к имени пользователя в виде префикса, и таким образом создается имя пользователя в формате Down-Level Logon Name. Имя в формате Down-Level Logon Name используется для запросов к АМ-серверу. Для запроса к LDAP-серверу используется исходное имя в формате SAM Account Name. Исходное имя пользователя во FreeRADIUS Extension атрибуте User-Name не изменяется. |
MAX_LDAP_SERVER | Задает максимальное количество обрабатываемых LDAP-серверов. Значение по умолчанию: 20. |
default_prompt_2fa | Задает запрос второго фактора, используемый по умолчанию. По умолчанию задано сообщение: Enter the second factor . |
prompt_2fa_<индентификатор провайдера с нижними подчеркиваниями, вместо тире> | Задает запрос второго фактора для конкретного метода. Идентификатор провайдера можно задавать либо в нижнем, либо в верхнем регистре. Пример: prompt_2fa_f696f05d_5466_42b4_bf52_21bee1cb9529 . |
INDEED_AM_CLIENT_CERT | Имя файла с клиентским сертификатом. Расположен в каталоге, который монтируется к INDEED_AM_CA_CERT_PATH .По умолчанию в файле docker-compose.yml указано соответствие значению common_certs . |
INDEED_AM_CLIENT_KEY_CERT | Имя файла с приватным ключом сертификата. Расположен в каталоге, который монтируется к INDEED_AM_CA_CERT_PATH .По умолчанию в файле docker-compose.yml указано соответствие значению common_certs . |
AM_CACHE_LIFETIME_SEC | Определяет время кеширования. Если задать значение 0 секунд, то кеширование не производится. Значение по умолчанию: 600 секунд. |
DISABLE_RLM_PREPROCESS | Параметр отвечает за предварительную обработку RADIUS-атрибутов. Параметр используется, если в запросе от клиентского приложения к FreeRADIUS отсутствует атрибут NAS-IP-Address. При отключении предварительной обработки (значение true ) данный модуль не будет преобразовывать другие атрибуты (например Src-IP-Address) в NAS-IP-Address, если NAS-IP-Address не был получен. При отсутствии NAS-IP-Address в запросе модуль добавляет такой атрибут и устанавливает его значение из атрибута Src-IP-Address request-пакета. В этом случае в настройках в Management Console необходимо указать Src-IP-Address.Значение по умолчанию: false . |
Формат имени пользователя
User Principal Name
User Principal Name (UPN) — имя для входа пользователя в формате email адреса, например user@indeed.domain. UPN-имя используется во FreeRADIUS Extension по умолчанию.
SAM Account Name
SAM Account Name — имя для входа пользователя без суффиксов и префиксов, например username. Для обработки имени формата SAM Account Name используются две переменные окружения:
DEFAULT_DOMAIN_NAME
— содержит имя домена, которое добавляется к имени пользователя в виде суффикса. Таким образом создается имя пользователя в формате UPN. Имя в формате UPN используется для запросов к серверам LDAP и AM. Эта переменная имеет приоритет надDEFAULT_NETBIOS_NAME
.DEFAULT_NETBIOS_NAME
— содержит NetBIOS-имя сервера AD, которое добавляется к имени пользователя в виде префикса. Таким образом создается имя пользователя в формате Down-Level Logon Name.
Down-Level Logon Name
Down-Level Logon Name — формат имени входа, используемый для указания домена и учетной записи пользователя в этом домене, например INDEED\user. Используется для запросов к АМ-серверу.
Чтобы использовать формат имени INDEED\user для запросов к LDAP-серверу, необходимо настроить переменную LDAP_NETBIOS_NAME
.
Настройка сообщения при запросе второго фактора
При запросе второго фактора многофакторной аутентификации для пользователя выводится сообщение по умолчанию — Enter the second factor
(Введите второй фактор). Чтобы изменить сообщение, задайте переменную окружения default_prompt_2fa
.
Также можно задать отдельное сообщение для конкретного провайдера. Для этого настройте переменную окружения prompt_2fa_<идентификатор провайдера с нижними подчеркиваниями, вместо тире>
. Настройка сообщения для конкретного провайдера имеет приоритет над переменной окружения default_prompt_2fa
.
Идентификатор провайдера в переменной задается либо только в нижнем, либо только в верхнем регистре. Например, для провайдера Software OTP переменная окружения может выглядеть prompt_2fa_7e87866d_1b9b_45a1_961e_bc48697f0020
или prompt_2fa_7E87866D_1B9B_45A1_961E_BC48697F0020
.
Для следующих методов многофакторной аутентификации (MFA) можно указать как отдельно идентификатор провайдера второго фактора, так и идентификатор для всей цепочки многофакторной аутентификации.
2FA: Passcode + Indeed Key (OTP) — e5d3185c-9a13-4538-be8f-d4e1c50a329e
2FA: Passcode + Secured TOTP — 882c1787-fd32-44a2-ba89-f1f529fbe7ab
2FA: Passcode + SMS OTP — 4e32199b-9a21-4cd7-8646-c70c48b55ed9
2FA: Passcode + Software TOTP — cb3d3b0a-29c6-4ba4-939d-09b126c10c2e
Настройка клиентского сертификата
По умолчанию используется встроенный клиентский сертификат, если в файле .env отсутствуют переменные окружения INDEED_AM_CLIENT_CERT
и INDEED_AM_CLIENT_KEY_CERT
.
Для повышения безопасности рекомендуется использовать собственный клиентский сертификат.
Чтобы настроить собственный клиентский сертификат на стороне FreeRADIUS:
В каталог common_certs добавьте клиентский сертификат (в формате .cer или .crt) и приватный ключ сертификата (в формате .key или .pem).
Настройте права владельца файла с сертификатом для пользователя, указанного в переменных окружения
RAD_UID
иRAD_GID
в файле .env для FreeRADIUS.sudo chown <RAD_UID:RAD_GID> * 755
Кеширование запросов к Core Server
Некоторые запросы к Core Server могут кешироваться:
/api/v6/module/getApplicationsDAL
/api/v6/user/searchUserId
/api/v6/logon/getAvailableMethods
/api/v6/authenticationMethod/getEffectiveClientSettings
Вызов getApplicationsDAL
кешируется глобально для всех независимых запросов к FreeRADIUS.
Время кеширования определяется переменной AM_CACHE_LIFETIME_SEC
и равно по умолчанию 600 секунд.
Если для AM_CACHE_LIFETIME_SEC
задать значение 0 секунд, то кеширование не производится.
Для вызовов searchUserId
, getAvailableMethods
и getEffectiveClientSettings
настройка AM_CACHE_LIFETIME_SEC
не действует, кеширование происходит в рамках сессии всегда, а именно в следующих сценариях:
- внутри сессии многофакторной аутентификации со вторым фактором в виде OTP (challenge-response),
- внутри сессии многофакторной аутентификации со вторым фактором в виде push-уведомления,
- внутри обработчика запроса FreeRADIUS — запрос на доступ (access-request) выполняется один раз, при необходимости данные запроса берутся из кеша.
Настройка LDAP-сервера
Настройте LDAP-сервер, если вы планируете использовать Windows Password в качестве первого фактора аутентификации. LDAP-сервер используется для проверки первого фактора.
Чтобы настроить LDAP-сервер, откройте файл .env с переменными окружения и добавьте или раскомментируйте переменные LDAP*
. Если переменные LDAP*
не заданы, проверка первого фактора осуществляется на Core Server.
Настройка одного LDAP-сервера
Настройка одного LDAP-сервера
Чтобы настроить LDAP-сервер, необходимо в файле .env раскомментировать переменные LDAP*
и задать для них значения:
LDAP_SERVER
— IP-адрес LDAP-сервера,LDAP_PORT
— порт AD-сервера,LDAP_IDENTITY
— учетная запись AD в формате значения атрибутаdistinguishedName
,LDAP_PASSWORD
— пароль к этой учетной записи,LDAP_BASE_DN
— каталог пользователей AD в формате значения атрибутаdistinguishedName
, с которыми будет взаимодействие.
Чтобы настроить подключение по защищенному ldaps-соединению, задайте переменную LDAP_CERT
, указав для нее название файла сертификата. В этом сценарии необходимо оставить значение по умолчанию для переменной LDAP_PORT
— 636.
Чтобы добавить возможность входа пользователя с использованием NetBIOS имени LDAP-сервера, задайте переменную окружения LDAP_NETBIOS_NAME
.
LDAP_SERVER=ldaps://dc.example.com
LDAP_PORT=636
LDAP_IDENTITY=cn=Администратор,cn=users,dc=example,dc=com
LDAP_PASSWORD=12345
LDAP_BASE_DN=cn=users,dc=example,dc=com
LDAP_CERT=example.crt
LDAP_NETBIOS_NAME=EXAMPLE
Настройка нескольких LDAP-серверов (в одном домене)
Настройка нескольких LDAP-серверов (в одном домене)
Чтобы настроить несколько LDAP-серверов, которые находятся в одном домене, в переменной LDAP_SERVER
перечислите через пробел IP-адреса LDAP-серверов, например:
LDAP_SERVER=dc1.example.com dc2.example.com dc3.example.com
Настройка нескольких LDAP-серверов (в разных доменах)
Настройка нескольких LDAP-серверов (в разных доменах)
Чтобы настроить несколько LDAP-серверов, необходимо к наименованию LDAP
добавить индекс (номер очередного сервера), например: LDAP_SERVER
, LDAP1_SERVER
, LDAP2_SERVER
. Переменная LDAP_SERVER
без номера в названии также является валидной переменной.
Все переменные, соответствующие LDAP-серверу, задаются с таким же индексом.
LDAP1_SERVER=ldaps://dc.example.com
LDAP1_PORT=636
LDAP1_IDENTITY=cn=Администратор,cn=users,dc=example,dc=com
LDAP1_PASSWORD=12345
LDAP1_BASE_DN=cn=users,dc=example,dc=com
LDAP1_CERT=example.crt
LDAP1_NETBIOS_NAME=EXAMPLE
Для нескольких LDAP-серверов необходимо задать значения всех доменов. Значения задаются в одну строку через пробел, например:
LDAP1_DOMAIN_NAME=example.com test.com example.org
Если задано несколько LDAP-серверов, то выбор LDAP-сервера осуществляется в соответствии со значениями LDAPN_NETBIOS_NAME
и LDAPN_DOMAIN_NAME
. Поэтому обязательно должно быть указано либо доменное имя, либо NetBIOS-имя.
Количество LDAP-серверов можно задать переменной окружения MAX_LDAP_SERVER
.
MAX_LDAP_SERVER
влияет только на переменные LDAP_SERVER
с индексами. LDAP_SERVER
(название без индекса) можно задать при значении MAX_LDAP_SERVER=0
.