VK Private Cloud logo
Помощь
Обновлена 17 июля 2026 г. в 15:55

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

При входе пользователя в Платформу средствами Подсистемы управления доступом выполняется поиск соответствующей учетной записи в собственном хранилище. Если учетная запись не найдена, поиск продолжается в преднастроенных внешних базах данных. Вход в Платформу разрешается, если учетная запись пользователя найдена.

Управление пользователями выполняется через Портал управления доступом (Keycloak).

Инструкции по выполнению операций с пользователями приведены в официальной документации Keycloak.

Подготовка к работе

Добавление LDAP-провайдера

Чтобы добавить LDAP-провайдера в Портале управления доступом Keycloak:

  1. Перейдите в пункт меню User Federation.

  2. В выпадающем списке Add new provider выберите пункт ldap.

  3. Задайте параметры подключения к LDAP-провайдеру:

    • Console display name — имя LDAP-провайдера.

    • Vendor — LDAP-провайдер, который используется в вашей сети. Если вы используете FreeIPA, выберите Rad Hat Directory Server.

    • Connection URL — URL для соединения с LDAP-провайдером, например ldap://10.28.227.59/. Нажмите кнопку Test connection, чтобы убедиться, что связь с сервером установлена.

    • Bind Type — укажите значение simple.

    • Bind DN — учетная запись пользователя, которая будет использоваться для доступа к LDAP-провайдеру, например, CN=Administrator, CN=Users, DC=test, DC=local. Учетная запись должна иметь права администратора.

    • Bind Credential — пароль учетной записи, которая будет использоваться для доступа к LDAP-провайдеру. Нажмите кнопку Test Authentication. Если результат – Success, настройка выполнена успешно.

    • Edit mode — режим редактирования:

      • READ_ONLY — пользовательские данные будут доступны только для чтения.
      • WRITABLE — данные будут синхронизироваться с LDAP-провайдером только по требованию.
      • UNSYNCED — пользовательские данные будут импортированы, но не синхронизированы с LDAP-провайдером.
    • Users DN — домен пользователей, например, CN=Administrator, CN=Users, DC=test, DC=local.

    • Username LDAP attribute — укажите значение sAMAccountName.

    • RDN LDAP attribute — укажите значение cn.

    • UUID LDAP attribute — укажите значение objectGUID.

    • User Object Classes — укажите значение person, organizationalPerson, user, inetOrgPerson.

  4. При необходимости задайте параметры на других вкладках.

  5. Нажмите кнопку Save.

Чтобы настроить присвоение ролей и групп всем пользователям из LDAP-провайдера:

  1. Перейдите в пункт меню User Federation.

  2. Выберите созданного поставщика хранилища, нажав на его название в списке.

  3. Перейдите на вкладку Mappers.

  4. Нажмите кнопку Create.

  5. Задайте параметры:

    • Name — название сопоставления.

    • Mapper Type — тип сопоставления:

      • group-ldap-mapper — сопоставление по принадлежности к группе (в основном используется только этот тип сопоставления).

  6. Заполните остальные поля, которые появляются при выборе из списка Mapper Type.

  7. Нажмите кнопку Save.

Создание пользователей

Создание пользователей выполняется в разделе Users Keycloak. Пользователи Платформы создаются в одной из следующих областей безопасности (realm):

  • master — только для учетных записей Администраторов Платформы.
  • mcs_users — для учетных записей Пользователей Портала самообслуживания.
  • mcs_admins — для учетных записей Пользователей Портала администратора.

Синхронизация пользователей

В рамках интеграции с LDAP-провайдером:

  • Organisation Unit Users синхронизируется с областью безопасности (realm) mcs_users и содержит учетные записи Портала самообслуживания.
  • Organisation Unit Admins синхронизируется с областью безопасности (realm) mcs_admins и содержит учетные записи Портала администратора.

Схема синхронизации учетных записей приведена на рисунке 1.

Синхронизация учетных записей
Рисунок 1 — Синхронизация учетных записей

OpenID Connect — основной протокол обмена данными в рамках идентификации и аутентификации между Порталом самообслуживания, Keycloak и IAM.

