Управление ролями и пользователями
В этой главе:
Предустановленные роли
Для работы с FindFace предусмотрены следующие предустановленные роли:
Администратор: предоставляется полный доступ к функционалу FindFace, интеграционным и административным инструментам.
Важно
Супер Администратор не может лишиться прав администратора даже при смене роли.
Оператор: предоставляется полный доступ к функционалу FindFace.
Пользователь: обладает правами на управление происшествиями, а также на изменение данных в своем профиле. Остальные функции доступны в режиме чтения.
Вы можете изменить привилегии предустановленных ролей, а также создать новые роли.
Создание новой роли
Для создания новой роли выполните следующие действия:
Перейдите Настройки -> Роли.
Нажмите + Добавить новую роль.
На вкладке Информация задайте имя роли. Сохраните роль.
После сохранения роли вы увидите, что рядом с вкладкой Информация появились следующие вкладки:
Списки наблюдения: права роли на определенные списки наблюдения
Группы камер: права роли на определенные группы камер
Разрешения: привилегии роли на работу с системными функциями и сущностями
Задайте права роли в соответствии со своими потребностями. Обратите внимание на разницу между правами на определенный список наблюдения/группу камер и правами на системную сущность
watchlist
/cameragroup
. Например, если вы установитеОтсутствует
для определенной группы камер на вкладке Группы камер, пользователи с соответствующей ролью не смогут работать с данной группой камер. Снятие всех флажков для сущностиcameragroup
на вкладке Разрешения не позволит пользователям просматривать и работать со всеми группами камер.Полный список сущностей FindFace:
case
: происшествиеcaseattachment
: загрузка вложений в происшествиеfaceobject
: фотография лица в карточкеdeviceblacklistrecord
: список блокировокwatchlist
: список наблюденияcameragroup
: группа камерuploadlist
: список фотографий в пакетной загрузкеupload
: элемент (фото) в пакетной загрузкеuser
: пользовательreport
: отчетыall_own_sessions
: все сессии текущего пользователя на разных устройствахПримечание
Если для данной сущности установлены соответствующие разрешения, пользователи смогут просматривать (
Просмотр
) и закрывать (Удалить
) все свои сессии на разных устройствах. В противном случае пользователям будет разрешено только просматривать и закрывать свою сессию на текущем устройстве. Работа с сессиями производится на вкладке Сессии (Настройки).humancard
: карточка человека
Вы также можете включать и отключать права на следующий функционал:
configure_ntls
: конфигурация сервера лицензийfindface-ntls
batchupload_cards
: пакетная загрузка фотографийview_runtimesetting
: просмотр основных настроек FindFacechange_runtimesetting
: изменение основных настроек FindFaceview_auditlog
: просмотр и работа с аудит логами.
Сохраните изменения.
Главная и дополнительная роль пользователя
Вы можете назначить пользователю привилегии, используя следующие роли:
Главная роль: основная роль пользователя, обязательная для назначения. Пользователю можно назначить только одну главную роль.
Роль: дополнительная роль пользователя, необязательная для назначения. Одному пользователю можно назначить несколько ролей. Связанные с ними права будут добавлены к правам, предоставляемым главной ролью.
Все пользователи, принадлежащие к определенной основной роли, автоматически получают доступ к группам камер (и архивам внутри группы) и спискам наблюдения (и карточкам в этих списках), созданным пользователем с той же основной ролью, с учетом привилегий, определенных их дополнительными ролями.
Создание пользовательского аккаунта вручную
Для создания пользовательского аккаунта вручную выполните следующие действия:
Перейдите Настройки -> Пользователи.
Нажмите + Создать нового пользователя.
На вкладке Информация введите данные пользователя, такие как имя, логин и пароль. При необходимости добавьте комментарий.
Из раскрывающегося списка Роли выберите одну или несколько пользовательских ролей. Назначьте одну из них основной.
На вкладке Фотографии прикрепите фотографию пользователя.
Сохраните аккаунт пользователя.
Интеграция с Active Directory для автоматического создания пользователей
При большом количестве пользователей в FindFace создание их аккаунтов по одному может быть неудобным. Одним из способов облегчить создание пользователей является использование интеграции FindFace с Active Directory. Для настройки интеграции руководствуйтесь приведенными ниже пошаговыми инструкциями, соблюдая последовательность действий.
Установка и настройка Kerberos
Прежде всего вам понадобится установить и настроить на основном сервере FindFace протокол аутентификации Kerberos. Выполните следующие действия:
Установите пакет
krb5-kdc
.sudo apt-get install krb5-kdc
Важно
Во время установки вам потребуется ввести имя realm. Оно должно совпадать с доменным именем Active Directory, но быть написано в верхнем регистре (
TESTNTL.LOCAL
в приведенном ниже примере). Остальные окна установки можно пропустить, нажав клавишу Enter.Найдите раздел
realms
в файле конфигурации Kerberos/etc/krb5.conf
. Укажите в нем домен Active Directory.sudo vi /etc/krb5.conf [realms] TESTNTL.LOCAL = { kdc = testntl.local default_domain = testntl.local } ...
Добавьте следующую строку в файл
/etc/hosts
:<IP-адрес сервера Active Directory> <имя домена Active Directory>
.sudo vi /etc/hosts ... 192.168.0.5 testntl.local
Создание файла Keytab
Войдите на сервер Active Directory и выполните следующие действия:
Создайте новый аккаунт пользователя в домене Active Directory для использования в качестве сервисного аккаунта.
Выполните следующие действия:
Откройте Active Directory. Нажмите Пуск -> Средства администрирования -> Пользователи и компьютеры Active Directory.
Нажмите на имя домена, а затем разверните содержимое. Щелкните правой кнопкой мыши Пользователи, выберите Создать -> Пользователь. Отобразится форма создания пользователя.
Заполните поля формы на свое усмотрение. На второй вкладке поставьте флажок Срок действия пароля не ограничен.
Нажмите Далее. Проверьте введенные данные и, если все верно, нажмите Готово.
Щелкните правой кнопкой мыши по созданному аккаунту пользователя, а затем перейдите Свойства -> Член групп -> Добавить.
Добавьте в список группы Администраторы домена и Пользователи домена, а затем нажмите «ОК».
Нажмите OK для завершения.
Зарегистрируйте имя субъекта-службы (Service Principal Name, SPN) для созданного сервисного аккаунта. Для этого откройте PowerShell от имени администратора и выполните следующую команду, указав фактическое имя пользователя (вместо
SERVICE USER NAME
) и домен: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.
Проверьте keytab-файл на сервере FindFace. Для этого выполните в консоли следующую команду, указав фактическое имя сервисного пользователя
SERVICE USER NAME
, домен и имя keytab-файлаKEYTAB FILE NAME
.kinit -5 -V -k -t <path/to/<KEYTAB FILE NAME>.keytab> HTTP/<SERVICE USER NAME>.testntl.local
Если все в порядке, вы увидите сообщение
Authenticated to Kerberos v5
.
Перестройка NGINX на сервере FindFace для поддержки Kerberos
Для успешной интеграции FindFace и Active Directory необходимо включить поддержку Kerberos в NGINX, установленном на основном сервере FindFace. Это можно сделать, пересобрав NGINX вместе со сторонним модулем spnego-http-auth-nginx-module
.
Важно
Для скачивания spnego-http-auth-nginx-module
вам понадобится Git.
Выполните следующие действия:
Загрузите исходники NGINX той же версии, что и в FindFace. В настоящее время это
nginx-1.14.0
, нажмите здесь для загрузки.Разархивируйте скачанный архив.
tar -xf nginx_1.14.0.orig.tar.gz
Перейдите в полученную директорию. Склонируйте в него модуль
spnego-http-auth-nginx-module
.git clone https://github.com/stnoonan/spnego-http-auth-nginx-module
Установите вспомогательный пакет
libkrb5-dev
, необходимый для работыspnego-http-auth-nginx-module
.sudo apt-get install -y libkrb5-dev
Установите пакет инструментов для сборки.
sudo apt-get install build-essential
Установите набор пакетов, необходимых для пересборки NGINX.
sudo apt-get install libpcre3 libpcre3-dev openssl libssl-dev zlib1g zlib1g-dev libxslt-dev libgd-dev libgeoip-dev
В консоли выполните следующую команду и скопируйте куда-нибудь список аргументов, который будет отображен в ответе (все, что идет после
configure arguments
).nginx -V nginx version: nginx/1.14.0 (Ubuntu) built with OpenSSL 1.1.1 11 Sep 2018 TLS SNI support enabled configure arguments: --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-KgqPmI/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
Добавьте модуль
spnego-http-auth-nginx-module
в компоненты пересборки. Для этого выполните перенастройку NGINX, вызвав утилитуconfigure
с параметром—add-dynamic-module=spnego-http-auth-nginx-module
перед списком аргументов.Кратко:
sudo ./configure --add-dynamic-module=spnego-http-auth-nginx-module <argument list>
Пример:
sudo ./configure --add-dynamic-module=spnego-http-auth-nginx-module --with-cc-opt='-g -O2 -fdebug-prefix-map=/build/nginx-KgqPmI/nginx-1.14.0=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -Wdate-time -D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -fPIC' --prefix=/usr/share/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --lock-path=/var/lock/nginx.lock --pid-path=/run/nginx.pid --modules-path=/usr/lib/nginx/modules --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --with-debug --with-pcre-jit --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-http_auth_request_module --with-http_v2_module --with-http_dav_module --with-http_slice_module --with-threads --with-http_addition_module --with-http_geoip_module=dynamic --with-http_gunzip_module --with-http_gzip_static_module --with-http_image_filter_module=dynamic --with-http_sub_module --with-http_xslt_module=dynamic --with-stream=dynamic --with-stream_ssl_module --with-mail=dynamic --with-mail_ssl_module
Дождитесь завершения перенастройки NGINX и инициируйте пересборку NGINX, выполнив следующие команды:
sudo make sudo make install
В результате будет создан новый файл
/usr/lib/nginx/modules/ngx_http_auth_spnego_module.so
.В каталоге
/etc/nginx/modules-enabled/
создайте новый файл конфигурацииspnego-http-auth-nginx-module.conf
со строкойload_module ‘/usr/lib/nginx /modules/ngx_http_auth_spnego_module.so’;
внутри.sudo vi spnego-http-auth-nginx-module.conf load_module '/usr/lib/nginx/modules/ngx_http_auth_spnego_module.so';
Перезапустите NGINX.
sudo systemctl reload nginx
Откройте файл конфигурации
/etc/nginx/sites-available/ffsecurity-nginx.conf
. Найдите разделlocation /users/me/ad
и раскомментируйте его. Заполните раздел по аналогии с примером ниже, поместив свои актуальные переменные в строки с комментариями (#
).Переменные, которые необходимо указать, следующие:
auth_gss_realm
: имя realm в Kerberosauth_gss_keytab
: путь к keytab-файлу на сервере FindFaceauth_gss_service_name
: полное имя сервисного пользователя, включая имя домена, к которому он принадлежит
sudo vi /etc/nginx/sites-available/ffsecurity-nginx.conf location /users/me/ad { proxy_pass http://192.168.0.3/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; # Realm name in Kerberos; auth_gss_keytab /home/ubuntu/<KEYTAB FILE NAME>.keytab; # e.g. /var/lib/web.keytab auth_gss_service_name HTTP/<service_user>.testntl.local; # e.g. HTTP/web.testntl.local; auth_gss_allow_basic_fallback on; }
Повторно перезапустите NGINX.
sudo systemctl reload nginx
Завершение настройки FindFace
Чтобы завершить интеграцию FindFace с Active Directory, выполните на стороне FindFace следующие действия по настройке:
Откройте файл конфигурации
/etc/findface-security/config.py
.sudo vi /etc/findface-security/config.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 будет выполнять поиск аккаунтов пользователей
# 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', }
Перезапустите сервис
findface-security
.sudo systemctl restart findface-security.service
Примечание
Проверьте результат. В списке сервисов должен быть LDAP-сервер.
Управление пользователями FindFace через Active Directory
Если интеграция FindFace с Active Directory включена, вы сможете задать одну из групп Active Directory для создаваемой или редактируемой роли.
Как только пользователь из выбранной группы Active Directory впервые войдет в FindFace, он будет автоматически добавлен в список пользователей FindFace.
Чтобы войти в FindFace с помощью Active Directory, пользователь должен нажать кнопку Войти при помощи Active Directory в окне аутентификации, указать свои учетные данные Active Directory и нажать Sign in.
Деактивация или удаление пользователей
Для того чтобы деактивировать пользователя, выключите переключатель Активность в списке пользователей ( ).
Если вы собираетесь деактивировать нескольких пользователей, выберите их в списке и нажмите Деактивировать выбранные.
Для того чтобы удалить пользователей из FindFace, выберите их в списке и нажмите Удалить выбранные.