Области применения
Областью применения (scope) является разрешение, которое устанавливается на маркер - контекст, в котором этот маркер может действовать. Например, маркеру с областью применения data:read разрешено считывать данные в экосистеме Forge и он может быть использован в тех конечных точках, которые требуют этой области применения. Токенам без этой области применения будет отказано в доступе к таким конечным точкам. (Отдельные справочные страницы по конечным точкам перечисляют требуемые области.)
Области применения выполняют две основные функции:
- Защита и контроль: В контексте three-legged OAuth они выступают в качестве механизма для запроса и обеспечения разрешения действовать от имени конечного пользователя в указанных направлениях.
- Безопасность: как в 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