Server 4

JWT, Refresh, Access Token에 대한 설명

개요 JWT (JSON Web Tokens), Refresh Token, 그리고 Access Token은 웹 애플리케이션 및 모바일 애플리케이션에서 인증 및 권한 부여에 주로 사용되는 개념입니다. 디지털 서명되어 있으므로, 내용이 변조되지 않았음을 검증할 수 있습니다. 각각의 용도와 특징에 대해 설명하겠습니다. JWT (JSON Web Tokens) JWT는 JSON 기반의 열린 표준 (RFC 7519)으로, 두 주체 간에 정보를 안전하게 전송하기 위한 간단한 방법입니다. JWT는 header, payload, 그리고 signature의 세 부분으로 구성됩니다. Header: 토큰의 유형과 서명에 사용되는 알고리즘을 나타냄 Payload: 클레임을 포함하며, 이 클레임은 메타 데이터와 함께 발급된 추가정..

Server 2023.09.05

토큰과 세션의 차이점

차이점 1. 사이즈 세션 < 토큰 세션을 사용시 주고받는 session id의 크기는 매우 작습니다. 반면 (JWT기준) 토큰은 같은 데이터를 담고 있어도 그에 비해 크기가 큽니다. 차이점 2. 안전성 세션 세션은 서버측에서 저장/관리하기 때문에 상대적으로 온전한 상태를 유지하기 유리합니다. 하지만 여전히 공격의 위험이 있기에 유효기간, HttpOnly, Secure 옵션 등을 주어 쿠키에 저장합니다. 토큰 반대로 토큰은 웹 브라우저측 (local storage, 혹은 쿠키 등)에 저장되기 때문에 공격에 노출될 가능성이 더 큽니다. 이런 경우를 대비해 토큰에는 민감한 정보를 담지 않습니다. 그리고 유효기간을 짧게 설정해 공격에 노출될 수 있는 시간을 최소화합니다. 하지만 짧은 주기로 토큰이 무효화되면 서..

Server 2023.09.05

JWT(Json Web Token)란?

현대 웹서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 이번에는 토큰 기반의 인증 시스템에서 주로 사용하는 JWT(Json Web Token)에 대해 알아보도록 하겠다. 1. JWT(Json Web Token)란? [ JWT 개념 ] JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 주로 회원 인증이나 정보 전달에 사용되는 JWT는 아래의 로직을 따라서 처리된다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 된다. static 변수에 저장되는 이유는..

Server 2023.09.05

Server ) 세션 기반 인증과 토큰 기반 인증의 차이

기존의 시스템에서는 서버 기반의 인증방식을 사용하였다. 하지만 시스템의 규모가 커짐에 따라 서버 기반의 인증 방식은 한계점을 보이기 시작하였고, 토큰 기반의 인증 방식이 등장하게 되었다. 현대 웹서비스에서 API를 이용한 웹서비스를 개발할 때, 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 이번에는 서버 기반의 인증 시스템과 토큰 기반의 인증 시스템의 차이점을 알아보고 토큰 기반 인증 시스템의 장점을 알아보도록 하겠다. 1. 서버(세션) 기반의 인증 시스템 [ 서버(세션) 기반 인증 시스템이란? ] 기존의 인증 시스템은 서버 기반의 인증 방식으로, 서버 측에서 사용자들의 정보를 기억하고 있어야 한다. 사용자들의 정보를 기억하기 위해서는 세션을 유지해야 하는데, 메모리나 디스크..

Server 2023.09.05