99클럽 31일차 TIL: 토큰 인증

2024. 5. 4. 15:46개발 공부

728x90
반응형

#1. 오늘의 학습 키워드

토큰 인증 에 대해

  • JWT 와 OAuth, 그리고 Basic 인증에 대해 알아보았다.
    • JWT
      • https://second-brain.tistory.com/46
      • 처음 로그인 성공 후 인증 정보가 담긴 Json 객체를 암호화한 JWT로 클라이언트가 서버에 인가된 요청을 보내는 방식
    • OAuth
      • https://second-brain.tistory.com/47
      • 사용하고자하는 서버로부터 직접 접근 권한을 받는 것이 아닌 서드파티 어플리케이션으로부터 권한을 부여받아서 서비스를 이용하는 방식
    • Basic 인증
    • 이번엔 토큰 인증 에 대해 알아보자.

#2. 공부한 내용

1. 토큰 인증

- 사용자가 자신의 신분을 확인하고 고유한 엑세스 토큰을 받는 프로토콜
  • 이미 앞서 알아보았던 JWT 도 토큰 인증 방식에 속한다.
    • 토큰 인증 방식은 JWT 를 비롯하여 다양한 토큰 종류가 있다.
  • 사용자는 토큰 유효기간 동안 해당 페이지에 대해 다시 자격 증명을 제공할 필요 없이, 해당 서비스를 이용할 수 있다.
  • 토큰은 아래와 같은 경우에서 무효화된다
    • 사용자 로그아웃
    • 앱 종료
    • 유효기간 지났을 때.
  • 기존 ID, PW 방식의 Basic 방식에는 사용자가 비밀번호를 매번 기억해야하고, 기억을 못했을 때 인증을 하지 못한다는 단점이 있다.
    • 또한 여러 다른 서버에서, 동일한 사용자는 동일한 비밀번호를 사용하곤 하는데, 이는 하나의 서버가 보안적으로 취약할 때, 다른 서버에서도 해당 사용자의 계정은 보안에 동일하게 취약해진다.
    • 비밀번호 변경을 의무적으로 실행시켜도, 대부분 사용자는 문자나 숫자 하나씩만 바꾸곤 한다.
  • 토큰 인증 방식에서는 두 번째 보안 계층을 제공하여, 도용 침투가 더 어렵고, 세션에 대한 기록은 서버에서 저장하지 않기에 서버 공간 차지를 하지 않는다.

1) 인증 토큰의 유형

  1. 연결형
    • 물리적 장치를 통해 시스템에 연결하여 엑세스를 허용 받는다.
    • 보통 USB 등으로 시스템에 로그인 하는 방식은 해당 방식에 속한다.
  2. 비접촉형
    • 디바이스와 서버가 따로 연결을 하지 않고, 물리적 거리만 충족시켜준다.
    • ex) Microsoft 의 매직링
  3. 분리형
    • 거리와 상관 없이 서버와 통신
    • 휴대폰으로 인증을 하는 것이 해당 케이스

2) 인증 절차

  • 요청
    • 사용자가 자격 증명을 통해 이용하고자하는 서비스에 대한 엑세스를 요청
  • 확인
    • 서버가 해당 사용자의 자격 증명을 확인
  • 토큰
    • 엑세스가 인가된 경우, 서버가 사용자의 인증 디바이스와 통신을 한다.
    • 확인이 완료되면 서버가 토큰을 발급하여 사용자에게 전달
  • 저장
    • 해당 토큰은 클라이언트 측에서 저장하여, 토큰이 만료되기 전까지 해당 서비스를 이용할 때 해당 토큰을 http 헤더에 넣어서 전송


#3. 오늘의 회고

  • 정리:
    • 토큰 인증은 사용자의 인증을 위해 엑세스 토큰을 사용하는 인증 방식이다.
    • JWT의 장점처럼 아래와 같은 장점을 얻는다.
      • 보안성
        • 사용자의 인증 정보 자체가 http 요청 헤더에 포함되지 않고, 토큰이 포함된다.
      • 확장성
        • 서버가 따로 세션을 유지할 필요가 없으며, 토큰은 클라이언트에서 저장한다.
        • 서버의 부하를 줄일 수 있다.
      • 유연성
        • 토큰 인증 방식은 다양한 플랫폼 및 클라이언트에서 사용할 수 있다.
        • 웹, 모바일 앱, MSA 등등
      • 엑세스 제어
        • 토큰 방식으로 유효기간, 권한 범위 등 설정이 자유롭다.
        • 이를 통해 사용자 엑세스에 대한 세밀한 제어가 가능하다.
728x90
반응형

'개발 공부' 카테고리의 다른 글

99클럽 33일차 TIL: 클라이언트 사이드 캐시  (1) 2024.05.06
99클럽 32일차 TIL: CDN  (0) 2024.05.05
99클럽 30일차 TIL: Basic 인증  (1) 2024.05.03
99클럽 29일차 TIL: OAuth  (0) 2024.05.02
99클럽 28일차 TIL: JWT  (1) 2024.05.01