Создание служебной (сервисной) учетной записи

  1. Выполните подготовительные операции (подробнее — в разделе Вход для Администратора Платформы)

  2. Создайте сервисную учетную запись:

    # openstack user create --password <ПАРОЛЬ> <ИМЯ_ПОЛЬЗОВАТЕЛЯ>
    Пример ожидаемого результата
    +---------------------+----------------------------------+| Field               | Value                            |+---------------------+----------------------------------+| domain_id           | default                          || enabled             | True                             || id                  | <USER_ID>                        || name                | <ИМЯ_ПОЛЬЗОВАТЕЛЯ>               || options             | {}                               || password_expires_at | None                             |+---------------------+----------------------------------+
  3. Назначьте роль mcs_co_owner в необходимом проекте:

    # openstack role add --project <ID> --project-domain <DOMAIN_ID> --user <USER_ID> mcs_co_owner
  4. Создайте конфигурационный файл:

    # cat > ~root/s2s.sh
    Пример ожидаемого результата
    export OS_USERNAME=<ИМЯ_ПОЛЬЗОВАТЕЛЯ>export OS_PASSWORD=<ПАРОЛЬ>export OS_PROJECT_NAME=<ИМЯ_ПРОЕКТА>export OS_USER_DOMAIN_NAME=Defaultexport OS_PROJECT_DOMAIN_NAME=<ДОМЕННОЕ_ИМЯ_ПРОЕКТА>export OS_AUTH_URL=http://internal.private.corp.devmail.ru:35357export OS_IDENTITY_API_VERSION=3export OS_IMAGE_API_VERSION=2export OS_ENDPOINT_TYPE='internalURL'export OS_ENDPOINT=internalexport OS_INTERFACE=internalexport OS_REGION=RegionOne

Управление группами

С группами доступны следующие действия:

  • Создание новой группы.

  • Редактирование существующей группы:

    • Добавление атрибутов.
    • Маппинг ролей.
  • Добавление в группу или удаление из группы существующих пользователей.

  • Настройка групп по умолчанию.

  • Удаление группы.

Просмотр списка всех групп доступен в разделе Groups Портала управления доступом.

Просмотр списка пользователей

Подсистема управления доступом Keycloak

Просмотр списка пользователей осуществляется в разделе Users Keycloak. Если список не появился сразу, введите * в текстовом поле Search user и нажмите →.

OpenStack CLI

Чтобы просмотреть списки пользователей и ролей при помощи OpenStack CLI:

  1. Выполните подготовительные операции (подробнее — в разделе Вход для Администратора Платформы).

  2. Выполните команды:

    • Список сервисных пользователей Платформы:

      $ openstack user list
      Пример ожидаемого результата
      +----------------------------------+------------------------------+| ID                               | Name                         |+----------------------------------+------------------------------+| 1164e0d1e5714f65882f5420c7cf9754 | panko                        || 184f0b4df58c415ca332fe34371ce2d1 | katana                       || 1ba360fba39d49568fecf6451020d8b7 | billing                      || 312f82fa9c664c1ab344593b38014adb | glance                       || 4953ca6e3d0e4d2f96dc0a44ca07a31f | magnum                       || 551a6562ce334f928876b5cba24bb863 | karboii                      || 596be38558474d5fa530b2fc9ce81b89 | heat                         || 5cf3309b0ccf4aea90b6ba57ea685fb1 | placement                    || 6ed244a042b541d79c137873737dc6b8 | cinder                       || 7611854786e64f529194c63fe88e3322 | nova                         || 788cf3794aac480db0b5d5f15d9d508d | neutron                      || c749fc158eae4132929722460c51078f | trove                        || cb1c315474b24a8380e42ae1b7174816 | octavia                      || cef964c64b634e05a6b46151fa31a4d7 | barbican                     || d57f498e9e354c44ab628bea10e64315 | admin                        || f7dcc90ae1c44b6a83a69e9f3a1cb6ae | manila                       |+----------------------------------+------------------------------+
    • Список созданных учетных записей:

      # openstack user list --domain users
      Пример ожидаемого результата
      +----------------------------------+------------------------------+| ID                               | Name                         |+----------------------------------+------------------------------+| 03240d7aafbc468da0d4a24d5827b3ee | tempest-user-1696297331      || 058e76e5d89941e3923dff418fb51b0a | tempest-2115504947           || 08ee4ae0b1714676a57b23a37d60783c | iam                          || 0f51492dc5cc48ad94ae617f643e9cab | superadmin                   || 1c277d03f50549f981fbdc0a338fa7ed | tempest-user-1654250193      || 1d34eea9c50c40a58aeb99961d28fd44 | tempest-user-737150262       || 2031fd3b88574244a2b782a0022a71ec | tempest-user-1834910734      || 223a8472659c438c8854da1e7ba066a0 | tempest-user-927474618       || 25f90f73f8024c369ac9e3f702081b1b | proj1@vk.team                |
    • Список созданных сервисных и пользовательских ролей:

      # openstack role list
      Пример ожидаемого результата
      +----------------------------------+----------------------------+| ID                               | Name                       |+----------------------------------+----------------------------+| 07ccd8419db8439c9cb070ad5c5b4575 | mcs_admin_vm               || 0b2b0e4d568241faa56aa49b47417e1a | service                    || 0ccaf21e224240eb9246051ff94555a6 | mcs_admin_network_objects  || 163747326a3447889da732c1483a6c3f | magnum_admin               || 1f7bbde9d6544bebbb5430a273dc6467 | sahara_ci                  || 26b4502c848d4051af20090209d04378 | karboii_admin              || 2919118a24444f4fbbf7f0de87e06d0e | mcs_monitoring_agent       || 29b93877db8249d39c236519c68b1f2a | member                     || 479f1191957c4d6e9f9f7753a629ea03 | heat_stack_owner           || 52c806f3afc2437785f923a30fd7832b | trove_user                 || 57cf613e254d46ec8160980d0e6245cc | magnum_tester              || 5cbe61730fa843318adb664a35abc4c0 | heat_stack_user            || 614cc35888ca4cfb884f2ac1898845d2 | mcs_admin_network_security || 66da25cf1990409b82a5feae4dfdd09e | tuareg                     || 77f14e5de64344a9a2b91602882c4071 | sahara_admin               |

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

