DCImanager 6

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

Вы можете разрешить пользователям платформы авторизоваться только с определённых IP-адресов и подсетей. Для этого:

  1. Создайте в платформе группы пользователей.
  2. Задайте для каждой группы список разрешённых IP-адресов.

Если пользователь платформы находится в группе и пытается авторизоваться с IP-адреса, которого нет в настройках группы, платформа заблокирует доступ пользователя к сервису авторизации.

Если пользователь не состоит ни в одной из групп, он может авторизоваться в платформе с любого IP-адреса.

Управление группами пользователей

Для управления группами перейдите в раздел Пользователи → вкладка Группы пользователей.

 

Интерфейс раздела

Чтобы создать группу:

  1. Нажмите кнопку Добавить группу.
  2. Укажите параметры группы:
    1. Название.
    2. IP-адреса для доступа к платформе. Список может содержать отдельные IP-адреса, диапазоны и подсети IP-адресов.
  3. Нажмите кнопку Сохранить.

Пример создания группы

Чтобы изменить настройки созданной группы, нажмите значок .

Чтобы удалить группу, нажмите значок .

Чтобы добавить или удалить пользователей из группы:

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

Пример изменения участников группы

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

Для каждой группы пользователей платформа создаёт список управления доступом (ACL). ACL содержит email участников группы и списки разрешённых IP-адресов.

Создание ACL

Чтобы создать ACL:

  1. Получите токен авторизации:

    curl -k -X POST -H "accept: application/json" -H "Content-Type: application/json" 'https://example.com/api/auth/v4/public/token' -d '{"email": "admin_email", "password": "admin_pass"}'
    Пояснения к команде

    В ответ придёт сообщение вида:

    Пример ответа в JSON
    {
      "confirmed": true,
      "expires_at": null,
      "id": "6",
      "token": "4-e9726dd9-61d9-2940-add3-914851d2cb8a"
    }

    Сохраните полученное значение параметра token — токен авторизации.

  2. Выполните запрос:

    curl -H 'x-xsrf-token: <token>' -X POST https://domain.com/auth/v4/acl -d '{"name": "<acl_name>", "ip_list": [<ip>], "members": [<users_id>]}' 
    Пояснения к команде
    Обратите внимание!
    id пользователей вы можете посмотреть в интерфейсе платформы в разделе Пользователи .

    Ответ будет содержать id созданного ACL.

    Пример создания ACL
    curl -H 'x-xsrf-token: 4-e9726dd9-61d9-2940-add3-914851d2cb8a' -X POST https://domain.com/auth/v4/acl -d '{"name": "admin1", "ip_list": ["192.0.2.1","192.0.2.10-192.0.2.20","192.0.2.100/28"], "members": ["1","3","7"}' 
    Пояснения к примеру
    Пример ответа
    {
      "id": "12"
    }

Просмотр ACL

Чтобы посмотреть все созданные ACL, выполните запрос:

curl -H 'x-xsrf-token: <token>' GET https://domain.com/auth/v4/acl
Пояснения к команде

Чтобы посмотреть конкретный ACL, выполните запрос:

curl -H 'x-xsrf-token: <token>' GET https://domain.com/auth/v4/acl/<acl_id>
Пояснения к команде
Пример ответа
{
  "ip_list": [
    "192.0.2.1",
    "192.0.2.10-192.0.2.20",
    "192.0.2.100/28"
  ],
  "name": "admin1",
  "users": [
    "user1@example.com",
    "user3@example.com",
	"user7@example.com"
  ]
}

Удаление ACL

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

curl -H 'x-xsrf-token: <token>' -X DELETE https://domain.com/auth/v4/acl/<acl_id>
Пояснения к команде

При успешном удалении ответ будет содержать "true".

Если потерян доступ к платформе



Раздел содержит команды по изменению базы данных (БД) платформы. Перед выполнением этих действий рекомендуем создать резервную копию платформы.

Если из-за ошибок в настройках ACL доступ к платформе был потерян, вы можете удалить ACL из базы данных платформы:

  1. Подключитесь к серверу с платформой по SSH.
  2. Подключитесь к БД платформы:

    docker exec -it mysql bash -c "mysql <database> -p\$MYSQL_ROOT_PASSWORD"
    Пояснения к команде
  3. Выполните запрос: 

    select * from auth_user2acl;
    Пример ответа
    +----+------+-----+
    | id | user | acl |
    +----+------+-----+
    |  3 |  122 |   4 |
    +----+------+-----+

    Сохраните значение из столбца id.

  4. Выполните запрос:

    delete from auth_user2acl where id=<id>;
    Пояснения

Может быть полезно