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

Параметры безопасности и аутентификации

ALLOW_TOKEN_RETRIEVAL

По умолчанию: False

Примечание

Значение по умолчанию этого параметра изменено с True на False в InfraVision v4.3.0.

Если отключено, значения API-токенов не будут отображаться после первоначального создания каждого токена. Пользователь должен записать значение токена до его создания, иначе оно будет потеряно. Обратите внимание, что это влияет на всех пользователей, независимо от назначенных прав.


ALLOWED_URL_SCHEMES

Совет

Динамический параметр конфигурации

По умолчанию: ('file', 'ftp', 'ftps', 'http', 'https', 'irc', 'mailto', 'sftp', 'ssh', 'tel', 'telnet', 'tftp', 'vnc', 'xmpp')

Список разрешённых схем URL, на которые ссылаются при отображении ссылок в InfraVision. Обратите внимание, что будут приняты только схемы, указанные в этом списке: при добавлении собственных обязательно воспроизведите все значения по умолчанию (за исключением нежелательных схем).


AUTH_PASSWORD_VALIDATORS

Этот параметр действует как сквозной для настройки встроенных валидаторов паролей Django для локальных учётных записей пользователей. Эти правила применяются при создании или обновлении пароля пользователя, чтобы гарантировать, что он соответствует минимальным критериям, таким как длина или сложность. Конфигурация по умолчанию показана ниже.

AUTH_PASSWORD_VALIDATORS = [
    {
        "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
        "OPTIONS": {
            "min_length": 12,
        },
    },
    {
        "NAME": "utilities.password_validation.AlphanumericPasswordValidator",
    },
]

Конфигурация по умолчанию применяет следующие критерии:

  • Пароль должен быть длиной не менее 12 символов.
  • Пароль должен содержать как минимум одну заглавную букву, одну строчную букву и одну цифру.

Хотя это не рекомендуется, правила валидации по умолчанию можно отключить, установив AUTH_PASSWORD_VALIDATORS = [] в файле конфигурации. Для получения дополнительной информации о настройке валидации паролей см. документацию Django.


CORS_ORIGIN_ALLOW_ALL

По умолчанию: False

Если True, запросы на совместное использование ресурсов между источниками (CORS) будут приниматься от всех источников. Если False, будет использоваться белый список (см. ниже).


CORS_ORIGIN_WHITELIST

CORS_ORIGIN_REGEX_WHITELIST

Эти настройки определяют список источников, которым разрешено выполнять кросс-доменные API-запросы. Используйте CORS_ORIGIN_WHITELIST для определения списка точных имён хостов или CORS_ORIGIN_REGEX_WHITELIST для определения набора регулярных выражений. (Эти настройки не действуют, если CORS_ORIGIN_ALLOW_ALL равен True.) Например:

CORS_ORIGIN_WHITELIST = [
    'https://example.com',
]

По умолчанию: csrftoken

Имя cookie для использования в качестве токена аутентификации защиты от подделки межсайтовых запросов (CSRF). См. документацию Django для получения более подробной информации.


По умолчанию: False

Если True, cookie, используемый для защиты от подделки межсайтовых запросов (CSRF), будет помечен как безопасный, что означает, что он может быть отправлен только через HTTPS-соединение.


CSRF_TRUSTED_ORIGINS

По умолчанию: []

