GiYeong

JWT(JSON Web Token) 본문

CS/보안

JWT(JSON Web Token)

gy2710 2022. 8. 7. 17:19

JWT

JWT는 유저를 인증하고 식별하기 위한 토큰(Token)기반의 인증 방식이다.

토큰은 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다.

토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함되어 있기 때문에, 데이터가 많아지면 토큰이 커질 수 있으며, 토큰이 한 번 발급된 이후 사용자의 정보를 바꾸더라도 토큰을 재발급하지 않는 이상 반영되지 않는다.

 

JWT를 통해 RESTful과 같은 무상태(Stateless)인 환경에서 사용자 데이터를 주고받을 수 있게 된다.

즉, JWT와 같은 토큰을 클라이언트에 저장하고, 요청 시 단순히 HTTP 헤더에 토큰을 첨부하는 것으로 단순하게 데이터를 요청하고 응답을 받을 수 있다.

 

동작 순서

1. 클라이언트 사용자가 아이디, 패스워드를 통해 웹 서비스 인증

2. 서버에서 서명된(Siged) JWT를 발급하여 클라이언트에 응답으로 돌려줌

3. 클라이언트가 서버에 데이터를 요청할 때, HTTP Header에 JWT 토큰을 첨부

4. 서버가 클라이언트로부터 받은 JWT를 검증

'CS > 보안' 카테고리의 다른 글

XSS / CSRF  (0) 2022.08.10
SQL Injection(SQL 삽입 공격)  (0) 2022.08.10
JWT, OAuth 차이점  (0) 2022.08.10
단방향 암호화  (0) 2022.08.07
비대칭키(공개키) / 대칭키 암호화 (양방향 암호화)  (0) 2022.08.07
Comments