Разрешения и права

Scope (список разрешений) – Действие или набор действий от имени пользователя, которые доступны для интеграции по протоколу OAuth.

На текущий момент разрешения разделяются только на две части:

  • Данные аккаунта в соответствие с права пользователя – доступны все методы API, кроме методов работы с центром уведомлений и API файлов;
  • Доступ к файлам – при наличии данного scope доступны методы API файлов, за исключение удаления файлов;
  • Удаление файлов – при наличии данного scope доступны методы удаления файлов в API файлов;
  • Центр уведомлений.

В данный момент мы не стали усложнять систему доступов и по сути вся основная часть методов API вошла в единственный scope – Данные аккаунта.

Внешние интеграции не имеют доступа к методам пользователей.

Выдавать первичный доступ интеграции может только администратор аккаунта amoCRM, под первичным доступом мы называем случай, когда интеграция не установленна или отключена в аккаунте. Обычные пользователи могут выдать доступ через страница предоставления доступов.

Доступ, выданный администратором аккаунта, является полным. Если пользователя аккаунта деактивируют или удалят из аккаунта – Access и Refresh токен продолжат работать.

Доступ, выданный пользователями без прав администратора – при запросах к API наследует права пользователя, который выдал доступ.

Если доступ был выдан администратором аккаунта, то в таком случае к запросам к API можно добавить заголовок X-Context-User-ID, где в значении будет указан ID пользователя, права которого будут использованы при выполнении запроса. Если будет передан несуществующий или бесплатный пользователь аккаунта – в авторизации будет отказано.

Администратор аккаунта может отозвать доступ у любого установленного приложения для любого пользователя интеграции. Сделать это можно в разделе интеграции, в модальном окне интеграции. В списке выданных доступов – полный доступ имеет пометку, а при выдаче такого доступа через окно предоставления доступов – пользователь увидит предупреждение.
Приватные методы могут быть ограничены для вызова.

Если вы не выбрали доступ к Центру нотификаций при создании приложения и пользователи уже успели предоставить вашей интеграции ограниченный доступ scope, а после этого вы отредактировали scope в настройках интеграции до полного, то все пользователи, которые уже выдали ограниченный scope так и продолжат работать в его рамках. Для получения нового scope от тех же пользователей вам будет необходимо повторно запросить у них разрешения.

Возможно в будущем мы разделим scope Данные аккаунта на несколько частей. К примеру, будет ограничен доступ к приватным методам API (тем методам, которых нет в документации), для них будет нужен отдельный scope, для интеграций с уже установленным доступом новые доступы будут выданы автоматически, но мы оставляем право за собой ограничивать и отзывать доступы у конкретных интеграций.


Смотрите также