Вызов refresh_token не обновляет идентификаторы ресурсов в токене.

Поток это что-то вроде этого:

  1. У нас есть приложение oauth, зарегистрированное с определенными идентификаторами ресурсов, поэтому у этого приложения есть доступ к этим
  2. Через некоторое время возникает необходимость добавить еще один идентификатор ресурса, так как мы расширяем возможности нашего клиентского приложения.
  3. Время от времени клиентское приложение обновляет токен из-за ошибок или истечения срока действия access_token.
  4. Использование check_token для нового access_token дает нам старый набор идентификаторов ресурсов. Кажется, он взят из некоторого кэша или самого старого токена.

Вопрос: не следует обновлять токены, обновлять также идентификаторы ресурсов? Это повторяет oauth rfc(не может найти что-либо об этом конкретном случае в нем)?

Мы, конечно, могли бы отозвать все токены для приложения oauth, но это потребовало бы от всех наших пользователей повторного входа в систему, чего мы хотим избежать.

Я не уверен, связано ли это с весенней облачной безопасностью или, скорее, с самим oAuth. С

1 ответ

В этом ответе предполагается, что ваши идентификаторы ресурсов эквивалентны тому, что OAuth2 описывает как области, так как из вашего описания их назначение кажется очень схожим - ограничьте доступ к токену доступа.

При выдаче запроса на обновление маркера доступа в спецификации указывается, что вы можете включить scope параметр, однако:

Объем запроса на доступ описан в разделе 3.3. Запрашиваемая область НЕ ДОЛЖНА включать в себя любую область, изначально не предоставленную владельцем ресурса, и, если она опущена, обрабатывается как равная области, первоначально предоставленной владельцем ресурса.

Кроме того, как часть ответа может быть выдан новый токен обновления, но снова:

Сервер авторизации МОЖЕТ выдать новый токен обновления (...) Если выпущен новый токен обновления, область действия токена обновления ДОЛЖНА быть идентична области действия токена обновления, включенного клиентом в запрос.

(акцент мой, раздел 6. спецификации)

Это означает, что, согласно спецификации, автоматическое добавление новых областей / ресурсов к токену доступа не соответствует требованиям. Однако вам не нужно выходить из системы пользователей, вам нужно только запросить согласие владельца ресурса на новые области.

Опять же, это то, что говорится в спецификации о областях, которые, кажется, соответствуют вашему сценарию использования. Тем не менее, есть некоторые сценарии, где это не будет применяться так строго или в конечном итоге не окажет реального воздействия. Если одна организация контролирует сервер авторизации и клиентское приложение, оно может решить, что какое-то приложение получит то, что иногда называют административным согласием, которое, по сути, является владельцем ресурса, не запрашивает явного согласия, потому что это доверенное приложение. В этих случаях вы можете увеличить объемы / ресурсы без какого-либо вмешательства пользователя.

Другие вопросы по тегам