Перейти к содержанию

Настройки

Справочник Настройки предназначен для определения общих настроек системы Допуск.

База данных геолокации

Для того, чтобы в личном кабинете на вкладке Устройства отображалась геолокация устройства с которого был совершён вход, необходимо загрузить в Систему базу данных геолокации в формате mmdb.

Сделать это можно, указав в Настройки -> Единая точка входа -> База данных геолокации ссылку на скачивание. После нажатия на кнопку Сохранить Система автоматически загрузит базу данных геолокации и запишет результат выполнения в Журнал событий.

Ссылку на бесплатное скачивание баз данных можно взять на сайте https://db-ip.com или https://www.maxmind.com

Пример ссылки с сайта https://db-ip.com:

https://download.db-ip.com/free/dbip-city-lite-2025-01.mmdb.gz

Информация

При использовании баз данных с сайта https://db-ip.com названия городов будут отображаться латиницей.

Информация

На данный момент для скачивания баз данных геолокации с сайта https://www.maxmind.com необходима регистрация.

Единая точка входа

Технология единого входа Single sign-on SSO — метод аутентификации, который позволяет пользователям безопасно аутентифицироваться сразу в нескольких приложениях и сайтах, используя один набор учетных данных.

URL адрес Единой точки входа можно найти в Настройки -> Единая точка входа.

Внимание

Технология единого входа работает только по протоколу https

Информация

Технология единого выхода как правило реализована на стороне сервиса из которого совершается выход. По этой причине единый выход может работать некорректно.

Подготовка keytab файла для SPNEGO

Для работы аутентификации SPNEGO/Kerberos необходимо подготовить и переместить keytab-файл с ключом сервисной учетной записи в каталог с файлами от docker volume - sso_conf.

Информация

При обращении пользователя браузер получает Kerberos-билет и передает его серверу, который проверяет билет с помощью ключа из keytab.

Настройка keytab файла на стороне домена Active Directory

SPN сервисного принципала в виде HTTP/host@REALM Например HTTP/sso.example.com@EXAMPLE.COM

В данном примере:

  • Домен Active Directory: EXAMPLE.COM
  • Контроллер домена: dc.example.com
  • Сервис: HTTP/sso.example.com
  • Файл keytab: sso_conf/http.keytab

Информация

Примеры команд выполняются от имени администратора домена. В качестве контроллера домена используется домен развёрнутый в Linux системе на основе Samba

  1. Создание сервисной учетной записи:

    На контроллере домена создайте отдельную учетную запись, которая будет использоваться только для SPNEGO. Например, spnego. После создания пользователя задайте ему сложный пароль. Рекомендуется запретить интерактивный вход данной учетной записи.

    Внимание

    Для правильной работы необходимо использовать совеременные типы шифрования Kerberos (AES128/AES256):

    Атрибут пользователя Значение Описание
    msDS-SupportedEncryptionTypes 8 AES128
    msDS-SupportedEncryptionTypes 16 AES256
    msDS-SupportedEncryptionTypes 24 AES128 + AES256

    Значения настраиваются в атрибуте пользователя - msDS-SupportedEncryptionTypes. После включения поддержки AES рекомендуется сменить пароль учетной записи. Это приводит к генерации новых Kerberos-ключей (AES128/AES256), которые будут использоваться при выдаче билетов.

  2. Регистрация SPN:

    На контроллере домена создайте SPN сервисного принципала в виде HTTP/host@REALM. Например - HTTP/sso.example.com@EXAMPLE.COM.

    samba-tool spn add HTTP/sso.example.com spnego
    

    Информация

    sso.example.com - URL адрес Единой точки входа, которрый можно посмотреть на вкладке: Настройки - Единая точка входа

  3. Генерация keytab:

    На контроллере домена экспортируйте Kerberos-ключ в keytab-файл.

    samba-tool domain exportkeytab --principal=HTTP/sso.example.com /root/http.keytab
    
  4. Копирование keytab на сервер Допуск:

    Скопируйте файл http.keytab в каталог с файлами от docker volume - sso_conf.

