[Auth] JWKS

JUJU·2025년 3월 19일

Auth

목록 보기
4/5

✏️ JWKS(JSON Web Key Set)

JWKS란?

JWKS(JSON Web Key Set)

: 공개 키(Public Key) 정보를 제공하는 JSON 형식의 표준 포맷이다.
이는 JWT(JSON Web Token)의 서명을 검증할 때 사용되며, 보통 OAuth 2.0 및 OpenID Connect(OIDC) 환경에서 활용된다.

  • 대부분의 OAuth 2.0 제공자는 JWKS를 자동으로 생성하고 공개 JWKS URL을 제공한다.

◼︎ 언제 사용되는가?

  • JWKS는 비대칭 암호화 기반의 JWT 검증 과정에서 사용된다.
  • 즉, OAuth 2.0 및 OpenID Connect 환경에서 클라이언트가 JWT의 서명을 검증할 때 필요하다.

예를 들어, 클라이언트가 Authentik(OAuth 제공자)에 로그인 시 Authentik은 비밀키로 서명한 JWT를 전달한다.
서버에서 이를 검증하기 위해서는 Authentik의 공개키로 JWT 서명을 decode 해야 한다.


공개키를 얻고 싶다면?

OAuth2 제공자가 알려준 JWKS URL에 요청을 보내면 된다.

// 요청에 대한 응답 예시
{
  "keys": [
    {
      "alg": "RS256",
      "kid": "83933fac5bbb7f7020fc3bdb6cd41f82",
      "kty": "RSA",
      "use": "sig",
      "n": "qqBcfJMYmiRsAmfMDYpnhz3khRJCOybPSrJbQ3qBNKN9-B8WHBQzXo4PLMDz7EFBMhDq53KhYizR0iPrrQV4q7Kv4HUgevUNQRVW3v...",
      "e": "AQAB",
      "x5c": ["MIIFUjCCAzqgAwIBAgIQdGqmemY7SZ+EN24+8NaMnTANBgkqhkiG9w0BAQsFADAd..."],
      "x5t": "ffC3Ro0WSrgYZ7tSFoPvLWulOPk",
      "x5t#S256": "8-ud021Q42R3d74z_JUojq7bpKqpqER_pPzLgCz6Qro"
    }
  ]
}
필드명설명
alg사용된 암호화 알고리즘 (RS256 = RSA SHA-256)
kid키 식별자(Key ID), JWT 헤더의 kid와 매칭됨
kty키 타입(RSA, EC 등), 여기서는 RSA
use키의 용도 (sig = 서명(Signature), enc = 암호화)
nRSA 공개 키의 모듈러스(Modulus)
eRSA 공개 키의 지수(Exponent) (보통 AQAB = 65537)
x5cX.509 인증서 체인 (Base64 인코딩)
x5tX.509 인증서의 SHA-1 Thumbprint
x5t#S256X.509 인증서의 SHA-256 Thumbprint
profile
백엔드 개발자

0개의 댓글