일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 백엔드
- 프론트엔드
- JWT
- TS
- 리액트
- spring
- Authentication
- 웹개발자
- TypeScript
- JS
- 백엔드개발자
- 정보처리기사 실기
- It
- 타입스크립트
- 큐넷
- 정보처리기사
- React
- spring boot
- Redux
- JavaScript
- useState
- spring boot security
- 스프링부트
- 자바스크립트
- security
- Node.js
- Front-End
- frontend
- VUE
- 수제비
- Today
- Total
솔적솔적
Spring Boot Security - 인증과 인가 그리고 JWT에 대해서 본문
< 목표 >
- 인증, 인가란? 에 대한 개념알기
- JWT이란? 개념과 사용하는 이유 알기
로그인과 관련된 JWT,
JWT를 알기 전에 '인증'과 '인가'에 대한 개념정리를 명확히 하고 들어가야한다.
로그인을 하면 그 로그인한 상태가 유지되게 끔해야하는데 그럴 때 관련된 것이 이 '인증'과 '인가'이다.
| 인증이란?
영어로는 'Authentication'으로 간단하게 말해 '로그인',
'내가 여기 가입회원이다' , '내가 여기 특정서비스에 권한을 가질 수 있는 자다.'를 아이디와 패스워드을 통하여 보여주는 것을 말한다.
| 인가란?
영어로 'Authorization' , 위에 인증을 받은 사용자가 이 인증 후
서비스의 여러 기능을 이용 시 내가 카톡에 친구추가, 친구에게 답장, 친구의 회신, 좋아요 등을 할 때
다~ 나의 아이디, 비밀번호로 '인증한 계정으로만' 할 수 있는 활동들을 내가 그 서비스를 이용할 때 로그인이 되어있는 것을 보고 '그래, 좋아요 달기 허가, 목록보기 허가' 이렇게 해주는 것.
즉 로그인이 되어있는 상태에서 일어나는 일들이다.
| JWT란?
JSON 객체를 사용하여토근 자체에 정보들을 저장하고 있는 Json web Token
- JWT의 구성
Header, Payload, Signature 3개의 부분으로 구성되어져있다.
Signature을 해싱하기 위한 알고리즘 정보들이 담겨져있다.
Payload는 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용을 담고있다.
Signatuer은 토큰의 유효성 검증을 위한 문자열
- JWT의 장점?
- 중앙의 인증서버, 데이터 스토어에 대한 의존성 없기 때문에 시스템 수평 확장유리
- Base64 URL Safe Encoding을 이용하기 때문에 URL, Cookie, Header모두 사용가능하다.
- JWT 단점
- PayLoad의 정보가 많아지면 네트워크, 사용량 증가, 데이터 설계 고려 필요
- 토큰이 클라이언트에 저장, 서버에서 클라이언트의 토큰을 조작할 수 없음
출처: https://mattlee.tistory.com/62
참고 : 인프런 - Spring Boot JWT Tutorial
'Back-end > Spring Boot Security' 카테고리의 다른 글
Spring Boot Security - Authentication 객체가 가질 수 있는 2가지 타입 (0) | 2022.02.09 |
---|---|
Spring Boot Security - 구글 로그인,구글 회원 프로필 정보 받기 (0) | 2022.02.08 |
Spring Boot Security - 시큐리티 권한 처리 (0) | 2022.02.07 |
Spring Boot Security - 시큐리티 회원가입, 로그인 (0) | 2022.02.07 |
Spring Boot Security - 환경설정 & 시큐리티 설정 (0) | 2022.02.07 |