Области действия (scopes)

Для доступа к API необходим токен доступа. Каждый токен доступа может обладать определенным набором областей действия. Если токен доступа не имеет область действия, которую требует выполняемый запрос, то вернется ошибка доступа 401.

Области действия имеют древовидную структуру наследования прав, записывается это в виде строки, разделенной точками (что напоминает обращения к вложенным объектам в JS). То есть область действия auth.data имеет более обширные права, чем более конкретная область действия auth.data.personal.get.

Запросы в API всегда требуют максимально конкретную область действия с минимальными правами. Зачастую под каждый запрос есть своя конкретная область действия. Сервер авторизации разрешает получать токен с более обширными правами (например auth.data) и использовать для выполнения всех запросов, которые входят в подмножество данной области действия (например начинаются с auth.data.*).

У каждого клиента администратор сервера авторизации настраивает разрешенный список областей действия, которые клиент может использовать. При проверке возможности использования области действия сервер авторизации использует ту же логику проверки подмножеств, что и при выполнении запроса.

Рекомендуется при написании кода получения токена доступа использовать конкретные области действия, которые указаны в документации как необходимые для выполнения запроса. Это позволит приложению клиента использовать токены только с необходимым доступом, а при выдаче токена пользователь увидит более подробное описание того, что будет использоваться приложением клиента. Если в дальнейшем потребуется расширить области действия токенов в уже работающем приложении клиента, то необходимо будет дописать нужные области и обнулить сессии со старыми токенами доступа внутри приложения клиента.

  • Области действия отвечающие за грант авторизации пользователей всегда начинаются с *.
  • Остальные работающие без авторизации пользователя начинаются с имени ресурса (например users.*).
С авторизацией пользователя
Область действия (scope) Описание
auth.data Доступ к общим данным, связанным с пользователем
auth.data.uid Доступ к идентификатору пользователя (UID)
auth.data.uid.get Получение информации о текущем идентификаторе пользователя
auth.data.personal Доступ к личным данным пользователя
auth.data.personal.get Получение персональных данных пользователя
auth.data.personal.patch Изменение личных данных пользователя
auth.data.client_storage Доступ к хранилищу клиента для сохранения пользовательских данных
auth.data.client_storage.get Получение данных из хранилища клиента
auth.data.client_storage.patch Обновление данных в хранилище клиента
auth.oauth_clients Доступ к управлению OAuth клиентами пользователя
auth.oauth_clients.get Получение списка зарегистрированных OAuth клиентов для пользователя
auth.oauth_clients.patch Обновление информации об OAuth клиенте
auth.skip_approve Отключение необходимости подтверждения авторизации пользователем
Без авторизации пользователя
users Доступ к данным о пользователях
users.post Создание нового пользователя