Download PDF
Download page Ограничение доступа пользователей к платформе.
Ограничение доступа пользователей к платформе
Вы можете разрешить пользователям платформы авторизоваться только с определённых IP-адресов и подсетей. Для этого:
- Создайте в платформе группы пользователей.
- Задайте для каждой группы список разрешённых IP-адресов.
Если пользователь платформы находится в группе и пытается авторизоваться с IP-адреса, которого нет в настройках группы, платформа заблокирует доступ пользователя к сервису авторизации.
Если пользователь не состоит ни в одной из групп, он может авторизоваться в платформе с любого IP-адреса.
Управление группами пользователей
Для управления группами перейдите в раздел Пользователи → вкладка Группы пользователей.
Чтобы создать группу:
- Нажмите кнопку Добавить группу.
- Укажите параметры группы:
- Название.
- IP-адреса для доступа к платформе. Список может содержать отдельные IP-адреса, диапазоны и подсети IP-адресов.
- Нажмите кнопку Сохранить.
Чтобы изменить настройки созданной группы, нажмите значок .
Чтобы удалить группу, нажмите значок .
Чтобы добавить или удалить пользователей из группы:
- Нажмите значок .
- Выберите пользователей, которых надо добавить.
- Снимите отметку у пользователей, которых надо удалить.
- Нажмите кнопку Сохранить изменения.
Управление доступом через API
Для каждой группы пользователей платформа создаёт список управления доступом (ACL). ACL содержит email участников группы и списки разрешённых IP-адресов.
Создание ACL
Чтобы создать ACL:
Получите токен авторизации:
curl -k -X POST -H "accept: application/json" -H "Content-Type: application/json" 'https://domain.com/api/auth/v4/public/token' -d '{"email": "admin_email", "password": "admin_pass"}'
CODEdomain.com — доменное имя или IP-адрес сервера с платформой
admin_email — email администратора платформы
admin_pass — пароль администратора платформы
В ответ придёт сообщение вида:
Пример ответа в JSON
{ "confirmed": true, "expires_at": null, "id": "6", "token": "4-e9726dd9-61d9-2940-add3-914851d2cb8a" }
CODEСохраните полученное значение параметра token — токен авторизации.
Выполните запрос:
curl -H 'x-xsrf-token: <token>' -X POST https://domain.com/auth/v4/acl -d '{"name": "<acl_name>", "ip_list": [<ip>], "members": [<users_id>]}'
CODE<token> — токен авторизации
domain.com — доменное имя сервера с платформой
<acl_name> — название ACL
<ip> — список разрешённых IP-адресов. Список может содержать отдельные IP-адреса, диапазоны и подсети IP-адресов. Каждое значение списка должно быть указано в кавычках
<users_id> — список 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"}'
CODEЗапрос создаcт ACL с именем admin1. Пользователям с id 1, 3, 7 будет разрешён доступ к платформе с IP-адресов 192.0.2.1, 192.0.2.10-192.0.2.20 и подсети 192.0.2.100/28.
Пример ответа
{ "id": "12" }
CODE
Просмотр ACL
Чтобы посмотреть все созданные ACL, выполните запрос:
curl -H 'x-xsrf-token: <token>' GET https://domain.com/auth/v4/acl
<token> — токен авторизации
domain.com — доменное имя сервера с платформой
Чтобы посмотреть конкретный ACL, выполните запрос:
curl -H 'x-xsrf-token: <token>' GET https://domain.com/auth/v4/acl/<acl_id>
<token> — токен авторизации
domain.com — доменное имя сервера с платформой
<acl_id> — id созданного ACL
Пример ответа
{
"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>
<token> — токен авторизации
domain.com — доменное имя сервера с платформой
<acl_id> — id созданного ACL
При успешном удалении ответ будет содержать "true".
Если потерян доступ к платформе
Раздел содержит команды по изменению базы данных (БД) платформы. Перед выполнением этих действий рекомендуем создать резервную копию платформы.
Если из-за ошибок в настройках ACL доступ к платформе был потерян, вы можете удалить ACL из базы данных платформы:
- Подключитесь к серверу с платформой по SSH.
Подключитесь к БД платформы:
docker exec -it mysql bash -c "mysql <database> -p\$MYSQL_ROOT_PASSWORD"
BASH<database> — имя базы данных, зависящее от типа платформы:
- VMmanager — isp
- DCImanager 6 — auth
Выполните запрос:
select * from auth_user2acl;
SQLПример ответа
+----+------+-----+ | id | user | acl | +----+------+-----+ | 3 | 122 | 4 | +----+------+-----+
CODEСохраните значение из столбца id.
Выполните запрос:
delete from auth_user2acl where id=<id>;
SQL<id> — значение столбца id из ответа на запрос в п.3