Authentication - 인증 : 유저의 신원을 인증하는 과정
Authorization - 인가 : Authentication을 통해 인증된 사용자의 접근 권한을 확인하는 과정
JWT Token 발급과 인증방식
- 클라이언트에 사용자가 로그인
- 서버는 secret key를 사용해 JWT Token 생성 후 JWT Token 전달
- 1에서 로그인한 후에는 서버에 API를 요청할 떄마다 헤더에 JWT Token을 넣어서 보냄
- 서버는 API의 헤더를 확인하여 Authentication-Authorization 진행
- 그에 따라 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 |