개인 과제 - 인증 서버 만들기

둥그냥·2021년 12월 16일
0

STOVE DEV CAMP

목록 보기
1/5

인증, 인가

JWT token 사용

JWT는 JSON web token의 약자입니다. URL-safe(URL로 이용할 수 있는 문자로만 구성된)의 JSON입니다.

Access Token만을 활용할 경우의 문제점

제목 그대로 만약 Refresh Token을 통한 재발급의 과정이 없다고 생각해보면, 구현은 쉽지만 보안이 취약해집니다. 만약 Access Token을 탈취당하게 되면, 탈취한 해커가 해당 Token으로 모든 인증과정을 진행할 수 있기 때문입니다. 따라서 Access Token의 유효기간을 짧게 설정하면서, 해당 Token의 유효기간이 만료되게 되면 재발급을 받는 형태로 인증을 구현하게 됩니다.

Senario

  1. 로그인을 시도합니다. 이때 유저의 ID와 Password를 서버 DB와 대조한 뒤, 올바른 유저라면 Access Token + Refresh Token을 발급해줍니다.

  2. 모든 요청(request)의 HeaderAccess Token을 넣어서 요청을 보냅니다. 서버는 요청을 처리하기 전 앞단에서 해당 토큰을 통한 인증을 먼저 확인하게 됩니다.

    1. Access Token을 통한 인증이 정상적으로 작동했다면, 요청된 자원을 클라이언트에게 반환해줍니다.
    2. Access Token을 통한 인증이 실패할 경우
      1. 만약 refresh Token의 유효기간이 남아있다면, 새로운 Access Token을 발급해줍니다.
      2. refresh Token의 유효기간이 남아있지 않다면, 새로 로그인을 시도해야 합니다.

0개의 댓글