보안
OAuth
다른 이름: OAuth 2.0 , OAuth2
정의
제3자 앱에 비밀번호 노출 없이 권한 위임하는 인증 프로토콜. "Google로 로그인" 구현 표준. Authorization Code, Implicit, Client Credentials, Password 4가지 Grant Type. Access Token + Refresh Token. OpenID Connect(OIDC)는 OAuth 2.0 확장
상세 설명
기술 스펙
- 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년