·4분 읽기

맥용 JWT 디코더 — 붙여넣고 바로 확인

jwt.io에 JWT를 붙여넣어 클레임을 읽는 방식은 유효한 토큰을 제3자 웹사이트로 그대로 전송했다는 사실을 깨닫기 전까지만 통합니다.

요청 헤더나 로그 파일에서 JWT 하나를 가져옵니다. 점으로 구분된 길고 사람 눈에는 아무 의미 없는 문자열입니다. 만료 클레임을 확인하거나, 발급자를 검증하거나, 어떤 스코프가 들어 있는지 봐야 합니다. 그래서 jwt.io를 열고 토큰을 붙여넣은 뒤 오른쪽 창에서 디코딩된 페이로드를 읽습니다.

이 워크플로에는 문제가 있습니다: 방금 살아 있는 인증 토큰을 자신이 관리하지 않는 웹사이트로 네트워크를 통해 전송한 것입니다. JWT 페이로드에는 사용자 ID, 이메일 주소, 역할, 권한 정보가 담겨 있는 경우가 많습니다. 토큰 자체가 여전히 유효할 수도 있습니다. jwt.io가 신뢰할 만한 사이트라 해도, 회사의 보안 정책은 이를 허용하지 않을 수 있습니다.

JWT가 실제로 담고 있는 것

JSON 웹 토큰은 점으로 구분된 세 부분으로 이루어져 있습니다: 헤더(알고리즘과 타입), 페이로드(만료 시간, 발급자, 주체, 커스텀 데이터 등 클레임), 그리고 서명입니다. 헤더와 페이로드는 그저 Base64url로 인코딩된 JSON일 뿐입니다. 이를 읽는 데 서버나 특별한 라이브러리가 필요한 것이 아니라 Base64 디코더와 JSON 포맷터만 있으면 됩니다. 하지만 매번 터미널에서 수동으로 이 작업을 하는 것은 번거롭습니다.

맥에서 로컬로 JWT 디코딩하기

Bellows는 토큰을 세 부분으로 분리하고 디코딩된 헤더와 페이로드를 포맷된 JSON으로 보여주는 전용 JWT 디코더를 포함합니다. 토큰을 붙여넣으면 클레임이 바로 보입니다. 네트워크 요청도, 제3자 서버도, 살아 있는 토큰이 유출될 위험도 없습니다.

Bellows JWT decoder showing decoded header and payload on macOS

클립보드 인식

브라우저 개발자 도구, 로그 파일, 또는 Slack 메시지에서 JWT를 복사합니다. Bellows를 열면 클립보드에서 토큰 형식을 감지해 즉시 JWT 디코더를 제안합니다. 디코딩된 페이로드가 한 단계 만에 나타납니다.

만료 여부를 한눈에 확인

JWT를 디코딩하는 가장 흔한 이유는 만료 여부를 확인하기 위해서입니다. exp 클레임은 유닉스 타임스탬프여서 기계에게는 쉽지만 사람에게는 아무 의미가 없습니다. 디코딩된 페이로드를 보면 iss, sub, aud 같은 다른 클레임과 함께 만료 시간을 머릿속으로 타임스탬프를 변환하지 않고도 빠르게 읽을 수 있습니다.

더 큰 도구 모음의 일부

JWT 디코딩은 종종 관련 작업으로 이어집니다: 클레임 안에 있는 Base64 값을 디코딩하거나, 문자열을 해싱해서 지문과 비교하거나, 페이로드에 저장된 리다이렉트 URI를 URL 디코딩하는 일 등입니다. 같은 앱 안에 41가지 도구가 있으면 이런 후속 작업을 위해 다른 유틸리티로 전환할 필요가 없습니다.

Mac App Store에서 Bellows 받기

다음 기사

Bellows

41 developer tools in one native Mac app — JSON, JWT, Base64, hashes, and more.

Get Bellows on the Mac App Store