Home / AI / AI 용어사전 / OAuth — 소셜 로그인 뒤에 숨은 보안 표준 이해하기
TERM
OAuth — 소셜 로그인 뒤에 숨은 보안 표준 이해하기
On this page
'구글로 로그인' 버튼을 누르는 순간, 비밀번호 한 글자도 제3자 앱에 노출되지 않는다. 이 흐름의 핵심은 OAuth 2.0이다. 권한을 위임하되 자격증명(credential)은 공유하지 않는 이 표준이 현대 인터넷 인증의 기반을 이룬다. AI 자동화 도구, 소셜 로그인, API 접근 권한 관리 모두 이 프로토콜 위에서 작동한다.
정의
OAuth (Open Authorization)는 사용자가 비밀번호를 직접 제공하지 않고 제3자 애플리케이션에 제한된 권한을 위임할 수 있게 하는 개방형 인증 표준이다. 현재 사용되는 버전은 OAuth 2.0 (RFC 6749, 2012)이며, 소셜 로그인의 기반 프로토콜로 널리 알려져 있다.
핵심 원칙: 자격증명(비밀번호)을 공유하지 않고 접근 권한(Access Token)만 발급한다.
핵심 개념
OAuth 2.0에는 네 가지 역할이 존재한다.
| 역할 | 설명 | 예시 | |---|---|---| | Resource Owner | 권한을 위임하는 주체 | 구글 계정 소유자 | | Client | 권한을 요청하는 앱 | "구글로 로그인" 버튼이 있는 서비스 | | Authorization Server | 권한을 발급하는 서버 | Google OAuth 서버 | | Resource Server | 보호된 리소스를 제공하는 서버 | Google API (이메일, 프로필) |
Access Token: 특정 리소스에 대한 일시적 접근 권한. 만료 시간이 있다.
Refresh Token: Access Token 만료 후 새 토큰을 발급받는 데 사용하는 장기 토큰.
Scope: 위임되는 권한의 범위. 예: read:email, write:calendar. 앱이 요청할 수 있는 권한의 최대 범위를 사용자가 동의 화면에서 확인하고 승인한다.
Authorization Code Flow
웹 앱에서 가장 많이 사용되는 Authorization Code Flow의 단계별 흐름이다.
1. 사용자 → Client: "구글로 로그인" 클릭
2. Client → Authorization Server: 인증 요청
GET /auth?response_type=code&client_id=xxx&redirect_uri=xxx&scope=email
3. Authorization Server → 사용자: 권한 동의 화면 표시
4. 사용자: 동의 클릭
5. Authorization Server → Client: Authorization Code 전달
redirect_uri?code=AUTH_CODE
6. Client → Authorization Server: 코드 + Client Secret으로 토큰 교환
POST /token { code, client_id, client_secret }
7. Authorization Server → Client: Access Token + Refresh Token 발급
8. Client → Resource Server: Access Token으로 API 호출
GET /userinfo Authorization: Bearer ACCESS_TOKENAuthorization Code가 중간에 노출돼도 Client Secret 없이는 Access Token을 발급받을 수 없어 보안성이 높다.
OAuth 2.0과 OpenID Connect (OIDC)
OAuth 2.0은 "권한 위임" 프로토콜이지, 인증(authentication) 프로토콜이 아니다. "이 사람이 누구인가"를 확인하는 데 OAuth만으로는 부족하다. 이 문제를 해결하기 위해 OAuth 2.0 위에 인증 레이어를 추가한 표준이 OpenID Connect (OIDC)다.
OIDC는 Access Token과 함께 ID Token(jwt 형식)을 발급해 사용자 신원 정보를 포함한다. 실제 소셜 로그인 구현은 OAuth 2.0 + OIDC 조합으로 이루어진다.
AI 서비스에서의 OAuth
많은 AI API와 자동화 플랫폼이 OAuth 2.0으로 접근 권한을 관리한다.
- Make.com / Zapier 연동: 서비스 계정 연결 시 OAuth 2.0 흐름으로 권한 위임
- Google Workspace AI 도구: Gmail·Drive 접근 시 OAuth scope 설정
- Instagram Graph API: 비즈니스 계정 접근 토큰 발급에 OAuth 사용
- GitHub OAuth App: 레포지토리 접근 권한을 OAuth로 위임
Access Token은 유효기간이 있으며, 만료된 토큰을 자동 갱신하는 Refresh Token 흐름도 자동화 파이프라인에서 중요하게 관리된다.
활용 사례
- 소셜 로그인 (구글, 카카오, 네이버, GitHub)
- 서드파티 앱의 Google Drive / Calendar 접근
- CI/CD 도구의 GitHub 레포지토리 접근 권한
- AI 자동화 파이프라인의 플랫폼 API 연동
- SaaS 간 데이터 연동 (CRM ↔ 마케팅 도구)
관련 용어
- jwt — ID Token 형식으로 OIDC에서 사용되는 토큰 표준
- api — OAuth Access Token으로 보호되는 인터페이스
- rest — OAuth 토큰이 HTTP Authorization 헤더로 전달되는 아키텍처
- webhook — OAuth 토큰 만료·갱신 이벤트를 처리하는 데 활용
- session — OAuth 기반 로그인과 연동되는 서버 세션 관리