728x90
반응형

1.JWT (JSON Web Token)란?

JWT는 당사자 간에 정보를 JSON 객체로 안전하게 전송하기 위한 컴팩트하고 독립적인 방식을 정의하는 개방형 표준입니다.

 

주요 특징:

  • 구조: Header, Payload, Signature 세 부분으로 구성
  • 사용 사례: 인증 및 정보 교환
  • 장점: 상태를 저장할 필요가 없어 서버 부하 감소

JWT 작동 방식:

  1. 사용자 로그인
  2. 서버가 JWT 생성 및 클라이언트에 전송
  3. 클라이언트가 후속 요청에 JWT 포함
  4. 서버가 JWT 검증 후 요청 처리

 

2. OAuth란?

OAuth는 사용자 데이터에 대한 접근 권한을 제3자 애플리케이션에 부여할 수 있게 하는 개방형 표준 프로토콜입니다.

 

주요 특징

  • 버전: OAuth 1.0과 OAuth 2.0 (더 널리 사용됨)
  • 목적: 안전한 위임 접근
  • 역할: Resource Owner, Client, Authorization Server, Resource Server

OAuth 2.0 승인 흐름

  1. 클라이언트가 리소스 소유자에게 권한 요청
  2. 리소스 소유자가 승인 부여
  3. 클라이언트가 인증 서버에 액세스 토큰 요청
  4. 인증 서버가 액세스 토큰 발급
  5. 클라이언트가 액세스 토큰으로 보호된 리소스 접근

3. JWT vs OAuth

  • JWT는 토큰 형식이고, OAuth는 권한 부여 프로토콜입니다.
  • JWT는 주로 인증에 사용되고, OAuth는 권한 부여에 중점을 둡니다.
  • OAuth는 JWT를 토큰 형식으로 사용할 수 있습니다.

보안 고려사항

  • JWT: 서명 검증, 만료 시간 설정, 민감한 정보 암호화
  • OAuth: HTTPS 사용, 상태 매개변수 검증, 안전한 클라이언트 비밀 관리

구현 팁

  • JWT: jsonwebtoken 라이브러리 (Node.js)
  • OAuth: Passport.js (Node.js), Spring Security OAuth (Java)

결론

JWT와 OAuth는 현대 웹 애플리케이션의 보안과 사용자 경험을 향상시키는 강력한 도구입니다. 개발자는 이들의 작동 원리와 적절한 사용 사례를 이해하고 있어야 합니다.

728x90
반응형

+ Recent posts