반응형
JWT (JSON Web ToKen) 이란 ?
자가수용 방식으로 정보를 더욱 안정성있게 전달해주고 사용자에 대한 속성을 저장한다. 여기서 자가 수용적(Self-Contained)란 토큰에 대한 정보, 전달할려는 정보, 토큰 검증이 되었다는 증명해주는 서명을 포함하고 있습니다. 그래서 주로 JWT 토큰은 유저가 로그인을 하게되면 서버는 유저의 정보에 기반한 토큰을 발급하여 유저에게 전달해주고 토큰이 유효하고 인증이 되었는지 검증을 하는 로그인에 많이 사용됩니다.
JWT (JSON Web ToKen) 구조
① 헤더 (Header)
토큰의 타입을 지정한다.
해싱 알고리즘을 지정하며 주로 RSA가 사용된다.
② 정보(Payload)
토큰에 담을 정보가 들어가 있습니다.
여기서 담는 정보의 한 조각을 클레임(Claim)이라고 하고 이러한 클레임이 Key/Value 형태로 이루어져있습니다.
③ 서명(Signature)
토큰을 인코딩 또는 유효성 검증을 할때 사용하는 암호화 코드이다.
⭐ JWT (JSON Web ToKen) 장점
1. 별도의 인증 저장소가 필요 없다.
2. 쿠키를 전달하지 않아도 되기 때문에 쿠키를 사용함에 있어서 발생하는 취약점이 사라진다.
3. 트래픽 대한 부담이 낮다.
4. REST 서비스로 제공이 가능하다.
5. 독립적이다.
⭐ JWT (JSON Web ToKen) 단점
1 .토큰 자체에 정보를 담고있기 때문에 위험도도 증가한다.
2. 3종류의 클레임을 저장하기 때문에 정보가 많으면 많을수록 네트워크 부하가 심해진다.
3. 중간에 Payload를 탈취하여 디코딩하게 된다면 데이터를 볼 수 있기 때문에 JWE로 암호화 하거나
중요한 데이터를 넣지 않아야 한다.
4. 상태를 저장하지 않기때문에 한번 만들어지게 된다면 제어가 불가능하다.
그래서 토큰 만료시간을 꼭 삽입해야만 한다.
JWT (JSON Web ToKen) 프로젝트 구조
반응형
'Back-End > Java' 카테고리의 다른 글
[Spring] 스프링 Security 로그인 예제 (0) | 2021.06.24 |
---|---|
[Spring] 스프링 AOP 개념과 특징을 알아보자 (0) | 2021.06.24 |
[Spring] 스프링 Security 사용이유와 설정 방법을 알아보자 (0) | 2021.06.23 |
[Spring] Legacy Project 첨부파일 구현하기 (1) | 2021.06.15 |
[Spring] Legacy Project 게시판 글쓰기 구현하기 (0) | 2021.06.15 |