Apidog

올인원 협업 API 개발 플랫폼

API 설계

API 문서

API 디버깅

API 모킹

API 자동화 테스트

JWT는 무엇이며 어떻게 작동하나요?

JSON 웹 토큰(JWT)은 두 당사자 간에 전송될 주장을 나타내는 간결하고 URL 안전한 수단입니다. 이러한 주장은 종종 정보의 무결성과 진위성을 보장하는 데 사용됩니다.

Young-jae

Young-jae

Updated on December 20, 2024

JSON 웹 토큰(JWT)은 두 당사자 간에 전송될 주장을 나타내기 위한 간결하고 URL 안전한 수단입니다. 이러한 주장은 종종 정보의 무결성과 진정성을 보장하는 데 사용됩니다.

이 기사에서는 JWT가 작동하는 방식을 탐구합니다. 우리는 JWT의 구조를 살펴보며, 이는 세 개의 인코딩되고 디지털 서명된 부분으로 구성됩니다. 그 후에 JWT의 일반적인 사용 사례를 논의하고 사용하는 것의 몇 가지 이점을 검토할 것입니다.

JWT의 구조(예제 포함)

JSON 웹 토큰(JWT)은 점으로 구분된 세 부분으로 구성됩니다: 헤더, 페이로드, 서명. 전체 구조는 다음과 같습니다:

xxxxxxxxxx.yyyyyyyyyy.zzzzzzzzzz

헤더:

  • 헤더는 일반적으로 두 부분으로 구성됩니다: 토큰의 유형인 JWT와 사용되는 서명 알고리즘(예: HMAC SHA256 또는 RSA)입니다.
  • 예제 헤더(베이스64 인코딩): eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9

페이로드:

  • 페이로드는 주장을 포함합니다. 주장은 개체(일반적으로 사용자)에 대한 진술 및 추가 데이터를 포함합니다.
  • 주장은 등록된 주장, 공개 주장 및 비공개 세 가지 유형이 있습니다.
  • 예제 페이로드(베이스64 인코딩): eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ

서명:

  • 서명 부분을 만들기 위해서는 인코딩된 헤더, 인코딩된 페이로드, 비밀, 헤더에 지정된 알고리즘을 가져와서 서명해야 합니다.
  • 서명은 JWT의 발신자가 주장하는 사람과 같다는 것을 확인하고 메시지가 전송 도중 변경되지 않았음을 보장하는 데 사용됩니다.
  • 예제 서명: HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

모두 합치면:

헤더: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
페이로드: eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
서명: HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

인코딩된 JWT:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwia

JWT 사용의 이점:

JWT는 인코딩되고 서명된 JSON 객체를 포함하여, 서버의 상태 유지 세션에 의존하지 않고 무결성과 진정성을 보장합니다.

JWT를 유용하게 만드는 주요 이점은 다음과 같습니다:

  • 공간 효율성을 위한 URL 안전 JSON 인코딩으로 인한 간결한 크기
  • 과도한 데이터베이스 쿼리를 피하기 위해 필요한 모든 사용자 정보를 포함하는 자급자족
  • 변조 방지 보안과 진정성 확인을 위한 디지털 서명
  • 서버 측 세션을 제거하여 확장성을 향상시키는 무상태 특성
  • 대부분의 언어에서 사용할 수 있는 JSON 파서와의 범용 상호 운용성
  • 기존 프레임워크를 파괴하지 않고 사용자 정의 데이터 필드를 통한 확장 가능성

JWT vs OAuth: JWT와 OAuth의 차이

JWT (JSON 웹 토큰)과 OAuth는 관련이 있지만 웹 개발의 인증 및 권한 부여 맥락에서 서로 다른 목적을 수행합니다. JWT와 OAuth의 간단한 비교는 다음과 같습니다:

JWT (JSON 웹 토큰):

  1. 목적: JWT는 당사자 간에 정보를 안전하게 전송하는 간결하고 자급자족 방안입니다. 일반적으로 인증 및 정보 교환에 사용됩니다.
  2. 내용: JWT는 개체(일반적으로 사용자)에 대한 주장을 포함하며, 사용자 인증에 자주 사용됩니다. 주장은 사용자 ID, 역할, 권한 및 기타 관련 정보를 포함할 수 있습니다. JWT는 무상태 인증 시스템을 생성하는 데 자주 사용됩니다.
  3. 사용: JWT는 일반적으로 HTTP 요청에서 요청 헤더의 일부로 전송됩니다. 그것들은 사용자의 신원과 권한을 나타내는 데 사용됩니다.