Чтобы предоставить пользователю доступ к проекту:

  1. В Портале администратора перейдите в раздел Управление проектамиПроекты.
  2. Нажмите на значок ••• справа от названия проекта и выберите пункт Управление доступом.
  3. В открывшемся окне нажмите кнопку Добавить.
  4. Выберите группу, в которой находится пользователь, и добавьте необходимую роль пользователя в проекте.
  5. Нажмите кнопку Сохранить изменения.

Описание ролей пользователей Платформы приведено в разделе Права и учетные записи пользователей.

Предоставление доступа к Порталу администратора

  1. В Портале администратора перейдите в раздел Управление доступом.
  2. Нажмите кнопку Добавить.
  3. В текстовом поле Логин начните вводить имя учетной записи пользователя.
  4. В выпадающем списке выберете учетную запись.
  5. В выпадающем списке Роли выберите одну или несколько ролей.
  6. Нажмите кнопку Подтвердить.

Двухфакторная аутентификация

Для аутентификации пользователя в Портале администратора у пользователя должна быть включена двухфакторная аутентификация.

Проверка двухфакторной аутентификации

  1. Выполните подготовительные операции (подробнее — в разделе Вход для Администратора Платформы).

  2. Подключитесь к Tarantool breeze:

    # tarantoolctl enter <BREEZE_NAME>

    Здесь <BREEZE_NAME> — имя Tarantool breeze.

  3. Выведите информацию о пользователе:

    unix/:/var/run/tarantool/<BREEZE_NAME>.control>  breeze.api.services.superadmin_users.users.search({name = '<USER_NAME>'})

    Здесь:

    • <BREEZE_NAME> — имя Tarantool breeze.
    • <USER_NAME> — имя пользователя.
Пример ожидаемого результата
- [200, {'list': [{'domain': 'sa_admins', 'enabled': true, 'uid': <USER_ID>, 'id': '<OpenStack_ID>',  'ctime': <TIMESTAMP>, 'email': '<USER_EMAIL>', 'roles': [<ROLES_LIST>], 'mfa': {'email': {  'time_enabled': <TIMESTAMP_MFA>, 'id': '<MFA_ID>'}}}],  'limit': 300}]  ...

