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

Аутентификация и права доступа

Права на основе объектов

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

  • Тип(ы) объектов, к которым применяется право
  • Пользователи и/или группы, которым предоставляются права
  • Действие(я), разрешённые правом (например, просмотр, добавление, изменение и т.д.)
  • Любые ограничения, лимитирующие применение права к определённому подмножеству объектов

Реализация ограничений позволяет администраторам InfraVision назначать права на отдельные объекты: пользователи могут быть ограничены просмотром или взаимодействием с произвольными подмножествами объектов на основе их атрибутов. Например, вы можете ограничить конкретного пользователя просмотром только тех префиксов или IP-адресов, которые находятся в определённом VRF. Или вы можете ограничить группу изменением устройств только в определённом регионе.

Ограничения прав объявляются в формате JSON при создании права и работают очень похоже на запросы Django ORM. Например, вот ограничение, соответствующее зарезервированным VLAN с VLAN ID от 100 до 199:

[
  {
    "vid__gte": 100,
    "vid__lt": 200
  },
  {
    "status": "reserved"
  }
]

Подробнее об ограничениях прав см. в документации по правам доступа.

LDAP-аутентификация

InfraVision включает встроенный бэкенд аутентификации для проверки пользователей через удалённый LDAP-сервер.

Единый вход (SSO)

InfraVision интегрируется с открытой библиотекой python-social-auth для предоставления множества вариантов аутентификации через единый вход (SSO). Они включают:

  • Cognito
  • GitHub и GitHub Enterprise
  • GitLab
  • Google
  • Hashicorp Vault
  • Keycloak
  • Microsoft Entra ID
  • Microsoft Graph
  • Okta
  • OIDC

...и многие другие. Также можно создавать собственные бэкенды по мере необходимости, используя базовые классы OAuth, OpenID и SAML библиотеки python-social-auth. Примеры настройки SSO можно найти в документации по аутентификации InfraVision.