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 인증
- https://second-brain.tistory.com/48
- HTTP 헤더에 id, pw 자체를 집어넣어서 매번 서버로부터 인증을 받는 방식
- 이번엔 토큰 인증 에 대해 알아보자.
- JWT
#2. 공부한 내용
1. 토큰 인증
- 사용자가 자신의 신분을 확인하고 고유한 엑세스 토큰을 받는 프로토콜
- 이미 앞서 알아보았던 JWT 도 토큰 인증 방식에 속한다.
- 토큰 인증 방식은 JWT 를 비롯하여 다양한 토큰 종류가 있다.
- 사용자는 토큰 유효기간 동안 해당 페이지에 대해 다시 자격 증명을 제공할 필요 없이, 해당 서비스를 이용할 수 있다.
- 토큰은 아래와 같은 경우에서 무효화된다
- 사용자 로그아웃
- 앱 종료
- 유효기간 지났을 때.
- 기존 ID, PW 방식의 Basic 방식에는 사용자가 비밀번호를 매번 기억해야하고, 기억을 못했을 때 인증을 하지 못한다는 단점이 있다.
- 또한 여러 다른 서버에서, 동일한 사용자는 동일한 비밀번호를 사용하곤 하는데, 이는 하나의 서버가 보안적으로 취약할 때, 다른 서버에서도 해당 사용자의 계정은 보안에 동일하게 취약해진다.
- 비밀번호 변경을 의무적으로 실행시켜도, 대부분 사용자는 문자나 숫자 하나씩만 바꾸곤 한다.
- 토큰 인증 방식에서는 두 번째 보안 계층을 제공하여, 도용 침투가 더 어렵고, 세션에 대한 기록은 서버에서 저장하지 않기에 서버 공간 차지를 하지 않는다.
1) 인증 토큰의 유형
- 연결형
- 물리적 장치를 통해 시스템에 연결하여 엑세스를 허용 받는다.
- 보통 USB 등으로 시스템에 로그인 하는 방식은 해당 방식에 속한다.
- 비접촉형
- 디바이스와 서버가 따로 연결을 하지 않고, 물리적 거리만 충족시켜준다.
- ex) Microsoft 의 매직링
- 분리형
- 거리와 상관 없이 서버와 통신
- 휴대폰으로 인증을 하는 것이 해당 케이스
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 |