Как устранить проблему OAuth, когда запрос на обновление токена отменяется клиентом, а не сервером? - PullRequest
0 голосов
/ 02 октября 2018

У меня написано веб-приложение, которое использует тип предоставления OAuth-кода "авторизации" для получения начального токена доступа, а затем тип предоставления "обновить токен" для обновления токена доступа.

ОднакоПроблема возникает, когда сервер OAuth выключен, а запрос на обновление маркера занимает много времени (более 10 секунд).Клиент тайм-аут запроса и отменит его, но сервер в конечном итоге выполняет запрос.Когда сервер выполняет запрос, он генерирует новый токен доступа и токен обновления и одновременно делает недействительным старый токен обновления.Клиент никогда не получает новые токены.

Теперь в следующий раз, когда клиент снова пытается обновить свой токен (когда сервер не отключен), он пытается сделать это с недействительным (старым) токеном обновления.Теперь единственный способ исправить проблему - это снова использовать грант «код авторизации», который требует ручного вмешательства конечного пользователя.

Как другие обходят эту проблему?

1 Ответ

0 голосов
/ 04 октября 2018

Я видел точно такую ​​же проблему в компании, в которой работал.

Совет, который я дал им, - не истекать / вращать токены обновления.Протокол Oauth позволяет обновлять ротацию токенов, но не требует этого.В модели угрозы Oauth обсуждаются значение и последствия, включая следующее примечание:

Примечание. Эта мера может вызвать проблемы в кластеризованных средах,
с момента использованиятекущего действующего токена обновления.В такой среде могут быть более подходящими другие меры.

Случай, с которым вы имеете дело, является еще одной причиной (в дополнение к примечанию выше) о том, почему истечение срока действия маркера обновления не является хорошей идеей.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...