Настройка браузеров для работы с SPNEGO

Браузер Windows Linux
Mozilla Firefox 1. Откройте about:config
2. Найдите network.negotiate-auth.trusted-uris
3. Установите значение sso.example.com
4. Перезапустите браузер
Настройки выполняются аналогично системе Windows
Google Chrome / Chromium / Яндекс Браузер 1. Создайте раздел реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\<браузер>\
или
HKEY_CURRENT_USER\SOFTWARE\Policies\<браузер>\

Используйте соответствующий раздел:
- Google Chrome: Google\Chrome
- Chromium: Chromium
- Яндекс Браузер: Yandex\YandexBrowser

2. Создайте строковый параметр AuthServerAllowlist
3. Установите значение sso.example.com
5. Перезапустите браузер
1. Создайте каталог политики для используемого браузера:

Google Chrome:
sudo mkdir -p /etc/opt/chrome/policies/managed

Chromium:
sudo mkdir -p /etc/chromium/policies/managed

Яндекс Браузер:
sudo mkdir -p /etc/opt/yandex/browser/policies/managed

2. Создайте файл spnego.json со следующим содержимым в соответствующем каталоге:
{"AuthServerAllowlist": "sso.example.com"}
4. Перезапустите браузер

Проверка применения настроек браузеров

Браузер Действия
Mozilla Firefox 1. Откройте about:config.
2. Убедитесь, что параметр network.negotiate-auth.trusted-uris имеет значение sso.example.com.
Google Chrome / Chromium / Яндекс Браузер 1. Откройте chrome://policy.
2. Убедитесь, что отображается политика AuthServerAllowlist со значением sso.example.com.

Basic аутентификация

Basic аутентификация может понадобиться, чтобы получить доступ к приложению с помощью http клиента. Например, при использовании клиента командной строки Curl, можно использовать следующую команду:

curl <APPLICATION-URL> -L -u <USER>:<PASSWORD>

Basic аутентификация не является безопасной, так как значение полей <USER> и <PASSWORD> передаются по сети в виде открытого текста. Следовательно, необходимо учитывать два основных момента при использовании такого режима:

  • Рассмотрим на примере использования Curl. Если <APPLICATION-URL> вашего сервиса отличается от адреса сервера Единой точки входа, то Curl не будет отправлять заголовок Basic аутентификации. Такое поведение Curl можно переопределить флагом --location-trusted:

    curl --location-trusted -u <USER>:<PASSWORD> <APPLICATION-URL>
    

    Внимание

    Опасность заключается в том, что при таком переопределении значения <USER> и <PASSWORD> будут отправляться в открытом виде при каждом перенаправлении. Это позволит сервису, через который происходит перенаправление, завладеть логином и паролем пользователя.

  • Так как при включении Basic аутентификации значение полей <USER> и <PASSWORD> передаются по сети в виде открытого текста, необходимо использовать HTTPS/TLS соединение. Если вам понадобиться обойти проверку сертификата при использовании Curl, используйте флаг --insecure:

    curl --insecure <APPLICATION-URL> -L -u <USER>:<PASSWORD>
    

Вместо Basic аутентификации рекомендуется использовать PAT токены.

Персональные токены доступа (PAT токены)

Для возможности аутентификации с помощью PAT токенов включить настройку Доступ к PAT токенам. Например, при использовании клиента командной строки Curl, можно использовать следующую команду:

curl --location --request POST "<APPLICATION-URL>" --header "Authorization: Bearer <PAT-TOKEN>"

Стратегия защиты от подбора паролей

В системе поддерживается 2 варианта настройки:

1. IP - вариант защиты от подбора пароля с одного IP.

2. IP и Имя пользователя - вариант защиты от подбора пароля для пользователей, представленных одним IP (такой случай возможен, когда используется механизм преобразования сетевых адресов - NAT).