Пятый фактор
Обсудить задачу
Безопасность и эксплуатация

Ротация ключей JWT через JWKS

Составляем карту выпуска и проверки JWT: алгоритмы, идентификатор ключа (kid), издатель, получатель, срок токена, кэши и места хранения. Переходим на асимметричную подпись либо приводим текущую схему к опубликованному адресу JWKS с контролируемым доступом.

Срок: 5 рабочих дней

Когда стоит обратиться

Обычно к нам обращаются в таких ситуациях:

  • JWT подписывается одним статическим ключом, а понятный регламент его смены отсутствует.
  • Резкая замена секрета завершает все сессии или временно ломает запросы между сервисами.
  • Приложения хранят публичный ключ в конфигурации и требуют ручного выпуска при каждой ротации.

Что именно мы сделаем

01

Составляем карту выпуска и проверки JWT: алгоритмы, идентификатор ключа (kid), издатель, получатель, срок токена, кэши и места хранения.

02

Переходим на асимметричную подпись либо приводим текущую схему к опубликованному адресу JWKS с контролируемым доступом.

03

Добавляем новый ключ заранее, настраиваем выбор по kid, обновление кэша и защиту от неизвестного алгоритма или адреса ключей.

04

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

05

Проверяем новый и старый токен, неизвестный kid, недоступный JWKS, ошибочный issuer и audience, затем передаём регламент ротации.

Что входит в стоимость

23 000 ₽ за всю работу

Составляем карту выпуска и проверки JWT: алгоритмы, идентификатор ключа (kid), издатель, получатель, срок токена, кэши и места хранения. Переходим на асимметричную подпись либо приводим текущую схему к опубликованному адресу JWKS с контролируемым доступом. Добавляем новый ключ заранее, настраиваем выбор по kid, обновление кэша и защиту от неизвестного алгоритма или адреса ключей.

Перед сдачей проверяем, что новый токен проверяется по новому kid, а действующий старый токен продолжает работать до своего срока. В комплект результата входят: рабочий адрес JWKS и обновлённая проверка JWT; безопасная схема хранения и перекрывающей ротации ключей; набор контрольных сценариев и пошаговый регламент следующей смены. Небольшие связанные уточнения, которые появляются во время работы, уже учитываем в стоимости.

Что будет готово

Материалы

Передадим вам

  • Рабочий адрес JWKS и обновлённая проверка JWT.
  • Безопасная схема хранения и перекрывающей ротации ключей.
  • Набор контрольных сценариев и пошаговый регламент следующей смены.
Проверка

Перед сдачей проверим

  • Новый токен проверяется по новому kid, а действующий старый токен продолжает работать до своего срока.
  • Проверяющий сервис обновляет JWKS при появлении нового ключа и использует кэш при кратком сбое адреса.
  • Токен с неизвестным kid, issuer, audience или алгоритмом получает безопасный отказ и запись в журнале.

Как это выглядит на практике

Смена ключа без выхода пользователей

Типичная ситуация: JWT подписывается одним статическим ключом, а понятный регламент его смены отсутствует. Сначала публикуем новый публичный ключ рядом с действующим и проверяем его получение сервисами, затем начинаем подписывать свежие токены новым kid, сохраняя приём старых, а в финале проводим запросы с обоими токенами и моделируем краткую недоступность JWKS.

  1. 01

    Публикуем новый публичный ключ рядом с действующим и проверяем его получение сервисами.

  2. 02

    Начинаем подписывать свежие токены новым kid, сохраняя приём старых.

  3. 03

    Проводим запросы с обоими токенами и моделируем краткую недоступность JWKS.

  4. 04

    После окончания старых токенов убираем прежний ключ и повторяем негативную проверку.

Что понадобится для работы

От вас

  • Доступ к сервису, который выпускает JWT, и участвующим сервисам проверки.
  • Текущие алгоритмы, сроки токенов, issuer, audience и способ хранения ключей.
  • Тестовые учётные записи и доступ к журналам авторизации.

Если у вас немного другая ситуация

Небольшие уточнения, которые помогают довести согласованный результат до рабочего состояния, уже учитываем в цене. Если по ходу работы появится отдельный крупный блок или понадобится платная лицензия, сначала обсудим варианты и стоимость. Расскажите о своей ситуации — подстроим план под неё.

Стоимость работ 23 000 ₽ полная стоимость известна заранее
  1. 3 000 ₽после подписания договора через Диадок
  2. 20 000 ₽после выполнения, демонстрации и приёмки результата

Предоплата входит в общую стоимость. Оставшуюся сумму оплачиваете после демонстрации и приёмки готовой работы.

Часто спрашивают

Об этой услуге

Что такое kid в JWT?

Kid — идентификатор ключа в заголовке токена. Проверяющий сервис находит по нему подходящий публичный ключ в JWKS.

Зачем одновременно публиковать два ключа?

Новый ключ обслуживает свежие токены, а прежний продолжает проверять уже выданные до окончания их срока. Такой перекрывающий период сохраняет активные сессии.

Что произойдёт при недоступности JWKS?

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

Где хранится закрытый ключ?

Закрытая часть остаётся у эмитента в менеджере секретов, защищённом файле или HSM по возможностям проекта. JWKS публикует только открытые ключи.

Цена и изменения по ходу работы

Цена на странице окончательная?

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

Что означает резерв незапланированных работ?

Это уже включённый в цену запас времени на небольшие связанные уточнения заказчика, которые появляются после старта: например, добавить поле, изменить формат уведомления или учесть ещё одно условие обработки.

Резерв рассчитывается по формуле: стоимость услуги × 30% ÷ 1 500 ₽. Для услуги за 30 000 ₽ это 6 часов. Эти часы относятся только к дополнительным, заранее незапланированным уточнениям. Они не являются сроком проекта и не ограничивают время на основную работу: согласованный результат мы выполняем полностью.

Можно уточнять детали уже во время работы?

Да. Небольшие связанные изменения обычно помещаются во включённый резерв и не требуют доплаты. Если новая идея заметно меняет результат или превращается в самостоятельную задачу, сначала обсудим подход и стоимость. Любое решение согласуем до выполнения.

Начало работы и оплата

Как оформляются договор и оплата?

Подписываем договор через Диадок. Предоплата составляет 3 000 ₽ и входит в общую стоимость услуги. Остаток оплачивается после демонстрации и приёмки готового результата.

Когда начинается срок выполнения?

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

Как учитываются платные лицензии и внешние сервисы?

До старта проверяем, нужны ли тарифы, лицензии, сертификаты или дополнительные ресурсы внешних систем. Если они потребуются, заранее покажем варианты и стоимость. По возможности аккаунты и лицензии оформляются сразу на заказчика.

Проверка результата и гарантия

Как принимается готовая работа?

Вместе проверяем согласованные сценарии на контрольных данных или тестовой копии, а затем демонстрируем результат. Для интеграций сверяем передачу данных и обработку ошибок, для сайта — работу нужных страниц и действий пользователя, для отчёта — расчёты и обновление данных.

Какая гарантия действует после сдачи?

На выполненные изменения действует гарантия 3 месяца. Если в изменённой нами части обнаружится ошибка нашей реализации, проверим и исправим её без дополнительной оплаты. Переданные материалы, настройки и код остаются у заказчика.

Следующий шаг

Опишите задачу

Расскажите, что происходит сейчас и какой результат хотите получить. Можно указать сайт, CMS, 1С, CRM, ERP или другую систему. Если подходящую услугу выбирать рано, просто опишите ситуацию — мы разберёмся и предложим следующий шаг.