Что такое ротация токена обновления и почему это важно?
Погрузимся и обсудим, почему ротация токена обновления — эффективный способ защитить безопасность ваших токенов обновления.
Погрузимся и обсудим, почему ротация токена обновления — эффективный способ защитить безопасность ваших токенов обновления.
Токен обновления — это специальный тип токена, который используется для получения нового токена доступа, когда текущий токен доступа истекает. Ознакомьтесь с нашим предыдущим постом Понимание токенов в OIDC чтобы узнать больше.
В ходе введения мы также упомянули, что в Logto для защиты безопасности вашего токена обновления мы по умолчанию внедрили механизм «ротации токена обновления».
Но что именно такое «ротация токена обновления»? Как это приносит пользу нашим конечным пользователям? Давайте погрузимся!
Ротация токена обновления — это механизм, который аннулирует предыдущий токен обновления и выдает новый, когда токен обновления используется для получения нового токена доступа. Этот механизм гарантирует, что токен обновления обновляется до того, как он истечет.
Токены обновления имеют длительный срок жизни, обычно в течение недель или даже месяцев. И поскольку мы можем получать новые токены доступа с помощью токена обновления, токен обновления также становится привлекательной целью для злоумышленников. Поэтому, согласно OAuth 2.0 BCP, сервер авторизации должен принять одно из следующих мер для предотвращения таких атак.
Sec-Token-Binding) в заголовке запроса обновления, чтобы выданный токен обновления был криптографически связан с конкретным клиентом. Однако в наши дни только некоторые из собственных клиентов привязаны к отправителю, и большинство современных SPA и мобильных клиентов являются публичными.В Logto, когда пользователь успешно вошел в систему, в базе данных сначала будет создан объект Grant, а затем выданный токен обновления будет иметь ссылочный grantId и указывать на самый первый объект Grant.
Всякий раз, когда происходит ротация токена обновления, предыдущий токен обновления будет помечен как использованный, и сервер авторизации Logto выдаст новый токен обновления с тем же grantId.
Предположим, что предыдущий токен обновления просочился, тогда либо законный клиент, либо злоумышленник использует его для обмена токена доступа. И независимо от того, кто это сделал, утекший токен обновления должен был уже быть обновлен и помечен как использованный. Один из них, кто использует использованный токен обновления во второй раз, уведомит сервер авторизации о нарушении. Сервер авторизации аннулирует все токены обновления с тем же grantId.
В приведенном выше случае, после срабатывания тревоги, законный клиент сможет только повторно аутентифицироваться через процесс входа в систему, чтобы получить новый токен обновления. С другой стороны, злоумышленник потеряет контроль над вашей системой и будет заблокирован снаружи.
В Logto поведение по умолчанию для ротации токена обновления определяет:
В консоли администратора Logto перейдите к Admin Console > Applications и выберите приложение, в котором вы хотите переключить ротацию токена обновления. На странице с деталями приложения перейдите на вкладку «Расширенные настройки» и прокрутите вниз до конца, вы найдете переключатель вместе с некоторыми другими полезными настройками.

Если вы отключите переключатель, ваш токен обновления никогда не будет обновлен до его истечения. Поэтому мы настоятельно рекомендуем всегда включать ротацию токена обновления.
Ротация токена обновления является лучшей практикой, которая обеспечивает безопасность токена обновления в вашем приложении. Она аннулирует предыдущий токен обновления и выдает новый, когда токен обновления используется для получения нового токена доступа. Этот механизм снижает риск утечки токена и обеспечивает безопасность вашего токена обновления.
Logto следует передовым отраслевым практикам и всегда ставит безопасность пользователей на первое место.
Я надеюсь, что этот блог хорошо объясняет ваши сомнения по механизм ротации токенов обновления. Дайте нам знать, если что-то еще неясно. Ваши отзывы и предложения всегда приветствуются!
Попробуйте Logto сегодня и примите более безопасный опыт аутентификации.