Управление ролями и пользователями

В этой главе:

Предустановленные роли

Для работы с FindFace Multi предусмотрены следующие предустановленные роли:

  • Администратор: предоставляется полный доступ к функциональности FindFace Multi, интеграционным и административным инструментам.

    Важно

    Супер Администратор не может лишиться прав администратора даже при смене роли.

  • Оператор: предоставляется полный доступ к функциональности FindFace Multi.

  • Пользователь: обладает правами на работу с событиями и эпизодами, а также на изменение данных в своем профиле. Остальные функции доступны в режиме чтения.

Вы можете изменить привилегии предустановленных ролей, а также создать новые роли.

Создание новой роли в веб-интерфейсе

Для создания новой роли в веб-интерфейсе выполните следующие действия:

  1. Перейдите Настройки -> Роли.

  2. Нажмите + Новая роль.

    role_create_ru

  3. На вкладке Сведения задайте название роли. Сохраните роль.

    role_information_ru

  4. После сохранения роли вы увидите, что рядом с вкладкой Сведения появились следующие вкладки:

    role_cameragroups_ru

    • Списки наблюдения: права роли на определенные списки наблюдения

    • Группы камер: права роли на определенные группы камер

    • Права доступа: привилегии роли на работу с системными функциями и сущностями

    Задайте права роли в соответствии со своими потребностями. Обратите внимание на разницу между правами на определенный список наблюдения/группу камер и правами на системную сущность watchlist/cameragroup. Например, если вы установите Отсутствует для определенной группы камер на вкладке Группы камер, пользователи с соответствующей ролью не смогут работать с данной группой камер. Снятие всех флажков для сущности cameragroup на вкладке Права доступа не позволит пользователям просматривать и работать со всеми группами камер.

    Полный список сущностей FindFace Multi, которые используются в текущей версии:

    Вы также можете включать и отключать права на следующую функциональность:

  5. Сохраните изменения.

Основная и дополнительная роль пользователя

Вы можете назначить пользователю привилегии, используя следующие роли:

  • Основная роль: основная роль пользователя, обязательная для назначения. Пользователю можно назначить только одну основную роль.

  • Дополнительная пользовательская роль, необязательная для назначения. Одному пользователю можно назначить несколько ролей. Связанные с ними права будут добавлены к правам, предоставляемым основной ролью.

Все пользователи, принадлежащие к определенной основной роли, автоматически получают доступ к группам камер (и архивам внутри группы) и спискам наблюдения (и карточкам в этих списках), созданным пользователем с той же основной ролью, с учетом привилегий, определенных их дополнительными ролями.

Создание пользовательского аккаунта вручную

Для создания пользовательского аккаунта вручную выполните следующие действия:

  1. Перейдите Настройки -> Пользователи.

  2. Нажмите + Новый пользователь.

    create_user_ru

  3. На вкладке Сведения введите данные пользователя, такие как название, имя пользователя и пароль. При необходимости добавьте комментарий.

    Примечание

    При установке пароля учитывайте требования к паролю:

    • содержит не менее 8 символов

    • содержит не только цифры

    • не входит в список 20000 распространенных паролей

    • не похож на другие атрибуты пользователя

    • может содержать только буквы латинского алфавита, цифры и специальные символы

  4. Из раскрывающегося списка Роли выберите одну или несколько пользовательских ролей. Назначьте одну из них основной.

  5. На вкладке Фотографии прикрепите фотографию пользователя.

  6. Сохраните аккаунт пользователя.

    user_ru

Работа с ролями и пользователями в консоли

