ADN Open CIS
Сообщество программистов Autodesk в СНГ

13/09/2016

Области применения

Областью применения (scope) является разрешение, которое устанавливается на маркер - контекст, в котором этот маркер может действовать. Например, маркеру с областью применения data:read разрешено считывать данные в экосистеме Forge и он может быть использован в тех конечных точках, которые требуют этой области применения. Токенам без этой области применения будет отказано в доступе к таким конечным точкам. (Отдельные справочные страницы по конечным точкам перечисляют требуемые области.)

Области применения выполняют две основные функции:

  1. Защита и контроль: В контексте three-legged OAuth они выступают в качестве механизма для запроса и обеспечения разрешения действовать от имени конечного пользователя в указанных направлениях.
  2. Безопасность: как в two-, так и в three-legged OAuth контекстах, они гарантируют, что если вы потеряете контроль над своим токеном, он не сможет быть использован для доступа к ресурсам, для которых он не предназначался.

Расширяя на секцию "Общие потоки аутентификации и авторизации" страницы Основы API, области применения запрашиваются через следующие конечные точки:

  • POST authenticate: Вызов получает two-legged маркер с областью доступа.
  • GET authorize: Логин Autodesk и страница авторизации, на которую перенаправляется конечный пользователь для того, чтобы в явном виде дать согласие на предоставление приложению запрошенной области видимости.
  • POST refreshtoken: Получает новый three-legged токен как со всеми областями, или с подмножеством областей, предоставляемыми исходным токеном.

Значения областей применения

Структура значений области применения имеет вид <namespace>:<operation>, где <namespace> относится к общему ресурсу или категоризации сущности, а <operation> относится к действиям, которые будут выполняться над ресурсом или сущностью.

Значение

Отображаемое сообщение о на странице разрешения доступа

(В потоке three-legged OAuth)

Значение

user-profile:read

Просмотр информации вашего профиля

Приложение сможет считывать данные профиля конечного пользователя.

data:read

Просмотр ваших данных

Приложение сможет считывать данные конечного пользователя в экосистеме Autodesk.

data:write

Управление вашими данными

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

data:create

Запись данных

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

data:search

Поиск по вашим данным

Приложение сможет считывать данные конечного пользователя в экосистеме Autodesk.

bucket:create

Создание новых пакетов (buckets)

Приложение сможет создать пакет OSS, которым оно будет владеть.

bucket:read

Просмотр ваших пакетов

Приложение сможет прочитать метаданные и список содержимого OSS пакет, к которым оно имеет доступ.

bucket:update

Обновление ваших пакеты

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

bucket:delete

Удаление ваших пакеты

Приложение сможет удалить пакет, к которому у него есть разрешение на удаление.

code:all

Создание или выполнение ваших кодов

Приложение сможет создавать и выполнять код от имени конечного пользователя (например, скрипты, обрабатываемые Automation API Design).

account:read

Просмотр ваших программных и служебных учетных записей

Для API-интерфейсов продукта, приложение будет иметь возможность считывать данные учетной записи конечного пользователя, на которые имеет права конечный пользователь.

account:write

Управление программными и служебными учетными записями

Для API-интерфейсов продукта, приложение будет иметь возможность считывать данные учетной записи конечного пользователя, на которые имеет права конечный пользователь.

Уязвимости безопасности области применения и Viewer'а

Viewer требует, чтобы сервер, который предоставляет ему хостинг (API приложение REST) передовал ему действительный токен, так чтобы он смог общаться с Model Derivative API непосредственно с помощью JavaScript – для того, чтобы получить данные, необходимые ему для отображения проектных файлов в браузере. Поскольку это означает, что токен подвергается воздействию со стороны клиента, важно убедиться, что токен ограничен областью применения data:read, которая требуется конечными точками, которые вызывает Viewer. Это особенно важно в two-legged контексте, где злонамеренный конечный пользователь может использовать токен с незаданными областями применения, чтобы предпринять действия внутри платформы от имени разработчика и скомпрометировать данные разработчика.

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

Внедрение

Начиная с 2016-06-15, любые новые созданные приложения будут обязаны запросить области применения для их маркеров.

Любые приложения, уже существующие на 2016-06-15 будут принудительно помечены, как устаревшие до 2017-01-02.

В течение этого льготного периода, между 2016-06-15 и 2017-01-02, 2-legged токены, порожденные устаревшими приложениями, будут рассматриваться следующим образом конечными точками, которые имеют требуемые области применения:

  • Если маркер имеет область применения no , то проверка области применения не будет осуществлена конечной точкой.
  • Если маркер имеет область применения any, то проверка области применения будет исполняться, как будто приложение не было grandfathered в (т.е. маркер должен обладать областями видимости, требуемыми в конечной точке).

Цель льготного периода является избежание нарушения существующих приложений. Имея это в виду, вам рекомендуется обновить свои приложения немедленно до использования областей видимости.

Обратите внимание, что льготный период доступен только для 2-legged  маркеров. Проверка областей видимости будет применяться для 3-legged товенов, даже для приложений, созданных до 2016-06-15.

Источник: https://developer.autodesk.com/en/docs/oauth/v2/overview/scopes/

Автор перевода: Дмитрий Емельянов

Обсуждение: http://adn-cis.org/forum/index.php?topic=

Опубликовано 13.09.2016