1.JWT (JSON Web Token)란?
JWT는 당사자 간에 정보를 JSON 객체로 안전하게 전송하기 위한 컴팩트하고 독립적인 방식을 정의하는 개방형 표준입니다.
주요 특징:
- 구조: Header, Payload, Signature 세 부분으로 구성
- 사용 사례: 인증 및 정보 교환
- 장점: 상태를 저장할 필요가 없어 서버 부하 감소
JWT 작동 방식:
- 사용자 로그인
- 서버가 JWT 생성 및 클라이언트에 전송
- 클라이언트가 후속 요청에 JWT 포함
- 서버가 JWT 검증 후 요청 처리
2. OAuth란?
OAuth는 사용자 데이터에 대한 접근 권한을 제3자 애플리케이션에 부여할 수 있게 하는 개방형 표준 프로토콜입니다.
주요 특징
- 버전: OAuth 1.0과 OAuth 2.0 (더 널리 사용됨)
- 목적: 안전한 위임 접근
- 역할: Resource Owner, Client, Authorization Server, Resource Server
OAuth 2.0 승인 흐름
- 클라이언트가 리소스 소유자에게 권한 요청
- 리소스 소유자가 승인 부여
- 클라이언트가 인증 서버에 액세스 토큰 요청
- 인증 서버가 액세스 토큰 발급
- 클라이언트가 액세스 토큰으로 보호된 리소스 접근
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
'코딩공부 > 개발지식' 카테고리의 다른 글
OAuth 2.0 쉽게 이해하기: 인증과 인가의 안전한 분리 (0) | 2024.07.28 |
---|---|
웹 개발의 핵심 개념: 쿠키, 세션, 토큰, 캐시 쉽게 이해하기 (0) | 2024.07.28 |
RESTful API: 웹 서비스 설계를 위한 아키텍처 스타일 (0) | 2024.07.24 |
데이터베이스 스케줄러: 자동화된 쿼리 실행의 핵심 (0) | 2024.07.24 |
데이터베이스의 트리거와 튜닝 (0) | 2024.07.24 |