Являются ли области OAuth2 разрешениями для приложений?

#oauth-2.0

#oauth-2.0

Вопрос:

Допустимо ли использовать область OAuth2 для ваших собственных пользователей, чтобы определить, есть ли у них разрешения на выполнение действий в вашем собственном API? Похоже, что область больше предназначена для обмена разрешениями между поставщиками аутентификации.

Ответ №1:

Из спецификации OAuth2.0 (RFC6749 — Доступ к защищенным ресурсам

Сервер ресурсов ДОЛЖЕН проверить токен доступа и убедиться, что срок его действия не истек и что его область действия охватывает запрошенный ресурс.

Понятно, что области являются частью процесса авторизации на сервере ресурсов, но они отражают ответ на вопрос «что разрешено делать клиенту (он же «Приложение») от моего имени?», а не «что разрешено делать пользователю?». Последнее определяется в более или менее сложных политиках, тогда как первое определяется при регистрации клиента, и токен доступа может содержать или не содержать все запрошенные области. Области действия — это контракт между клиентом, API и сервером авторизации.

Сказав это, использование такой информации, как роли в областях, может привести к большому количеству областей, которые трудно поддерживать. API должен обрабатывать общие области и получать более подробную информацию для определения разрешений пользователя из внешней системы (например, получение роли пользователя). Рассмотрите возможность использования OpenID и утверждений вместо этого. Утверждения — это свойства пользователя, что означает, что ваш API может воздействовать на эти свойства вместо выполнения дополнительных вызовов.