REST API 인증 방식의 변화

itonse·2023년 12월 7일
0

Spring

목록 보기
6/8

REST API 인증 방식의 변화와, 현재 JWT(JSON Web Token) 토큰을 많이 사용하게 된 배경에 대해 정리하였습니다.

1. 세션 기반 인증

기존 웹 애플리케이션에서는 주로 세션 기반 인증 방식이 사용되었습니다. 하지만 이 방식은 서버가 사용자의 로그인 상태를 기억하게 만들며, 이는 REST API의 상태 비저장(Stateless) 원칙에 어긋납니다.

2. 헤더 기반 인증

보안을 강화하고 REST 원칙을 준수하기 위해, 많은 REST API는 HTTP 헤더를 사용한 인증 방식을 도입했습니다. 이 방식은 민감한 정보가 URL에 노출되지 않는 장점이 있었지만, 클라이언트가 계속해서 인증 정보를 관리해야 하는 부담이 있었습니다.

3. API 토큰 인증

API 토큰 인증 방식은 REST API의 상태 비저장(Stateless) 특성에 잘 맞습니다. 이 방식에서 사용자가 로그인하면, 서버는 UUID 랜덤 값을 기반으로 고유한 API 키를 발급합니다. 이 API 키는 단순한 식별자 역할을 하며, 특별한 정보나 패턴을 포함하지 않습니다. 클라이언트는 이 키를 저장하여 이후 요청에 사용하고, 서버는 키를 확인하여 요청을 받아들입니다.

4. JWT 토큰 인증

반면, JWT 인증 방식은 토큰 자체에 사용자 정보(페이로드)와 서명을 포함 합니다. JWT는 '수학적 패턴'을 기반으로 한 암호화 방식을 사용하여, 토큰 안에 사용자의 정보, 권한, 토큰의 유효성 등에 관한 데이터를 안전하게 담을 수 있습니다. 이로 인해 서버에서 데이터베이스 조회 횟수를 줄일 수 있으며, 토큰 자체를 통해 사용자를 인증하고 요청을 처리할 수 있습니다. 이 방식은 처리 속도를 크게 향상시킵니다. 또한 서명을 통해 데이터의 위변조 여부를 검증할 수 있어, 보안성이 뛰어납니다.


Ref.

로그인 유지 - 세션, JWT, OAuth 2.0

0개의 댓글

관련 채용 정보