JWKS — это JSON-документ, содержащий массив ключей, каждая запись которого представляет собой открытый ключ в формате JWK с идентификатором (kid), типом ключа, алгоритмом и материалом ключа. Поставщики идентификационных данных публикуют его по известному URL-адресу, чтобы каждый API, получающий их токены, мог проверять подписи, не раскрывая никаких секретных данных.
Подписанный JWT указывает в поле kid заголовка ключ, с помощью которого он был подписан. Верификатор получает JWKS эмитента (обычно его можно найти в документе обнаружения OpenID), выбирает ключ с этим kid и проверяет подпись. Ключи меняются путем публикации нового ключа рядом со старым перед переключением, поэтому верификаторы должны кэшировать набор ключей, но повторно получать его при неизвестном kid.
Ключевой набор можно получить один раз и закрепить в конфигурации. Провайдеры меняют ключи; верификатор с жестко закодированным ключом начинает отклонять каждый действительный токен в день смены ключа. Противоположная ошибка — получение ключа при каждом запросе — делает поставщика идентификации зависимым от каждого вызова.
Запрос GET /identity/v1/jwks возвращает демонстрационный набор ключей API Modern Identity, а документ обнаружения по адресу GET /identity/v1/.well-known/openid-configuration указывает на него, как это делает реальный поставщик.
Все термины · Приёмы тестирования · Все 39 mock REST API
Последнее обновление