IT 공부

토큰 기반 로그인 인증 방법 (JWT) 란?

boobin 2024. 6. 24. 16:29

Authentication - 인증 : 유저의 신원을 인증하는 과정

Authorization - 인가 : Authentication을 통해 인증된 사용자의 접근 권한을 확인하는 과정

 

JWT Token 발급과 인증방식

https://documentation.softwareag.com/webmethods/compendiums/v10-11/C_API_Management/api-mgmt-comp/co-jwt_usecase_workflow.html

  1. 클라이언트에 사용자가 로그인
  2. 서버는 secret key를 사용해 JWT Token 생성 후 JWT Token 전달 
  3. 1에서 로그인한 후에는 서버에 API를 요청할 떄마다 헤더에 JWT Token을 넣어서 보냄
  4. 서버는 API의 헤더를 확인하여 Authentication-Authorization 진행
  5. 그에 따라 API 응답

 

JWT 구조: (header).(payload).(signature)

Header alg Signature에서 사용하는 알고리즘 
typ 토큰 타입
Payload sub subject : 토큰 제목
aud audience  : 토큰 대상자
iat issued at : 토큰이 발급된 시각
exp expired : 토큰이 만료될 시각
Signature - 헤더와 페이로드의 문자열을 합친 후에, 헤더에서 선언한 알고리즘과 key를 이용해 암호한 값
- Base64url로 인코딩 되어있음
- 서명이자 인증용이다

Note:

  • JWT Token을 보내는 방법: response로 보내기 & cookie로 보내기
  • JWT Token을 저장하는 방법: Local Storage & Cookie 

 

Access Token & Refresh Token

로그인 요청을 받은 서버에서 검증 과정을 거쳐 해당 유저가 존재하면 Access Token과 Refresh Token을 발급한다.

여기서 클라이언트는 Access Token을 헤더에 포함하여 API를 요청한다.

Access Token

  • 인증된 사용자가 특정 리소스에 접근할 때 사용되는 토큰
  • 유효기간이 있고 만료 시 Refresh Token을 사용하여 새로운 Access Token을 받음

Refresh Token

  • Access Token의 갱신을 위한 Token
  • 사용자가 지속적으로 인증 상태를 유지할 수 있도록 함

 

'IT 공부' 카테고리의 다른 글

DNS와 SSL 인증서  (0) 2024.07.19
Load Balancing와 HAProxy란?  (0) 2024.06.26
쿠키와 세션에 대해 알아보자  (0) 2024.06.20