토큰(4)
-
토큰에 대한 고민
인증 및 인가를 할 때 선택지는 쿠키, 세션, 토큰 정도가 있다. 주로 토큰방식을 사용하며 JWT 를 사용한다. 왜 토큰을 사용할까? 토큰이 정말 안전할까? 등 나의 생각을 정리해보려고 한다. JWT 는 어떻게 구성이 되어 있을까? 점(.)을 기준으로 헤더.페이로드.시그니쳐 로 구분된다. 헤더에는 토큰의 유형 + 해싱 알고리즘이 들어있다. 페이로드는 토큰에서 사용할 정보(클레임)이 들어있다. 이 클레임은 json 객체이다. 클레임은 토큰 정보를 표현하기 위해 정해진 종류의 데이터이다. 물론 사용자가 정의해 비공개 클레임을 만들 수도 있다. 시그니쳐는 토큰을 검증하기 위한 것들이 들어간다. 헤더와 페이로드를 base64로 인코딩한 후 비밀키를 이용해 헤더에서 정의한 알고리즘으로 해싱해 다시 base64 로..
2024.04.22 -
세션 기반 인증 & 토큰 기반 인증
세션 기반 인증 사용자가 로그인 하면 서버는 사용자의 정보를 바탕으로 세션을 생성하고, 이 세션에 대한 고유한 식별자인 세션 ID 를 클라이언트에게 반환한다. 클라이언트는 이 세션 ID 를 쿠키에 저장하고, 이후 요청마다 이 쿠키를 포함하여 서버에 전송한다. 서버는 세션 ID 를 사용하여 해당 사용자의 세션을 조회하고 인증 상태를 판별한다. 서버 측에서 사용자의 세션 정보를 유지 관리해야 하므로 상태를 유지한다. (stateful) 세션 정보를 서버 메모리에 저장하면 여러 서버 간의 세션 정보 공유가 어려울 수 있어 확장성에 제약이 생길 수 있다. CSRF 와 같은 공격에 취약할 수 있다. 토큰 기반 인증 사용자가 로그인하면 서버는 사용자의 정보를 바탕으로 토큰을 생성하고 반환한다. 클라이언트는 이 토큰..
2023.08.21 -
3주차 [ WIL ]
이번주에 알게된 것 1. 쿠키와 세션 https://muyeon95.tistory.com/193 쿠키와 세션 [ TIL ] Problem 항상 쿠키와 세션에 대해 긴가 민가 했다. 그래서 쿠키와 세션에 대해 알아보았다. Try 쿠키와 세션에 대해서 블로그나 영상을 통해 개념을 찾아보았고, 그 개념에 예시를 들어보려고 시도 muyeon95.tistory.com 2. 토큰과 캐시 https://muyeon95.tistory.com/194 토큰과 캐시 [ TIL ] Problem 쿠키와 세션에 이어 이해할 수 토큰과 캐시 에 대해 이해해보자 Try 여러 블로그와 강의를 보고 예시를 들어서 정리해보았다. Solve token 토큰은 동물원으로 치자면 티켓이다. 이 토큰 티켓 muyeon95.tistory...
2023.07.02 -
토큰과 캐시 [ TIL ]
Problem 쿠키와 세션에 이어 이해할 수 토큰과 캐시 에 대해 이해해보자 Try 여러 블로그와 강의를 보고 예시를 들어서 정리해보았다. Solve token 토큰은 동물원으로 치자면 티켓이다. 이 토큰 티켓은 언뜻 보기에는 영어 소문자, 대문자, 숫자 등이 마구 섞여 있어서 토큰이 어떤 데이터를 갖고 있는지 어떤 의미인건지 알 수 없다. 동물원은 동물원만 알고있는 비밀키를 가지고 있다. 사용자의 정보를 비밀키를 통해서 랜덤한 문자열 같은 토큰을 발급할 수 있게된다. 이 토큰을 사용자가 갖고 있다가 (인증 요청의 응답 값으로 토큰을 받아서 보관한다.) 동물원에 전달하면 또 다시 이 토큰이 유효한지 토큰에 있는 데이터를 판별해서 다시 사용자를 식별할 수 있게 된다. 그러면 토큰을 사용자가 가지고 있으..
2023.06.27