JWT

JWT는 JSON 웹 토큰을 나타냅니다. JSON 개체로 당사자 간에 정보를 안전하게 전송하는 데 사용되는 컴팩트하고 독립적인 토큰 형식입니다. JWT는 일반적으로 웹 애플리케이션 및 API에서 인증 및 권한 부여 목적으로 사용됩니다.

JWT는 헤더, 페이로드 및 서명의 세 부분으로 구성됩니다. 각 부분은 base64로 인코딩되고 점('.')으로 구분됩니다. 헤더에는 토큰 서명에 사용되는 알고리즘과 같은 토큰에 대한 정보가 포함되어 있습니다. 페이로드에는 엔터티(일반적으로 사용자) 및 추가 데이터에 대한 설명인 클레임이 포함됩니다. 서명은 지정된 알고리즘을 사용하여 인코딩된 헤더, 인코딩된 페이로드 및 비밀 키를 결합하여 생성됩니다.

JWT의 주요 기능은 다음과 같습니다.

1) 상태 비저장

JWT에는 토큰 자체에 필요한 모든 정보가 포함되어 있으므로 서버는 세션 저장소 또는 데이터베이스 조회에 의존하지 않고 요청을 인증하고 권한을 부여할 수 있습니다. 따라서 JWT는 상태 비저장 상태가 되며 확장 가능한 시스템에 적합합니다.

2)보안

JWT는 비밀 키 또는 공개/개인 키 쌍을 사용하여 디지털 서명할 수 있습니다. 이것은 토큰의 무결성을 보장하고 변조를 방지합니다. 서버는 동일한 비밀 또는 공개 키를 사용하여 서명을 다시 계산하여 토큰의 신뢰성을 확인할 수 있습니다.

3)이식성

JWT는 HTTP 헤더, URL 매개변수를 사용하거나 요청 본문 내에서 당사자 간에 쉽게 전송할 수 있습니다. 따라서 분산 시스템 및 API에 이상적입니다.

4)확장 가능

JWT의 페이로드에는 사용자에 대한 추가 정보를 제공하거나 애플리케이션별 속성을 정의하는 사용자 정의 클레임이 포함될 수 있습니다. 이러한 확장성을 통해 개발자는 토큰 내에 다양한 데이터를 포함할 수 있습니다.

JWT는 일반적으로 사용자가 로그인하고 JWT를 응답으로 받는 인증 시나리오에서 사용됩니다. 그런 다음 클라이언트는 보호된 리소스에 액세스하기 위한 후속 요청에 JWT를 포함합니다. 서버는 JWT의 유효성을 검사하고 토큰에 포함된 정보를 기반으로 액세스 권한을 부여하거나 거부합니다.

JWT는 토큰 가로채기 또는 변조를 방지하기 위해 보안 채널(예: HTTPS)을 통해 전송되어야 합니다. 또한 토큰 서명에 사용되는 비밀 또는 개인 키는 안전하게 보관하고 보호해야 합니다.

Last updated