В случае если предустановленные роли были удалены из системы, используйте следующую команду, для того чтобы создать их:

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 и выполните следующие действия:

  1. Создайте новый аккаунт пользователя в домене Active Directory для использования в качестве сервисного аккаунта.

    Выполните следующие действия:

    1. Откройте Active Directory. Нажмите Пуск -> Средства администрирования -> Пользователи и компьютеры Active Directory.

    2. Нажмите на имя домена, а затем разверните содержимое. Щелкните правой кнопкой мыши Пользователи, выберите Создать -> Пользователь. Отобразится форма создания пользователя.

    3. Заполните поля формы на свое усмотрение. На второй вкладке поставьте флажок Срок действия пароля не ограничен.

    4. Нажмите Далее. Проверьте введенные данные и, если все верно, нажмите Готово.

    5. Щелкните правой кнопкой мыши по созданному аккаунту пользователя, а затем перейдите Свойства -> Член групп -> Добавить.

    6. Добавьте в список группы Администраторы домена и Пользователи домена, а затем нажмите «ОК».

    7. Нажмите OK для завершения.

  2. Зарегистрируйте имя субъекта-службы (Service Principal Name, SPN) для созданного сервисного аккаунта. Для этого откройте PowerShell от имени администратора и выполните следующую команду, указав фактическое имя пользователя (вместо SERVICE USER NAME) и домен. В примере ниже имя домена testntl.local.

    setspn -A HTTP/<SERVICE USER NAME>.testntl.local@TESTNTL.LOCAL <SERVICE USER NAME>
    
  3. В том же окне 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-файл с соответствующим именем.

  4. Переместите созданный файл keytab на сервер FindFace Multi.

Настройка томов для Kerberos и файла keytab

Для успешного установления связи между FindFace Multi и Active Directory необходимо включить поддержку Kerberos в контейнере findface-multi-findface-multi-ui-1 на основном сервере FindFace Multi. Выполните следующие действия:

  1. Смонтируйте файл /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/']
    
  2. Создайте директории для смонтированных томов: /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/
    
  3. Откройте файл конфигурации /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
    }
    
  4. Скопируйте файл keytab в директорию /opt/findface-multi/data/findface-multi-ui/keytab/.

  5. Добавьте следующую строку в файл /etc/hosts: <IP-адрес сервера Active Directory> <имя домена Active Directory>.

    vi /etc/hosts
    
    ...
    192.168.0.5 testntl.local
    

Настройка NGINX на сервере FindFace Multi для поддержки Active Directory

  1. Откройте файл конфигурации /opt/findface-multi/configs/findface-multi-ui/nginx-site.conf. Найдите раздел location /users/me/ad и раскомментируйте его. Заполните секцию по аналогии с примером ниже, указав свои актуальные переменные в строки с комментариями (#).

    Переменные, которые необходимо указать, следующие:

    • auth_gss_realm: имя realm в Kerberos

    • auth_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 следующие действия по настройке:

  1. Откройте файл конфигурации /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py.

    sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py
    
  2. В разделе SERVICES установите "active_directory": True.

    SERVICES = {
            ...
            "active_directory": True,
            ...
        }
    }
    
  3. Заполните раздел ACTIVE_DIRECTORY_CONFIG следующим образом:

    • AUTH_LDAP_SERVER_URI: ldap: <IP-адрес сервера Active Directory>

    • AUTH_LDAP_BIND_DN: имя сервисного пользователя, созданного в Active Directory

    • AUTH_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',
    }
    
  4. Откройте файл конфигурации /opt/findface-multi/configs/findface-multi-identity-provider/findface-multi-identity-provider.py и повторите предыдущие шаги.

  5. Выполните перезапуск контейнеров FindFace Multi.

    cd /opt/findface-multi
    
    sudo docker-compose restart
    

Управление пользователями FindFace Multi через Active Directory

Если интеграция FindFace Multi с Active Directory включена, вы сможете задать одну из групп Active Directory для создаваемой или редактируемой роли.

ad_role_ru

Как только пользователь из выбранной группы Active Directory впервые войдет в FindFace Multi, он будет автоматически добавлен в список пользователей FindFace Multi.

ad_userlist_ru

Чтобы войти в FindFace с помощью Active Directory, пользователь должен нажать кнопку Войти при помощи Active Directory в окне аутентификации, указать свои учетные данные Active Directory и нажать Sign in.

ad_login_ru

Деактивация или удаление пользователей

Для того чтобы деактивировать пользователя, выключите переключатель Активность в списке пользователей (Настройки -> Пользователи).

Если вы собираетесь деактивировать нескольких пользователей, выберите их в списке и нажмите Деактивировать выбранные.

Для того чтобы удалить пользователей из FindFace, выберите их в списке и нажмите Удалить выбранные.