Подписание ключа ролловера и естественно истекающих токенов доступа

Я занимаюсь разработкой приложения, которое использует Azure AD в качестве поставщика OAuth2.0. У Azure есть конечная точка Jwks с несколькими открытыми ключами, один из которых соответствующий ей закрытый ключ использовался для подписи моего токена. Мое приложение обрабатывает распознавание ключа подписи, проверяя keyid из заголовка авторизации и определяя, с каким ключом подписан токен, просматривая его в кэше.

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

Как можно разрешить токены, подписанные ключами, которые больше не находятся в конечной точке Jwks, по-прежнему использоваться для проверки токена до тех пор, пока не истечет естественное время истечения токена?

0 ответов

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