Определяет список доверенных источников для небезопасных (например, POST) запросов. Это сквозной параметр для настройки Django CSRF_TRUSTED_ORIGINS. Обратите внимание, что каждый перечисленный хост должен указывать схему (например, http:// или https://).

CSRF_TRUSTED_ORIGINS = (
    'http://netbox.local',
    'https://netbox.local',
)

DEFAULT_PERMISSIONS

По умолчанию:

{
    'users.view_token': ({'user': '$user'},),
    'users.add_token': ({'user': '$user'},),
    'users.change_token': ({'user': '$user'},),
    'users.delete_token': ({'user': '$user'},),
}

Этот параметр определяет права доступа к объектам, которые автоматически применяются к любому аутентифицированному пользователю, независимо от того, какие права были определены в базе данных. По умолчанию этот параметр настроен так, чтобы позволить всем пользователям управлять своими собственными API-токенами, однако он может быть переопределён для любой цели.

Например, чтобы позволить всем пользователям создавать роль устройства, начинающуюся со слова "temp", вы можете настроить следующее:

DEFAULT_PERMISSIONS = {
    'dcim.add_devicerole': (
        {'name__startswith': 'temp'},
    )
}

Внимание

Установка пользовательского значения для этого параметра перезапишет сопоставление прав по умолчанию, показанное выше. Если вы хотите сохранить сопоставление по умолчанию, обязательно воспроизведите его в своей пользовательской конфигурации.


EXEMPT_VIEW_PERMISSIONS

По умолчанию: [] (пустой список)

Список моделей InfraVision, освобождённых от применения прав на просмотр. Модели, перечисленные здесь, будут доступны для просмотра всем пользователям, как аутентифицированным, так и анонимным.

Перечислите модели в формате <app>.<model>. Например:

EXEMPT_VIEW_PERMISSIONS = [
    'dcim.site',
    'dcim.region',
    'ipam.prefix',
]

Чтобы освободить все модели от применения прав на просмотр, установите следующее. (Обратите внимание, что EXEMPT_VIEW_PERMISSIONS должен быть итерируемым объектом.)

EXEMPT_VIEW_PERMISSIONS = ['*']

Примечание

Использование подстановочного знака не затронет определённые потенциально чувствительные модели, такие как права пользователей. Если есть необходимость освободить эти модели, они должны быть указаны индивидуально.


LOGIN_PERSISTENCE

По умолчанию: False

Если True, время жизни сессии аутентификации пользователя будет автоматически сбрасываться при каждом действительном запросе. Например, если LOGIN_TIMEOUT настроен на 14 дней (по умолчанию), и пользователь, чья сессия истекает через пять дней, делает запрос к InfraVision (с действительным cookie сессии), время жизни сессии будет сброшено до 14 дней.

Обратите внимание, что включение этой настройки заставляет InfraVision обновлять сессию пользователя в базе данных (или файле, как настроено через SESSION_FILE_PATH) при каждом запросе, что может создать значительную нагрузку в очень активных средах. Это также позволяет активному пользователю оставаться аутентифицированным в InfraVision неограниченно долго.


LOGIN_REQUIRED

По умолчанию: True

Когда включено, только аутентифицированным пользователям разрешён доступ к любой части InfraVision. Отключение этого позволит неаутентифицированным пользователям получать доступ к большинству областей InfraVision (но не вносить никаких изменений).

Информация

До InfraVision v4.0.2 эта настройка была отключена по умолчанию.


LOGIN_TIMEOUT

По умолчанию: 1209600 секунд (14 дней)

Время жизни (в секундах) cookie аутентификации, выдаваемого пользователю InfraVision при входе.


LOGIN_FORM_HIDDEN

По умолчанию: False

Опция для скрытия формы входа, когда используется только SSO-аутентификация.

Внимание

Если провайдер SSO недоступен, вход в InfraVision будет невозможен, если эта опция включена. Единственный выход — отключить её в локальной конфигурации и перезапустить сервис InfraVision.


LOGOUT_REDIRECT_URL

По умолчанию: 'home'

Имя представления или URL, на который пользователь перенаправляется после выхода из системы.


SECURE_HSTS_INCLUDE_SUBDOMAINS

По умолчанию: False

Если True, директива includeSubDomains будет включена в заголовок HTTP Strict Transport Security (HSTS). Эта директива указывает браузеру применять политику HSTS ко всем поддоменам текущего домена.


SECURE_HSTS_PRELOAD

По умолчанию: False

Если True, директива preload будет включена в заголовок HTTP Strict Transport Security (HSTS). Эта директива указывает браузеру предварительно загрузить сайт по HTTPS. Браузеры, использующие список предварительной загрузки HSTS, будут принудительно обращаться к сайту через HTTPS, даже если пользователь вводит HTTP в адресной строке.


SECURE_HSTS_SECONDS

По умолчанию: 0

Если установлено ненулевое целочисленное значение, SecurityMiddleware устанавливает заголовок HTTP Strict Transport Security (HSTS) на все ответы, которые его ещё не имеют. Это укажет браузеру, что веб-сайт должен быть доступен через HTTPS, блокируя любые HTTP-запросы.


SECURE_SSL_REDIRECT

По умолчанию: False

Если True, все не-HTTPS-запросы будут автоматически перенаправлены на использование HTTPS.

Внимание

Убедитесь, что ваш фронтенд HTTP-демон настроен на правильную пересылку HTTP-схемы, прежде чем включать эту опцию. Неправильно настроенный фронтенд может привести к циклическому перенаправлению.


По умолчанию: sessionid

Имя, используемое для cookie сессии. См. документацию Django для получения более подробной информации.


По умолчанию: False

Если True, cookie, используемый для аутентификации сессии, будет помечен как безопасный, что означает, что он может быть отправлен только через HTTPS-соединение.


SESSION_FILE_PATH

По умолчанию: None

Данные HTTP-сессии используются для отслеживания аутентифицированных пользователей при доступе к InfraVision. По умолчанию InfraVision хранит данные сессии в своей базе данных PostgreSQL. Однако это препятствует аутентификации на резервном экземпляре InfraVision без доступа на запись к базе данных. В качестве альтернативы здесь можно указать путь к локальному файлу, и InfraVision будет хранить данные сессии в виде файлов вместо использования базы данных. Обратите внимание, что системный пользователь InfraVision должен иметь права на чтение и запись по этому пути.