Замокать эндпоинт JWKS для проверки JWT
GET-мок на /.well-known/jwks.json с одним RSA-ключом в формате JWK Set.
Заменяет собой эндпоинт стороннего API.
Тело ответа
{
"keys": [
{
"kty": "RSA",
"use": "sig",
"alg": "RS256",
"kid": "quickmock-demo-2024",
"n": "n6cS6BgeHi-qEzBkR5cS-MPBwt1dG9y-tGiSTw8Uov3jMu9Yiz6Oua5dg6xKnEhP20owo6iHI_MMSjU6Sb6iKSyIskDb5myN9DHC6exkDsoKPn5tPOIbzXeV0SaF-b3BejNwakl5nfHVHFMkbLCvx9KP985_5k3b7hD1UTdBOFYLIgHWTIlUkV1L9o5DoiGMm2GYWxww3tL_ZFllp4i4yyPP6c4D_J7kgFukBBZZBGe3Ou1QvzcNUYoaRNRK1PRBsC24xSfN1oZYBd4xpg6Kp3xmpsGR2nzWCviSWbvHatFusy_NqCq2Io1EAeup_i0eIN86t2-G7rn4Uoul27BQcQ",
"e": "AQAB"
}
]
}
Поля, на которые стоит обратить внимание
| Поле | Что означает |
|---|---|
| keys | Массив JWK Set; добавьте ещё записи, чтобы проверить логику ротации ключей. |
| keys.0.kid | ID ключа, на который ссылается заголовок JWT при выборе ключа. |
| keys.0.alg | Алгоритм подписи, который заявляет этот ключ. |
| keys.0.n | Модуль RSA в base64url — только для иллюстрации, рабочим ключом не является. |
Создать мок
curl -X POST https://quickmock.dev/api/mocks \
-H 'Content-Type: application/json' \
-d '{
"method": "GET",
"response_status": 200,
"content_type": "application/json",
"path_suffix": ".well-known/jwks.json",
"response_body": "{\"keys\":[{\"kty\":\"RSA\",\"use\":\"sig\",\"alg\":\"RS256\",\"kid\":\"quickmock-demo-2024\",\"n\":\"n6cS6BgeHi-qEzBkR5cS-MPBwt1dG9y-tGiSTw8Uov3jMu9Yiz6Oua5dg6xKnEhP20owo6iHI_MMSjU6Sb6iKSyIskDb5myN9DHC6exkDsoKPn5tPOIbzXeV0SaF-b3BejNwakl5nfHVHFMkbLCvx9KP985_5k3b7hD1UTdBOFYLIgHWTIlUkV1L9o5DoiGMm2GYWxww3tL_ZFllp4i4yyPP6c4D_J7kgFukBBZZBGe3Ou1QvzcNUYoaRNRK1PRBsC24xSfN1oZYBd4xpg6Kp3xmpsGR2nzWCviSWbvHatFusy_NqCq2Io1EAeup_i0eIN86t2-G7rn4Uoul27BQcQ\",\"e\":\"AQAB\"}]}"
}'
Вызвать
curl https://quickmock.dev/m/<slug>/.well-known/jwks.json
Что вы получите
GET /m/<slug>/.well-known/jwks.json -> 200 one RSA JWK
the key is illustrative only, it does not verify any real signature
Чем это отличается от настоящего
RSA-ключ в этом документе — только иллюстративный: у Quickmock нет приватного ключа, который ему соответствует, поэтому он не проверит настоящую подпись. Используйте мок, чтобы проверить, что клиент правильно разбирает JWKS-документ, а не для валидации реальных токенов.
Готовы попробовать?
Хорошо сочетается с гайдом: Замокать REST API эндпоинт