Насколько я понимаю: -
Области, которые может получить oauth-клиент, регистрируются у клиента на сервере авторизации.
Типы разрешений, которые может использовать клиент, регистрируются для клиента на сервере авторизации.
Ресурсы настроены для разрешения запросов, содержащих токены доступа, связанные с определенными областями.
Существует ли механизм в OAuth ванили, в котором тип ограничения в дополнение к областям используется при ограничении конечной точки?
Например, задан Клиент A с областями действия = организации, изображения и типы предоставления = учетные данные клиента, код авторизации:
(при создании токена)
Для клиента А для получения токена доступа для области «организации», только учетные данные клиента предоставляют можно использовать тип.
Для клиента A для получения токена доступа для области «images» можно использовать только тип предоставления кода авторизации.
Когда конечная точка / organization вызывается с токеном доступа, содержащим ожидаемую область действия организации, разрешить запрос можно только в том случае, если тип предоставления учетных данных клиента использовался для получения токена доступа (ошибка, если использовался любой другой тип предоставления).
Когда вызывается конечная точка / images с токеном доступа для хранения ожидаемого Область 'images' разрешает запрос, только если для получения токена доступа использовался тип предоставления кода авторизации (сбой, если использовался любой другой тип предоставления).
Насколько я знаю Области ограничены только тем, что зарегистрировано для клиента.
Единственный способ, которым я могу думать о достижении вышеизложенного, - это иметь две клиентские регистрации (например, b, c) для одного и того же фактического клиента (A ) и настройте клиент 'b' для типа предоставления учетных данных клиента и области организации и клиента 'c' для типа предоставления кода авторизации и области изображений.
Обновление * 105 1 *
В параметрах OID C можно добавить одну область для добавления области ролей, что будет означать, что заявки о ролях будут добавлены в маркер доступа. Затем можно проверить токен доступа, чтобы определить, является ли роль третьей стороной (предоставление учетных данных клиента) или пользователем (предоставление кода авторизации). Мне все равно было бы интересно узнать, есть ли что-то специально встроенное в oauth для ограничения по типу гранта.