Общие сведенья
В системе предусмотрена возможность ограничивать доступ к 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, авторизоваться и прописать правильные адреса в списках доступа.