Управление ролями и пользователями
В этой главе:
Предустановленные роли
Для работы с FindFace Multi предусмотрены следующие предустановленные роли:
Администратор: предоставляется полный доступ к функциональности FindFace Multi, интеграционным и административным инструментам.
Важно
Супер Администратор не может лишиться прав администратора даже при смене роли.
Оператор: предоставляется полный доступ к функциональности FindFace Multi.
Пользователь: обладает правами на работу с событиями и эпизодами, а также на изменение данных в своем профиле. Остальные функции доступны в режиме чтения.
Вы можете изменить привилегии предустановленных ролей, а также создать новые роли.
Создание новой роли в веб-интерфейсе
Для создания новой роли в веб-интерфейсе выполните следующие действия:
Перейдите Настройки -> Роли.
Нажмите + Новая роль.
На вкладке Сведения задайте название роли. Сохраните роль.
После сохранения роли вы увидите, что рядом с вкладкой Сведения появились следующие вкладки:
Списки наблюдения: права роли на определенные списки наблюдения
Группы камер: права роли на определенные группы камер
Права доступа: привилегии роли на работу с системными функциями и сущностями
Задайте права роли в соответствии со своими потребностями. Обратите внимание на разницу между правами на определенный список наблюдения/группу камер и правами на системную сущность
watchlist
/cameragroup
. Например, если вы установитеОтсутствует
для определенной группы камер на вкладке Группы камер, пользователи с соответствующей ролью не смогут работать с данной группой камер. Снятие всех флажков для сущностиcameragroup
на вкладке Права доступа не позволит пользователям просматривать и работать со всеми группами камер.Полный список сущностей FindFace Multi, которые используются в текущей версии:
all_own_sessions
: все сессии текущего пользователя на разных устройствахПримечание
Если для данной сущности установлены соответствующие разрешения, пользователи смогут просматривать (
Просмотр
) и закрывать (Удалить
) все свои сессии на разных устройствах. В противном случае пользователям будет разрешено только просматривать и закрывать свою сессию на текущем устройстве. Работа с сессиями производится на вкладке Сессии (Настройки).bodycluster
: кластер силуэтовbodyevent
: событие распознавания силуэтаbodyobject
: фотография в карточке человека в полный ростcamera
: камераcameragroup
: группа камерcarcard
: карточка транспортного средстваcarcluster
: кластер изображений транспортного средстваcarepisode
: эпизод с транспортным средствомcarobject
: фотография транспортного средства в карточкеcounter
: счетчикиdeviceblacklistrecord
: список блокировокfacecluster
: кластер лицfaceevent
: событие распознавания лицаfaceobject
: фотография лица в карточкеhumancard
: карточка человекаhumanepisode
: эпизод с человекомreport
: отчетыupload
: элемент (фото) в пакетной загрузкеuploadlist
: список фотографий в пакетной загрузкеuser
: пользовательvideoarchive
: идентификация объектов в видеофайлахwatchlist
: список наблюденияwebhook
: вебхук
Вы также можете включать и отключать права на следующую функциональность:
batchupload_cards
: пакетная загрузка фотографийchange_runtimesetting
: изменение основных настроек FindFace Multiview_auditlog
: просмотр и работа с аудит логами.configure_ntls
: конфигурация сервера лицензийfindface-ntls
view_runtimesetting
: просмотр основных настроек FindFace Multi
Сохраните изменения.
Основная и дополнительная роль пользователя
Вы можете назначить пользователю привилегии, используя следующие роли:
Основная роль: основная роль пользователя, обязательная для назначения. Пользователю можно назначить только одну основную роль.
Дополнительная пользовательская роль, необязательная для назначения. Одному пользователю можно назначить несколько ролей. Связанные с ними права будут добавлены к правам, предоставляемым основной ролью.
Все пользователи, принадлежащие к определенной основной роли, автоматически получают доступ к группам камер (и архивам внутри группы) и спискам наблюдения (и карточкам в этих списках), созданным пользователем с той же основной ролью, с учетом привилегий, определенных их дополнительными ролями.
Создание пользовательского аккаунта вручную
Для создания пользовательского аккаунта вручную выполните следующие действия:
Перейдите Настройки -> Пользователи.
Нажмите + Новый пользователь.
На вкладке Сведения введите данные пользователя, такие как название, имя пользователя и пароль. При необходимости добавьте комментарий.
Примечание
При установке пароля учитывайте требования к паролю:
содержит не менее 8 символов
содержит не только цифры
не входит в список 20000 распространенных паролей
не похож на другие атрибуты пользователя
может содержать только буквы латинского алфавита, цифры и специальные символы
Из раскрывающегося списка Роли выберите одну или несколько пользовательских ролей. Назначьте одну из них основной.
На вкладке Фотографии прикрепите фотографию пользователя.
Сохраните аккаунт пользователя.
Работа с ролями и пользователями в консоли
В случае если предустановленные роли были удалены из системы, используйте следующую команду, для того чтобы создать их:
sudo docker exec -it findface-multi-findface-multi-identity-provider-1 /opt/findface-security/bin/python3 /tigre_prototype/manage.py create_groups
Для создания пользователя с правами Супер Администратора (superuser
) выполните следующую команду (обратите внимание, что password
является обязательным аргументом):
sudo docker exec -it findface-multi-findface-multi-identity-provider-1 /opt/findface-security/bin/python3 /tigre_prototype/manage.py create_default_user --password <password>
Интеграция с Active Directory для автоматического создания пользователей
При большом количестве пользователей в FindFace Multi создание их аккаунтов по одному может быть неудобным. Одним из способов облегчить создание пользователей является использование интеграции FindFace Multi с Active Directory. Для настройки интеграции руководствуйтесь приведенными ниже пошаговыми инструкциями, соблюдая последовательность действий.
Создание файла Keytab
Войдите на сервер Active Directory и выполните следующие действия:
Создайте новый аккаунт пользователя в домене Active Directory для использования в качестве сервисного аккаунта.
Выполните следующие действия:
Откройте Active Directory. Нажмите Пуск -> Средства администрирования -> Пользователи и компьютеры Active Directory.
Нажмите на имя домена, а затем разверните содержимое. Щелкните правой кнопкой мыши Пользователи, выберите Создать -> Пользователь. Отобразится форма создания пользователя.
Заполните поля формы на свое усмотрение. На второй вкладке поставьте флажок Срок действия пароля не ограничен.
Нажмите Далее. Проверьте введенные данные и, если все верно, нажмите Готово.
Щелкните правой кнопкой мыши по созданному аккаунту пользователя, а затем перейдите Свойства -> Член групп -> Добавить.
Добавьте в список группы Администраторы домена и Пользователи домена, а затем нажмите «ОК».
Нажмите OK для завершения.
Зарегистрируйте имя субъекта-службы (Service Principal Name, SPN) для созданного сервисного аккаунта. Для этого откройте PowerShell от имени администратора и выполните следующую команду, указав фактическое имя пользователя (вместо SERVICE USER NAME) и домен. В примере ниже имя домена
testntl.local
.setspn -A HTTP/<SERVICE USER NAME>.testntl.local@TESTNTL.LOCAL <SERVICE USER NAME>
В том же окне PowerShell сгенерируйте keytab-файл, выполнив приведенную ниже команду с фактическим именем сервисного пользователя
SERVICE USER NAME
, доменом и желаемым именем файла вместоKEYTAB FILE NAME
.ktpass.exe -princ HTTP/<SERVICE USER NAME>.testntl.local@TESTNTL.LOCAL -mapuser <SERVICE USER NAME> -crypto ALL -ptype KRB5_NT_PRINCIPAL -pass * -out c:\<KEYTAB FILE NAME>.keytab
Чтобы проверить результат, перейдите в корневую директорию диска
C
. В ней вы увидите keytab-файл с соответствующим именем.Переместите созданный файл keytab на сервер FindFace Multi.
Настройка томов для Kerberos и файла keytab
Для успешного установления связи между FindFace Multi и Active Directory необходимо включить поддержку Kerberos в контейнере findface-multi-findface-multi-ui-1
на основном сервере FindFace Multi. Выполните следующие действия:
Смонтируйте файл
/opt/findface-multi/configs/kerberos/krb5.conf
и директорию/opt/findface-multi/configs/keytab
в контейнерfindface-multi-findface-multi—ui-1
. Для этого откройте файл конфигурации/opt/findface-multi/docker-compose.yaml
и перечислите их в томах (volumes) секцииfindface-multi-ui
.sudo vi /opt/findface-multi/docker-compose.yaml findface-multi-ui: ... volumes: ['./configs/findface-multi-ui/nginx-site.conf:/etc/nginx/conf.d/default.conf:ro', './data/findface-multi-legacy/uploads:/var/lib/findface-security/uploads', './configs/kerberos/krb5.conf:/etc/krb5.conf:ro', './data/findface-multi-ui/keytab/:/keytab/']
Создайте директории для смонтированных томов:
/opt/findface-multi/configs/kerberos/
и/opt/findface-multi/data/findface-multi-ui/keytab/
. Скопируйте файл конфигурации Kerberos из контейнераfindface-multi-findface-multi-ui-1
в директорию/opt/findface-multi/configs/kerberos/
.sudo mkdir -p /opt/findface-multi/data/findface-multi-ui/keytab/ sudo mkdir /opt/findface-multi/configs/kerberos/ sudo docker cp findface-multi-findface-multi-ui-1:/etc/krb5.conf /opt/findface-multi/configs/kerberos/
Откройте файл конфигурации
/opt/findface-multi/configs/kerberos/krb5.conf
. Укажите realm Active Directory в секцииlibdefaults
. Имя realm должно совпадать с доменным именем Active Directory, но быть написано в верхнем регистре (TESTNTL.LOCAL
в приведенном ниже примере). Также укажите домен Active Directory в секцииrealms
по аналогии с примером ниже.sudo vi /opt/findface-multi/configs/kerberos/krb5.conf [libdefaults] default_realm = TESTNTL.LOCAL ... [realms] TESTNTL.LOCAL = { kdc = testntl.local default_domain = testntl.local }
Скопируйте файл keytab в директорию
/opt/findface-multi/data/findface-multi-ui/keytab/
.Добавьте следующую строку в файл
/etc/hosts
:<IP-адрес сервера Active Directory> <имя домена Active Directory>
.vi /etc/hosts ... 192.168.0.5 testntl.local
Настройка NGINX на сервере FindFace Multi для поддержки Active Directory
Откройте файл конфигурации
/opt/findface-multi/configs/findface-multi-ui/nginx-site.conf
. Найдите разделlocation /users/me/ad
и раскомментируйте его. Заполните секцию по аналогии с примером ниже, указав свои актуальные переменные в строки с комментариями (#
).Переменные, которые необходимо указать, следующие:
auth_gss_realm
: имя realm в Kerberosauth_gss_keytab
: путь к keytab-файлу.auth_gss_service_name
: полное имя сервисного пользователя, включая имя домена, к которому он принадлежит
sudo vi /opt/findface-multi/configs/findface-multi-ui/nginx-site.conf location /users/me/ad { proxy_pass http://127.0.0.1/auth/ad_login/; # e.g http://127.0.0.1/auth/ad_login/; proxy_method POST; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Authorization $http_authorization; proxy_pass_header Authorization; proxy_no_cache 1; proxy_cache_bypass 1; auth_gss on; auth_gss_realm TESTNTL.LOCAL; # e.g. TESTNTL.LOCAL; auth_gss_keytab /keytab/user.keytab; # e.g. /var/lib/web.keytab auth_gss_service_name HTTP/user.testntl.local; # e.g. HTTP/web.testntl.local; auth_gss_allow_basic_fallback on; }
Завершение настройки FindFace Multi
Чтобы завершить интеграцию FindFace Multi с Active Directory, выполните на стороне FindFace Multi следующие действия по настройке:
Откройте файл конфигурации
/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
.sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
В разделе
SERVICES
установите"active_directory": True
.SERVICES = { ... "active_directory": True, ... } }
Заполните раздел
ACTIVE_DIRECTORY_CONFIG
следующим образом:AUTH_LDAP_SERVER_URI
:ldap: <IP-адрес сервера Active Directory>
AUTH_LDAP_BIND_DN
: имя сервисного пользователя, созданного в Active DirectoryAUTH_LDAP_BIND_PASSWORD
: пароль сервисного пользователяSEARCH_GROUPS
: организационные единицы Active Directory, в которых FindFace Multi будет выполнять поиск аккаунтов пользователей
# Specify server credentials ACTIVE_DIRECTORY_CONFIG = { 'AUTH_LDAP_SERVER_URI': 'ldap://192.168.0.5', # Domain Administrator user 'AUTH_LDAP_BIND_DN': '<SERVICE USER NAME IN ACTIVE DIRECTORY>', # Domain Administrator user password 'AUTH_LDAP_BIND_PASSWORD': 'SERVICE USER NAME PASSWORD', # Specify organization units where users search will be executed. # Follow pattern (e.g. OU=DEV,DC=domain,DC=com) 'SEARCH_GROUPS': 'OU=DEV,DC=testntl,DC=local', }
Откройте файл конфигурации
/opt/findface-multi/configs/findface-multi-identity-provider/findface-multi-identity-provider.py
и повторите предыдущие шаги.Выполните перезапуск контейнеров FindFace Multi.
cd /opt/findface-multi sudo docker-compose restart
Управление пользователями FindFace Multi через Active Directory
Если интеграция FindFace Multi с Active Directory включена, вы сможете задать одну из групп Active Directory для создаваемой или редактируемой роли.
Как только пользователь из выбранной группы Active Directory впервые войдет в FindFace Multi, он будет автоматически добавлен в список пользователей FindFace Multi.
Чтобы войти в FindFace с помощью Active Directory, пользователь должен нажать кнопку Войти при помощи Active Directory в окне аутентификации, указать свои учетные данные Active Directory и нажать Sign in.
Деактивация или удаление пользователей
Для того чтобы деактивировать пользователя, выключите переключатель Активность в списке пользователей ( ).
Если вы собираетесь деактивировать нескольких пользователей, выберите их в списке и нажмите Деактивировать выбранные.
Для того чтобы удалить пользователей из FindFace, выберите их в списке и нажмите Удалить выбранные.