Skip to Content
ДокументацияОбласти доступа и изоляция

Области доступа и изоляция аккаунтов

Аутентификация определяет, какой именно бэкенд-сервис подключается. Авторизация определяет, какие действия этот сервис может выполнять и в каком именно аккаунте. Frigolive разделяет эти два решения и заново проверяет оба при каждом входящем запросе.

Трехуровневая проверка

  1. Список разрешенных аккаунтов учетной записи (allow-list): интеграция может обращаться только к тем реальным клиентским аккаунтам, к которым ей явно открыт доступ.
  2. Области доступа токена (scopes): права на чтение и запись разделены для каждого ресурса.
  3. Принадлежность ресурса тенанту: запрашиваемый ресурс должен действительно принадлежать выбранному аккаунту.

Успешного прохождения только одной проверки недостаточно. Токен с правами на чтение устройств все равно не сможет получить доступ к устройству, принадлежащему аккаунту вне его разрешенного списка.

Заголовок для работы с несколькими аккаунтами (X-Frigolive-Account-ID)

Одна учетная запись может быть открыта для нескольких реальных аккаунтов внутри группы компаний. В этом случае каждый запрос данных явно указывает целевой аккаунт через заголовок X-Frigolive-Account-ID.

Контракт Public API

Public API охватывает только официальные эндпоинты, предназначенные для обмена данными между клиентами и их собственными системами. Проверки безопасности и прав доступа выполняются независимо для каждого запроса.

Группы прав доступа

Следующие группы ресурсов могут быть предоставлены независимо:

  • Аккаунты: accounts:read, accounts:write
  • Локации: locations:read, locations:write
  • Перевозчики: carriers:read, carriers:write
  • Получатели: receivers:read, receivers:write
  • Шаблоны оповещений: alert-presets:read, alert-presets:write
  • Шаблоны отправок: shipment-templates:read, shipment-templates:write
  • Устройства: devices:read, devices:label:write, devices:settings:write
  • Телеметрия и обслуживание: telemetry:read, maintenance:read
  • Отправки: shipments:read, shipments:write, shipments:complete, shipments:share, shipments:tracking:read
  • Тревоги и отчеты: alarms:read, alarms:write, reports:read
  • Пользователи: users:read, users:write, users:invite

Наиболее надежный подход при интеграции — запрашивать минимальный набор областей доступа (principle of least privilege), который действительно необходим. Например, интеграции, которая только отображает карту, не требуются права на приглашение пользователей или удаление отправок.