보안
OAuth
다른 이름: OAuth 2.0 , OAuth2
정의
제3자 앱에 비밀번호 노출 없이 접근 권한을 위임하는 인가(Authorization) 프로토콜. "Google로 로그인" 흐름의 기반. 대표 Grant Type은 Authorization Code, Client Credentials이며 Implicit과 Password는 OAuth 2.1에서 제외되는 방향. Access Token + Refresh Token. 인증(로그인 확인)은 OAuth 2.0 위에 만든 OpenID Connect(OIDC)가 담당
상세 설명
기술 스펙
- OAuth 2.0: 현재 표준 (OAuth 1.0은 deprecated)
- Authorization Code: 서버 사이드 앱 (가장 안전)
- Implicit: SPA (deprecated, PKCE 권장)
- Client Credentials: 서버-서버 통신
- Password: 레거시 (권장 안 함)
- PKCE (Proof Key for Code Exchange): 모바일/SPA 보안 강화
- Scope: 권한 범위 (read, write, admin)
- Redirect URI: 인증 후 돌아올 URL
실무 활용
- 소셜 로그인: Google, Facebook, GitHub
- API 권한 위임: Google Drive, Dropbox 접근
- 3rd Party 연동: Slack, Notion API
- SSO (Single Sign-On): 여러 서비스 통합 로그인
장점
- 비밀번호 노출 없음: 제3자 앱에 안전
- 세밀한 권한 제어: Scope로 읽기/쓰기 구분
- 토큰 만료: 일정 시간 후 자동 무효화
- 표준화: 대부분의 서비스 지원
단점 및 제약
- 복잡한 플로우: 4단계 (인증 요청 → 코드 → 토큰 → API)
- Redirect 필요: 모바일 앱 구현 까다로움
- CSRF 취약: state 파라미터로 방어 필수
- Token 탈취: HTTPS, PKCE 필수
호환성
Google, Facebook, GitHub, Microsoft. 모든 웹/모바일
표준 정보
표준화 기구: IETF RFC 6749 (OAuth 2.0), RFC 6750 (Bearer Token)
출시 연도: 2012년