공개 키 JWT 검증
JWKS Validator
신뢰하는 JSON Web Key Set으로 JWT를 검증합니다. kid를 읽고 호환 JWK를 선택한 뒤 브라우저에서 공개 키 서명을 확인합니다.
서명 검증은 브라우저에서 실행됩니다. 원격 로드는 입력한 JWKS URL만 요청하며 JWT는 해당 endpoint나 검증 API로 전송되지 않습니다.
토큰의 jku 또는 x5u를 자동으로 따라가지 않습니다. JWKS 출처는 신뢰 설정으로 취급하세요.
JWKS로 JWT를 검증하는 순서
먼저 header에서 alg와 kid를 읽은 뒤 expected issuer용으로 이미 신뢰하는 JWKS를 사용합니다. 미검증 JWT가 key source를 직접 선택하게 하지 않습니다.
RFC 7517의 JWK Set은 keys 배열을 가지며 kid는 rotation 중 key 선택에 자주 사용됩니다. kid 일치만으로는 부족하고 alg, key use, issuer 신뢰도 확인합니다.
1. alg + kid 읽기
미검증 header를 신뢰 설정으로 사용하지 않고 선택 힌트로만 봅니다.
2. 신뢰 JWK 선택
kid와 함께 kty, alg, use, key_ops 호환성을 확인합니다.
3. 서명 + claims 검증
서명 뒤 exp/nbf와 필요한 issuer/audience를 확인합니다.
지원 알고리즘
RS256/384/512, PS256/384/512, ES256/384/512를 Web Crypto API로 검증합니다. 공개 JWKS에 HMAC 공유 secret을 노출하면 안 되므로 HS 계열은 제외합니다.
jku 또는 x5u를 자동으로 따라가지 않는 이유
토큰이 지정한 URL을 그대로 따라가면 SSRF와 trust boundary 문제가 생길 수 있습니다. 명시적으로 입력한 JWKS URL만 불러옵니다.