https://www.okta.com/identity-101/what-is-token-based-authentication/
해석 및 정리
JWT
JWT는 세 가지 중요한 요소를 가지고 있다
- 헤더(Header)
- 특정 공간에 포함된 토큰 유형 및 서명 알고리즘을 정의
- 페이로드(Payload)
- 특정 섹션에서 토큰 발급자, 토큰 만료 등을 정의
- 서명(Signature)
- 보안 서명을 사용하여 전송 중에 메시지가 변경되지 않았는지 확인
JWT의 장단점
장점
-
사이즈
- 코드 언어의 토큰이 작다
- 두 엔티티 간에 전달이 매우 빠르다
-
용이성
- 토큰은 거의 모든 곳에서 생성할 수 있다
- 서버에서 확인할 필요가 없다
-
제어
- 다른 사용자가 액세스할 수 있는 항목, 해당 권한이 지속되는 기간 및 접속하는 동안 해당 사용자가 수행할 수 있는 작업을 지정할 수 있다
단점
- 단일 키
- JWT는 단일 키에 의존한다
- 단일 키가 손상되면 전체 시스템이 위험해진다
- 복잡성
- JWT는 어렵다
- 개발자가 암호화 서명 알고리즘에 대한 충분한 지식을 가지고 있지 않으 면 실수로 시스템을 위험에 빠지게 할 수도 있다
- 제한성
- 모든 클라이언트에 메시지를 푸시할 수 없다
- 서버 측에서 클라이언트를 관리할 수 없다
인증토큰을 사용해야 하는 이유
권한 부여 토큰은 다음을 수행하는 시스템 관리자에게 유용하다.
-
임시 액세스 권한을 부여해야 한다
- 사용자 기반은 날짜, 시간 또는 특수 이벤트에 따라 변동한다.
- 액세스 권한을 반복적으로 부여하고 취소하는 것은 많은 시간과 힘이 소비된다.
-
세분화된 액세스가 필요하다
- 서버는 사용자 등록 정보가 아닌 특정 문서 등록 정보에 따라 접근 권한을 부여한다.
- 비밀번호는 세부 정보를 조정할 수 없다.
Todo
이론적인 부분들은 정리가 되었고 이제 구현하는 방법을 공부하여 업로드 해야함!
참고
https://www.okta.com/identity-101/what-is-token-based-authentication/