Skip to main content
Version: Indeed Access Manager 9.2

Настройка переменных окружения FreeRADIUS

ПеременнаяОписание
RADIUS_TAGТег docker-образа. Необходимо указать тег образа, который вы импортировали из архива через команду sudo docker load -i <имя архива>.tar. Также тег можно посмотреть после импорта образа через команду sudo docker images.
RAD_UIDID пользователя, под которым будет работать сервис (рекомендуется, чтобы ID не пересекалось с ID локальных пользователей хоста).
Пример: 200000.
RAD_GIDID группы пользователя, под которым будет работать сервис (рекомендуется, чтобы ID не пересекалось с ID локальных пользователей хоста).
Пример: 200000.
INDEED_AM_URIURL-адрес сервера 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_SERVERIP-адрес 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) можно указать как отдельно идентификатор провайдера второго фактора, так и идентификатор для всей цепочки многофакторной аутентификации.

Идентификатор для цепочки 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:

  1. В каталог common_certs добавьте клиентский сертификат (в формате .cer или .crt) и приватный ключ сертификата (в формате .key или .pem).

  2. Настройте права владельца файла с сертификатом для пользователя, указанного в переменных окружения 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.