Общие сведения
В системе предусмотрена возможность ограничивать доступ к API, для этого существуют списки доступа. Ограничения распространяются на пользователей типа администратор и дилер. Существуют глобальные и частные списки доступа.
Глобальные списки доступа
Располагаются в отдельном разделе административного приложения, позволяют разом ограничить доступ всех пользователей типа администратор или дилер, пример:
Форма состоит из списка IP адресов сетей(с маской сети, если маска не указана, автоматом подставляется 32), а так же комментарий к каждому адресу. Оба поля обязательны для заполнения. С помощью кнопок + и - можно добавлять и удалять строки. Для очистки удалите все строки с адресами и нажмите Apply.
Частные списки доступа
Частный список доступа так же возможно задавать для администраторов или дилеров. Задать частный список можно через раздел User → Access list(колонка) → list
частный список доступа, привязанный непосредственно к пользователю
интерфейс аналогичен глобальным спискам доступа но применяется непосредственно к пользователю, важно частный список доступа перекрывает глобальный список, это дает возможность, к примеру, всем администратором ограничить доступ офисной сетью и какому то конкретному предоставить доступ с другой сети.
Проверка доступа
- при попытке пройти авторизацию в системе, если список доступа не позволяет авторизировать будет выведено сообщение:
- при попытке получить токен через приложение типа trusted - вернется статус 403 с сообщением - unallowed_ip
Варианты использования
- не заданы ни глобальные ни локальные списки доступа, всем администратором и дилерам разрешен доступ из всех сетей
- заданы глобальные списки доступа для администраторов и дилеров, все пользователи данного типа будут проходить эту проверку
- заданы(не заданы) глобальные списки, у пользователя задан частный список доступа, данный пользователь будут проходить проверку только по частному списку доступа
Ресурсы апи
Ресурс | Метод | Описание | Данные |
---|---|---|---|
/admin/admin_global_access_list/ /admin/dealer_global_access_list/ | GET | Получить глобальный список доступа для администраторов, дилеров соответственно | либо пустой список [] либо список записей вида: [{ "description": "string", "id": 0, "network_address": "string" }] |
/admin/admin_global_access_list/ /admin/dealer_global_access_list/ | PUT | Изменить глобальный список доступа | status=200 при успешном изменении списка |
/admin/users/{user_id}/access_list/ | GET | Получить частный список доступа, для пользователя типа администратор или диллер | либо пустой список [] либо список записей вида: [{ "description": "string", "id": 0, "network_address": "string", "user_id": 0 }] |
/admin/users/{user_id}/access_list/ | PUT | Изменить частный список доступа | status=200 при успешном изменении списка |
Доверенный IP адррес
Если был указан не верный адрес в списке доступа и система не дает войти администратору(ам) в главном конфигурационном файле /etc/ringme/main.cfg предусмотрен параметр
trusted_ip
в нем можно указать IP адрес для которого проверка, через список доступа, осуществляться не будет. Таким образом можно задать адрес перезапустить сервис API, авторизоваться и прописать правильные адреса в списках доступа.