Вы можете разрешить пользователям платформы авторизоваться только с определённых 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://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 — токен авторизации. 
-  Выполните запрос: curl -H 'x-xsrf-token: <token>' -X POST https://example.com/auth/v4/acl -d '{"name": "<acl_name>", "ip_list": [<ip>], "members": [<users_id>]}'Пояснения к командеОбратите внимание!id пользователей вы можете посмотреть в интерфейсе платформы в разделе Пользователи .Ответ будет содержать id созданного ACL. Пример создания ACLcurl -H 'x-xsrf-token: 4-e9726dd9-61d9-2940-add3-914851d2cb8a' -X POST https://example.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://example.com/auth/v4/aclЧтобы посмотреть конкретный ACL, выполните запрос:
curl -H 'x-xsrf-token: <token>' GET https://example.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://example.com/auth/v4/acl/<acl_id>При успешном удалении ответ будет содержать "true".
Если потерян доступ к платформе
Если из-за ошибок в настройках ACL доступ к платформе был потерян, вы можете удалить ACL из базы данных платформы:
- Подключитесь к серверу с платформой по SSH.
-  Подключитесь к БД платформы: MySQLdocker exec -it mysql bash -c "mysql <database> -p\$MYSQL_ROOT_PASSWORD"PostgreSQLdocker exec -it pgsql bash -c "psql isp"Пояснения к команде
-  Выполните запрос: select * from auth_user2acl;Пример ответа+----+------+-----+ | id | user | acl | +----+------+-----+ | 3 | 122 | 4 | +----+------+-----+Сохраните значение из столбца id. 
-  Выполните запрос: delete from auth_user2acl where id=<id>;Пояснения
Связанные статьи:
