Привратник — ограничивайте типы грантов на определенной конечной точке

У меня есть виноградный API, который предоставляет некоторые конечные точки и привратник для авторизации. По умолчанию привратник разрешает предоставление кода авторизации, а также предоставление учетных данных клиента. Поэтому я могу запросить токен доступа только с этими двумя грантами.

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

Например, если кто-то запрашивает токен с предоставлением кода авторизации, когда он запрашивает ресурс в API, я хочу знать, что он использовал предоставление кода авторизации для получения своего токена. Затем я могу проверить каждый сделанный запрос, сделан ли данный токен из гранта кода авторизации или нет, и предоставить ресурс или нет.

Я знаю, что есть области применения для обработки конкретной авторизации, но я хотел знать, есть ли решение этой проблемы. Возможно, это неправомерная проблема, возможно, я что-то упускаю из спецификации OAuth, поэтому приветствуются все комментарии!


person wRadion    schedule 10.05.2016    source источник


Ответы (1)


Маркеры доступа, выдаваемые потоком учетных данных клиента, не связаны с каким-либо владельцем ресурса. Таким образом, в вашем случае использования вы можете определить, был ли токен доступа выдан потоком кода авторизации или потоком учетных данных клиента, проверив, связан ли токен доступа с владельцем ресурса или нет.

person Takahiko Kawasaki    schedule 12.05.2016
comment
Вы правы, я думал об этом после того, как задал этот вопрос, но как насчет других грантов? Неявное предоставление и предоставление пароля? - person wRadion; 12.05.2016
comment
От реализации привратника зависит, сможете ли вы получить тип гранта, с помощью которого был выдан токен доступа. Если текущая реализация не предоставляет такой функции, вам необходимо изменить реализацию привратника. По крайней мере, даже официальная спецификация (RFC 7662) для самоанализа токена доступа не распространяется на ваши случай использования. - person Takahiko Kawasaki; 12.05.2016
comment
Я не знал об этом RFC Token Introspection, спасибо за это! Кроме того, если я правильно понимаю, знание типа гранта, из которого исходит токен, бесполезно, поэтому моя идея реализации находится на неправильном пути. Поэтому я буду использовать области авторизации только для фильтрации входящих запросов и соответствующего ответа на них. Спасибо за помощь! Ваш ответ на самом деле единственный ответ, который кто-либо может дать на этот вопрос, поэтому я отмечу его как принятый ответ. - person wRadion; 12.05.2016