개요
JWT (JSON Web Tokens), Refresh Token, 그리고 Access Token은 웹 애플리케이션 및 모바일 애플리케이션에서 인증 및 권한 부여에 주로 사용되는 개념입니다. 디지털 서명되어 있으므로, 내용이 변조되지 않았음을 검증할 수 있습니다. 각각의 용도와 특징에 대해 설명하겠습니다.
JWT (JSON Web Tokens)
JWT는 JSON 기반의 열린 표준 (RFC 7519)으로, 두 주체 간에 정보를 안전하게 전송하기 위한 간단한 방법입니다. JWT는 header, payload, 그리고 signature의 세 부분으로 구성됩니다.
Header: 토큰의 유형과 서명에 사용되는 알고리즘을 나타냄
Payload: 클레임을 포함하며, 이 클레임은 메타 데이터와 함께 발급된 추가정보(사용자 정보나 기타 데이터)를 포함할 수 있음
Signature: 이전 두 부분을 보안하기 위해 사용하며, Header, Payload, 그리고 '시크릿'을 사용하여 생성함
JWT는 주로 인증과 권한 부여에 사용됩니다. 서버는 사용자의 인증 후 JWT를 발행하며, 클라이언트는 이후의 요청에서 이 JWT를 포함하여 서버에 전송하게 됩니다.
Access Token
Access Token은 사용자가 시스템에 액세스 할 수 있게 해주는 토큰입니다. 주로, 사용자가 로그인하면 시스템에서 제공됩니다.
일반적으로 Access Token은 짧은 수명을 가집니다. 이는 만약 토큰이 노출되더라도 무한정 사용될 수 없게 하기 위함입니다.
많은 경우 Access Token은 JWT 형식으로 제공됩니다. 따라서 앞서 언급한 JWT의 특성을 그대로 갖게 됩니다.
Refresh Token
Refresh Token은 Access Token이 만료될 때 새로운 Access Token을 받기 위해 사용되는 토큰입니다.
Refresh Token은 일반적으로 Access Token보다 긴 수명을 가집니다.
사용자가 애플리케이션에서 로그아웃하거나 특정 기간 동안 활동이 없을 때 만료될 수 있습니다.
만약 Access Token이 만료되면, 클라이언트는 Refresh Token을 사용하여 새로운 Access Token을 요청할 수 있습니다. 이를 통해 사용자는 다시 로그인 할 필요 없이 연속된 경험을 유지할 수 있습니다.
요약
JWT (JSON Web Token)
정보를 안전하게 전송하기 위한 암호화된 문자열.
Header.Payload.Signature 형식.
Access Token
사용자가 시스템의 자원에 접근할 권한을 부여받는 짧은 수명의 토큰.
주로 JWT 형식으로 발급됨.
Refresh Token
Access Token이 만료된 후 새로운 Access Token을 발급받기 위한 긴 수명의 토큰.
안전한 저장이 중요.
사용자는 로그인 시 Access Token과 Refresh Token을 받게 되고, Access Token이 만료되면 Refresh Token으로 새로운 Access Token을 발급받을 수 있습니다.
즉, JWT는 안전하게 정보를 전송하기 위한 구조화된 토큰 형식입니다. Access Token과 Refresh Token은 인증 및 권한 부여에 주로 사용되며, Access Token은 짧은 수명을 가지고, Refresh Token은 그보다 긴 수명을 가지며 Access Token의 재발급에 사용됩니다.
'Server' 카테고리의 다른 글
토큰과 세션의 차이점 (0) | 2023.09.05 |
---|---|
JWT(Json Web Token)란? (0) | 2023.09.05 |
Server ) 세션 기반 인증과 토큰 기반 인증의 차이 (0) | 2023.09.05 |