Search
Duplicate

18. JWT, Refresh, Access Token에 대해서 설명해주세요.

Created
2024/01/17 00:54
Tags
유민아
김민선
JWT(JSON Web Token)은 웹에서 정보를 안전하게 전송하기 위한 토큰 형식 중 하나입니다. JWT는 헤더, 페이로드, 서명으로 이루어져 있습니다. 헤더에는 토큰의 타입과 해시 알고리즘 등이 포함되고, 페이로드에는 클레임(클라이언트 또는 서버 간에 주고받는 정보)이 들어가며, 서명은 토큰의 유효성을 검증하기 위한 부분입니다.
Access Token(액세스 토큰)은 사용자가 리소스에 접근할 때 사용되는 토큰입니다. 주로 OAuth 2.0 인증 프로토콜에서 사용되며, 클라이언트가 보호된 리소스에 접근할 때 서버에 의해 발급되고 사용자를 인증하는 역할을 합니다.
Refresh Token(리프레시 토큰)은 주로 OAuth 2.0에서 사용되며, Access Token의 만료 시간이 지나면 클라이언트가 새로운 Access Token을 얻을 수 있도록 해줍니다. 보통 Access Token과 함께 발급되며, 사용자의 장기간 인증을 지원하고 보안을 강화하는 데 사용됩니다. 클라이언트는 리프레시 토큰을 사용하여 새로운 Access Token을 얻을 수 있습니다.
액세스 토큰이 만료되면 리프레시 토큰을 사용하여 갱신하는 방식은 중간에 토큰이 유출되더라도 그 피해를 제한할 수 있습니다. 만료된 액세스 토큰은 무력화됩니다. 리프레시 토큰은 일반적으로 액세스 토큰보다 더 긴 수명을 가지지만, 그럼에도 유한한 기간 동안만 유효합니다. 따라서 토큰이 노출된 경우에도 공격자의 활동은 시간적으로 제한됩니다.
박준영
JWT는 JSON 객체를 사용하여 두 개체 사이에서 안전하게 정보를 전송하기 위한 컴팩트하고 자가수용적인 방식입니다. JWT는 토큰 기반 인증 시스템에서 주로 Access Token으로 사용됩니다. Access Token은 사용자가 서버에 대한 요청을 인증하기 위해 사용하는 토큰입니다. 이 토큰은 사용자의 세션을 나타내며, 주로 서버의 리소스에 접근할 수 있는 권한을 부여합니다.
로그인 인증시 JWT를 사용 할때, 유효기간이 짧은 Token을 발급하게되면 사용자 입장에서 자주 로그인을 해야하기 때문에 번거롭고 반대로 유효기간이 긴 Token을 발급하게되면 제 3자에게 토큰을 탈취당할 경우 보안에 취약하다는 약점이 있습니다.
그 점들을 보완하기 위해 Refresh Token 을 사용하게 되었습니다.
Refresh Token은 Access Token과 똑같은 JWT입니다. Access Token의 유효기간이 만료되었을 때, Refresh Token이 새로 발급해주는 열쇠가 됩니다.
김한신
각각의 토큰들은 사용자 신원 확인, 리소스에 안전하게 접근, 그리고 보안을 유지하는 데 목적을 두고 있습니다.
1. **JWT(토큰)**: 정보를 안전하게 전송하기 위한 토큰 형식입니다. 주로 사용자 인증에 활용되며, 클레임(claim)이라 불리는 정보들을 포함하고 있습니다. 토큰은 서버와 클라이언트 간에 전달되며, 안전한 통신을 지원합니다. 2. **액세스 토큰**: 액세스 토큰은 사용자가 리소스에 접근할 때 사용되는 키입니다. 주로 OAuth나 OpenID Connect와 같은 프로토콜에서 활용되며, 사용자의 인증 상태를 확인하고 인가된 작업을 수행합니다. 3. **리프레시 토큰**: 리프레시 토큰은 액세스 토큰을 갱신하기 위한 특별한 토큰입니다. 보통 액세스 토큰의 수명이 제한되어 있는 경우, 리프레시 토큰을 사용하여 새로운 액세스 토큰을 발급받을 수 있습니다. 이러한 분리된 구조는 보안 측면에서 장점이 있고, 각 토큰의 역할에 따라 적절한 제어와 갱신이 가능해집니다. 또한, 만약 한 종류의 토큰이 유출된다면 다른 토큰에 영향을 미치지 않도록 구성할 수 있습니다. 😊🚀
Plain Text
복사
각각의 토큰들은 사용자 신원 확인, 리소스에 안전하게 접근, 그리고 보안을 유지하는 데 목적을 두고 있습니다.
1. JWT(토큰): 정보를 안전하게 전송하기 위한 토큰 형식입니다. 주로 사용자 인증에 활용되며, 클레임(claim)이라 불리는 정보들을 포함하고 있습니다. 토큰은 서버와 클라이언트 간에 전달되며, 안전한 통신을 지원합니다. 2. 액세스 토큰: 액세스 토큰은 사용자가 리소스에 접근할 때 사용되는 키입니다. 주로 OAuth나 OpenID Connect와 같은 프로토콜에서 활용되며, 사용자의 인증 상태를 확인하고 인가된 작업을 수행합니다. 3. 리프레시 토큰: 리프레시 토큰은 액세스 토큰을 갱신하기 위한 특별한 토큰입니다. 보통 액세스 토큰의 수명이 제한되어 있는 경우, 리프레시 토큰을 사용하여 새로운 액세스 토큰을 발급받을 수 있습니다. 이러한 분리된 구조는 보안 측면에서 장점이 있고, 각 토큰의 역할에 따라 적절한 제어와 갱신이 가능해집니다. 또한, 만약 한 종류의 토큰이 유출된다면 다른 토큰에 영향을 미치지 않도록 구성할 수 있습니다.