Области действия (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 | Создание нового пользователя |