Здесь:

  • <USER_ID> — UID учетной записи пользователя.
  • <OpenStack_ID> — идентификатор пользователя OpenStack.
  • <TIMESTAMP> — временная метка.
  • <USER_EMAIL> — адрес электронной почты пользователя.
  • <ROLES_LIST> — назначенные пользователю роли.
  • <TIMESTAMP_MFA> — временная метка 2FA.
  • <MFA_ID> — уникальный идентификатор 2FA.

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

  1. Выполните подготовительные операции (подробнее — в разделе Вход для Администратора Платформы).

  2. Подключитесь к Tarantool breeze:

    # tarantoolctl enter <BREEZE_NAME>

    Здесь <BREEZE_NAME> — имя Tarantool breeze.

  3. Удалите пользователя:

    unix/:/var/run/tarantool/<BREEZE_NAME>.control> breeze.api.services.superadmin_users.users.delete({uid = '<USER_ID>'})---- [200, {'domain': 'sa_admins', 'enabled': true, 'uid': <USER_ID>, 'id': '<OpenStack_ID>',   'ctime': <TIMESTAMP>, 'email': '<USER_EMAIL>', 'roles': [<ROLES_LIST>], 'mfa': {}}]

    Здесь:

    • <BREEZE_NAME> — имя Tarantool breeze.
    • <USER_ID> — UID учетной записи пользователя.
  4. Повторно предоставьте пользователю доступ к проекту (подробнее — в разделе Предоставление доступа к Порталу администратора).

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

  1. В Портале администратора перейдите в раздел Управление доступом.
  2. Нажмите на значок ••• справа от имени пользователя, которому необходимо добавить или удалить роль и выберите пункт Редактировать.
  3. Нажмите на поле Роль, выберите одну или несколько ролей в списке.
  4. Нажмите кнопку Подтвердить.

Блокировка и разблокировка учетной записи

Учетная запись блокируется, если пользователь не входил в Платформу более 45 дней.

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

  1. Подключитесь к деплой-ноде по SSH (подробнее — в разделе Вход на деплой-ноду по SSH).

  2. Откройте на редактирование файл ~/inventory/vkcloud/group_vars/vkcloud_kube/blocker-service.yml.

  3. Установите требуемое значение для параметра (например, 480 часов):

    helm_BLOCKER_SERVICE_LAST_ACTIVITY_THRESHOLD: 480h
  4. Сохраните изменения в файле.

  5. Перезапустите плейбук для сервиса блокировки:

    $ cd ~/inventory/vkcloud/$ ansible-playbook -i vkcloud.yml -e env=vkcloud ../ansible-openstack/playbooks/helm-blocker-service.yml

При попытке войти в Портал самообслуживания или Портал Администратора с помощью заблокированной учетной записи на экране появится ошибка входа «403». Если заблокированный пользователь является владельцем проекта, работа других пользователей в проекте не ограничивается.

Чтобы заблокировать или разблокировать учетную запись пользователя Портала администратора:

  1. В Портале администратора перейдите в раздел Управление доступом.
  2. Нажмите на значок ••• справа от учетной записи пользователя и выберите пункт Заблокировать или Разблокировать.
  3. Нажмите кнопку Подтвердить.

Чтобы заблокировать или разблокировать учетную запись пользователя Портала самообслуживания:

  1. В Портале администратора перейдите в раздел Управление проектамиПользователи.
  2. Нажмите на имя пользователя и перейдите на вкладку Профиль.
  3. В строке Пользователь активен нажмите на значок ••• и выберите пункт Заблокировать или Разблокировать.
  4. Нажмите кнопку Подтвердить.

Управление сеансами доступа

Администратор может:

  • Установить ограничение на количество одновременных сеансов доступа.
  • Принудительно завершить активный сеанс доступа пользователя.
  • Настроить ограничение времени бездействия пользователя (подробнее — в разделе Настройка временных ограничений доступов).

Установка ограничения на количество одновременных сеансов доступа

Чтобы установить ограничение в один активный сеанс доступа:

  1. Перейдите на деплой-ноду по SSH:

    $ ssh <USERNAME>@<HOST_IP>

    Здесь <USERNAME> — логин, созданный при инсталляции Платформы (например, redos).

  2. Введите пароль от учетной записи администратора или пройдите аутентификацию с помощью файла закрытого ключа.

  3. Откройте для редактирования файл ~/inventory/vkcloud/group_vars/vkcloud/vars.yml.

  4. Установите 1 в параметре sessions_limit.

  5. Сохраните изменения в файле.

  6. Перезапустите плейбук для сервиса авторизации:

    $ cd ~/inventory/vkcloud/$ ansible-playbook -i vkcloud.yml -e env=vkcloud ../ansible-openstack/playbooks/helm-auth-service.yml

Завершение активного сеанса доступа

Чтобы остановить активный сеанс доступа пользователя Портала самообслуживания:

  1. В Портале администратора перейдите в раздел Управление сессиямиПользователи ЛК.
  2. Нажмите на значок ••• справа от учетной записи пользователя и выберите пункт Завершить сеанс.

Чтобы остановить активный сеанс доступа пользователя Портала администратора:

  1. В Портале администратора перейдите в раздел Управление сессиямиСуперадминистраторы.
  2. Нажмите на значок ••• справа от учетной записи пользователя и выберите пункт Завершить сеанс.