JWT 디코더가 보여주는 항목
A JSON Web Token, 또는 JWT는 인증, 권한 부여, API 세션 및 신원 워크플로에서 일반적으로 사용되는 컴팩트한 토큰 형식입니다. JWT는 일반적으로 점으로 구분된 세 부분—헤더, 페이로드, 서명—으로 구성됩니다. 헤더와 페이로드는 base64url로 인코딩된 JSON이므로 비밀키 없이도 디코딩하고 읽을 수 있습니다.
이 JWT 디코더는 검사에 중점을 둡니다. 헤더와 페이로드를 포맷하고, 일반적인 클레임을 추출하며, 원시 세그먼트를 보여주고, iat, nbf및 exp이는 로그인 흐름, API 호출, 테스트 환경, OAuth 통합 또는 토큰 수명 문제를 디버깅할 때 유용합니다.
- 헤더에서 토큰 알고리즘과 타입을 읽습니다.
- 발행자(iss), 주체(sub), 수신자(aud) 및 사용자 정의 페이로드 클레임을 검사합니다.
- NumericDate 클레임을 사람이 읽을 수 있는 날짜로 변환합니다.
- 디코딩된 헤더, 디코딩된 페이로드 또는 원시 토큰 세그먼트를 복사합니다.
디코딩은 검증이 아닙니다
JWT를 디코딩하면 토큰에 쓰여 있는 내용을 알 수 있습니다. 그러나 누가 토큰을 만들었는지, 페이로드가 변경되었는지, 서명이 일치하는지, 또는 애플리케이션이 이를 수락해야 하는지 증명하지는 않습니다. 서명 검증에는 올바른 비밀키, 공개키 또는 JWKS 설정이 필요하며 애플리케이션이 기대하는 알고리즘과 일치해야 합니다.
서명 부분은 헤더와 페이로드와 다릅니다. 그것은 인코딩된 헤더와 페이로드에 대한 암호화 값이며 디코딩할 또 다른 JSON 객체가 아닙니다. 이 페이지는 서명이 존재할 경우 원시 세그먼트 출력에 서명을 표시하지만, 서명 키를 요구하거나 그 값을 검증하지는 않습니다.
이 페이지를 권한으로 보지 말고 검사 도구로 간주하세요. 디코딩된 토큰은 여전히 가짜이거나 만료되었거나 서명되지 않았거나 예상치 못한 키로 서명되었거나 발행 서비스에서 거부될 수 있습니다.
일반적인 JWT 클레임
| Claim | Meaning | 일반적 사용 |
|---|---|---|
iss | Issuer | 토큰을 발행한 서비스 또는 신원 제공자입니다. |
sub | Subject | 토큰이 대상하는 사용자, 계정, 클라이언트 또는 엔터티입니다. |
aud | Audience | 토큰을 받아야 하는 API, 앱 또는 서비스입니다. |
iat | 발행 시각 | 토큰이 생성된 시점입니다. |
nbf | 유효 시작 시간(예정) | 토큰은 이 시간 이전에는 수락되어서는 안 됩니다. |
exp | 만료 시각 | 토큰은 이 시간 이후에는 수락되어서는 안 됩니다. |
안전한 디버깅 습관
- 가능하면 운영 사용자 토큰 대신 테스트 토큰을 사용하세요.
- 서명 비밀, 개인 키 또는 API 자격증명을 디코더에 붙여넣지 마세요.
- 알고리즘이 애플리케이션에서 예상하는 것인지 확인하세요.
- Compare
issandaud디버깅 중인 서비스와 iss 및 aud를 비교하세요. - 만료 문제를 디버깅할 때 브라우저 시간과 서버 시간이 다를 수 있음을 기억하세요.
관련 로컬 도구
- 사용 Base64 인코더 디코더 일반적인 base64 문자열을 검사해야 할 때 사용하세요. JWT는 base64url을 사용하므로 전체 토큰을 검사할 때 이 JWT 디코더가 더 안전한 선택입니다.
- 사용 JSON 정리기 토큰 컨텍스트 외부에서 복사한 페이로드 객체를 포맷하려는 경우에 사용하세요.
- 사용 Unix 타임스탬프 변환기 NumericDate 값(iat, nbf, exp 등)과 같은 전용 타임스탬프 확인이 필요할 때 사용하세요.
iat,nbf또는exp.
자주 묻는 질문
이 JWT 디코더는 서명을 검증하나요?
아니요. 헤더와 페이로드를 디코딩하여 검사할 수 있게 해주지만 서명을 검증하거나 토큰이 신뢰할 수 있음을 증명하지는 않습니다. 검증하려면 발행자의 비밀키, 공개키 또는 JWKS 설정이 필요합니다. 서명은 읽을 수 있는 클레임 데이터가 아닌 암호화된 값이므로 디코딩된 JSON 패널로 표시되지 않으며, 이 도구는 원시 세그먼트 출력에서만 서명을 보여줍니다.
누구나 JWT를 디코딩할 수 있나요?
예, 헤더와 페이로드는 인코딩되어 있을 뿐 암호화되어 있지 않습니다(시스템에서 별도의 암호화된 토큰 형식을 사용하지 않는 한). JWT 페이로드에 비밀을 넣지 마세요.
만료된 JWT는 무엇을 의미하나요?
만약 `exp` exp 클레임이 과거에 있다면 서버는 일반적으로 토큰을 거부해야 합니다. 이 페이지는 타임스탬프를 보여줄 수 있지만 서버가 최종 권한입니다.
도구가 Bearer 접두사를 허용하는 이유는 무엇인가요?
개발자들은 종종 Authorization: Bearer ... 헤더에서 토큰을 복사합니다. Authorization: Bearer ... 도구는 Authorization 접두사에서 토큰 본문을 디코딩하기 전에 접두사를 제거합니다.