Русский

Инструменты разработчика · Декодер JWT

Отладка 401: что проверить в декодированном JWT, прежде чем обвинять API

· Почему это важно

JWT отладка аутентификация

Отклоненный JWT, проходящий через структурированный контрольный список отладки
Оригинальная векторная иллюстрация ToolAcre

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

Вчера это сработало — 401 появляется без изменения кода.

Сообщение 401, появляющееся без изменения кода клиента, может быть связано с возрастом токена, политикой эмитента, ротацией ключей, выбором аудитории или поврежденной копией. Начните с доказательств, а не предполагайте, что API не работает. Сохраните детали ответа и идентификаторы корреляции, прежде чем манипулировать учетными данными.

Декодируйте только просроченную, синтетическую или контролируемую соответствующим образом копию. ToolAcre может предоставлять структурные подсказки и подсказки по заявкам, но он не может идентифицировать каждое отклонение сервера, поскольку у него нет ключа, политики эмитента или журналов API. Контрольный список сужает вопросы; он не заменяет вердикт сервера ресурсов.

Сначала копируйте ошибки — префиксы «Bearer», завершающие символы новой строки и усеченные токены.

Сначала проверьте скопированное значение. ToolAcre обрезает окружающие пробелы и удаляет один нечувствительный к регистру префикс `Bearer `, который обрабатывает обычную вставку заголовка авторизации. Тогда требуется ровно три сегмента, разделенных точками. Неправильный подсчет указывает на усечение, неправильную форму токена или дополнительную пунктуацию перед началом анализа претензии.

Пустой заголовок или полезные данные вызывают сбой. Неверный URL-адрес base64, неверный UTF-8 и недействительный JSON имеют отдельные ошибки. Эти различия помогают определить, повредил ли транспорт токен. Подпись может быть искажена без проверки блокировки, но это предупреждение остается вероятным сбоем проверки, требующим подтверждения на стороне сервера.

exp и nbf: проверяйте значения в секундах, не превращая отображение в вердикт достоверности

Затем проверьте числовые значения `exp` и `nbf`. ToolAcre умножает секунды на 1,000, отображает UTC и отмечает более ранний срок действия или будущее не раньше относительно часов браузера. Тринадцатизначное значение может указывать на то, что миллисекунды были записаны там, где ожидались секунды.

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

aud и iss — это токен для этого API, от эмитента, которому этот API доверяет?

`aud` должен идентифицировать предполагаемого получателя в соответствии с политикой API, а `iss` должен соответствовать отношениям доверенного эмитента. ToolAcre перечисляет оба значения как декодированные и объясняет их зарегистрированные значения. Он не сравнивает их с конфигурацией API и не привязывает строку эмитента к набору ключей.

Правдоподобный эмитент URL и имя аудитории могут быть сфабрикованы. Сравнивайте точные декодированные значения с настроенными ожиданиями сервера только после сохранения границы проверки подписи. Если несколько служб используют инфраструктуру идентификации, проверки аудитории особенно важны для предотвращения использования действующего токена одной службы в другой.

Тип токена может быть предложен заголовками и утверждениями, но декодирование не может подтвердить подлинность этой классификации.

Токен идентификатора и токен доступа могут выглядеть как JWT, состоящий из трех частей. Заголовок `typ`, аудитория, области действия и претензии для конкретного профиля могут указывать на то, какой из них у вас есть. ToolAcre предупреждает о неожиданной строке `typ`, но не реализует классификацию токенов OpenID Connect или OAuth.

Используйте документацию эмитента и клиентский поток, чтобы определить ожидаемый тип токена. Отправка токена идентификатора в API может завершиться неудачей, даже если его подпись действительна для поставщика удостоверений. Декодирование поддерживает диагностику; он не может аутентифицировать метку типа или предоставить полномочия API.

kid после ротации ключа — действительный токен, ссылающийся на ключ, которого больше нет на сервере.

После ротации ключей заголовок `kid` может ссылаться на ключ, отсутствующий в текущем наборе доверенных данных сервера. Считайте идентификатор, затем проверьте кэш и журналы набора ключей на верификаторе. Не извлекайте предоставленный заголовком URL и не принимайте встроенный ключевой материал в качестве быстрого обходного пути.

Правильно подписанный токен все равно может потерпеть неудачу, если верификатор не сможет найти разрешенный ключ, в то время как злоумышленник может записать любой `kid` в непроверенный заголовок. Значение представляет собой подсказку для поиска, ограниченную конфигурацией доверенного издателя, а не свидетельство того, что конкретному ключу следует доверять.

Рабочий пример — прогон отклоненного токена через контрольный список в декодере ToolAcre JWT.

Для отработанной сортировки возьмите контролируемый отклоненный токен, подтвердите три сегмента, проверьте ошибки, затем запишите `exp`, `nbf`, `aud`, `iss`, `typ` и `kid` без редактирования. Сравните каждое поле с целью запроса API и доверенной конфигурацией проверяющего. Держите журналы сервера открытыми для конкретной категории сбоя.

Если все видимые значения выглядят ожидаемыми, не делайте вывод, что API неправильный. Повреждение подписи, неправильный ключевой материал, отозванное состояние или неотображаемая политика все равно могут объяснить 401. `signatureVerified` ToolAcre остается ложным независимо от того, насколько аккуратно выглядит JSON.

Чего это не касается, так и вывод: декодер не может сказать вам, действительна ли подпись; контрольный список выявляет проблемы с заявками, а для ошибок подписи требуются журналы сервера.

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

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