Scope (список разрешений) – Действие или набор действий от имени пользователя, которые доступны для интеграции по протоколу OAuth.
На текущий момент разрешения разделяются только на две части:
В данный момент мы не стали усложнять систему доступов и по сути вся основная часть методов API вошла в единственный scope – Данные аккаунта.
Внешние интеграции не имеют доступа к методам пользователей.
Выдавать первичный доступ интеграции может только администратор аккаунта amoCRM, под первичным доступом мы называем случай, когда интеграция не установленна или отключена в аккаунте. Обычные пользователи могут выдать доступ через страница предоставления доступов.
Доступ, выданный администратором аккаунта, является полным. Если пользователя аккаунта деактивируют или удалят из аккаунта – Access и Refresh токен продолжат работать.
Доступ, выданный пользователями без прав администратора – при запросах к API наследует права пользователя, который выдал доступ.
Если доступ был выдан администратором аккаунта, то в таком случае к запросам к API можно добавить заголовок X-Context-User-ID, где в значении будет указан ID пользователя, права которого будут использованы при выполнении запроса. Если будет передан несуществующий или бесплатный пользователь аккаунта – в авторизации будет отказано.
Администратор аккаунта может отозвать доступ у любого установленного приложения для любого пользователя интеграции. Сделать это можно в разделе интеграции, в модальном окне интеграции. В списке выданных доступов – полный доступ имеет пометку, а при выдаче такого доступа через окно предоставления доступов – пользователь увидит предупреждение.
Приватные методы могут быть ограничены для вызова.
Если вы не выбрали доступ к Центру нотификаций при создании приложения и пользователи уже успели предоставить вашей интеграции ограниченный доступ scope, а после этого вы отредактировали scope в настройках интеграции до полного, то все пользователи, которые уже выдали ограниченный scope так и продолжат работать в его рамках. Для получения нового scope от тех же пользователей вам будет необходимо повторно запросить у них разрешения.
Возможно в будущем мы разделим scope Данные аккаунта на несколько частей. К примеру, будет ограничен доступ к приватным методам API (тем методам, которых нет в документации), для них будет нужен отдельный scope, для интеграций с уже установленным доступом новые доступы будут выданы автоматически, но мы оставляем право за собой ограничивать и отзывать доступы у конкретных интеграций.