OAuth (개방형 권한 부여):

  1. 목적: OAuth 는 권한 부여 프레임워크로, 제3자 애플리케이션이 사용자의 자원에 접근할 수 있도록 하여 사용자의 자격 증명을 노출하지 않도록 합니다. OAuth는 인증을 위한 것이 아니라 권한 위임을 위한 것입니다.
  2. 역할: OAuth는 자원 소유자, 클라이언트, 권한 부여 서버 및 자원 서버와 같은 역할을 정의합니다. 이를 통해 사용자가 자격 증명을 공유하지 않고도 다른 애플리케이션에 자원(예: 사진, 연락처)에 대한 접근을 부여할 수 있는 시나리오를 가능하게 합니다.
  3. 부여 유형: OAuth는 권한 부여 과정을 어떻게 수행해야 하는지를 지정하기 위해 부여 유형(권한 부여 코드, 암시적, 클라이언트 자격 증명, 비밀번호 등)을 도입합니다.
  4. 토큰: OAuth는 접근 토큰과 갱신 토큰의 사용을 포함합니다. 접근 토큰은 보호된 자원에 접근하는 데 사용되며, 갱신 토큰은 새로운 접근 토큰을 얻는 데 사용할 수 있습니다.

주요 차이점:

  • 목적: JWT는 주로 인증 및 정보 교환에 사용되는 반면, OAuth는 권한 부여를 위한 프레임워크입니다.
  • 내용: JWT는 사용자에 대한 주장을 포함하는 반면, OAuth는 역할과 권한을 정의하고 자원에 대한 접근을 관리하는 데 중점을 둡니다.
  • 역할: JWT는 종종 사용자의 신원을 나타내는 데 사용되며, OAuth는 자원 소유자, 클라이언트, 권한 부여 서버 및 자원 서버와 같은 역할이 포함됩니다.
  • 토큰: JWT는 인증을 위한 유형의 토큰인 반면, OAuth는 권한 관리를 위한 접근 토큰과 갱신 토큰을 도입합니다.

JWT는 어떻게 작동합니까?

JSON 웹 토큰(JWT)은 사용자의 신원을 확인하는 안전하고 효율적인 방법을 제공하여 인증에서 중요한 역할을 합니다. 이 과정은 일반적으로 다음 단계를 포함합니다:

  1. 사용자 인증: 사용자는 사용자 이름과 비밀번호 또는 Google이나 Facebook과 같은 외부 제공자를 통해 로그인합니다. 인증 서버는 자격 증명을 검증하고 사용자의 신원을 인증하는 JSON 웹 토큰(JWT)을 발급합니다.
  2. JWT 생성: ID 제공자(IdP)는 JWT를 생성하고, 이를 비밀 소금 또는 개인 키로 서명합니다. 이 JWT는 사용자 ID, 역할, 만료 시간과 같은 필수 사용자 정보를 캡슐화합니다.
  3. JWT 사용: 사용자의 클라이언트는 인증 중에 얻은 JWT를 안전하게 저장합니다. 보호된 자원에 접근할 때 클라이언트는 HTTP 인증 헤더에 JWT를 포함합니다.
  4. 토큰 검증: 자원 서버는 제공된 비밀 소금 또는 공개 키를 사용하여 JWT의 진위성을 디코딩하고 검증합니다. 이 과정은 토큰의 무결성과 출처를 보장합니다.

Apidog의 JWT

Apidog는 JSON 웹 토큰(JWT)을 관리하는 데 뛰어난 사용자 친화적인 API 개발 및 테스트 도구입니다. 직관적인 인터페이스를 통해 Apidog는 토큰 생성, 동적 관리 및 API 요청에 매끄럽게 포함시키는 과정을 단순화합니다.

JWT

이 도구는 API 개발의 JWT 관련 부분을 간소화하여 개발자들이 효율적인 테스트 및 통합에 집중할 수 있도록 합니다.

버튼
2025년 최고의 API 모니터링 도구 (무료 및 유료 서비스)관점

2025년 최고의 API 모니터링 도구 (무료 및 유료 서비스)

이 디지털 경로는 서로 다른 소프트웨어 시스템 간의 상호작용을 촉진하여 대화하고 협력하며 우리가 매일 의지하는 매끄러운 디지털 경험을 공동으로 창출할 수 있게 합니다.

Young-jae

December 18, 2024

최고의 스톱라이트 스튜디오 대안관점

최고의 스톱라이트 스튜디오 대안

Stoplight Studio의 여러 대안을 알아보세요. 이 추천 목록의 옵션들은 모두 시도해 볼 가치가 있습니다!

Young-jae

December 18, 2024

2025년을 위한 7가지 우수한 API 문서 예시관점

2025년을 위한 7가지 우수한 API 문서 예시

좋은 문서는 학습 곡선을 크게 완화하고 개발자 경험을 향상시킬 수 있습니다. 오늘은 성공적인 기업들의 독특한 접근 방식과 모범 사례를 보여주는 8가지 주목할 만한 API 문서 사례를 살펴보겠습니다.

Young-jae

December 18, 2024