📌 참고
OAuth(Open Authorization)는 사용자의 비밀번호를 다른 서비스에 알려주지 않고도, 제한된 권한만 안전하게 위임할 수 있도록 만든 인증·권한 부여 표준이다. Google 로그인, GitHub 로그인, 카카오 로그인 등이 대표적인 활용 사례이다.
이 글 요약
- OAuth는 비밀번호를 공유하지 않고 권한을 위임하는 기술이다.
- 사용자가 다른 서비스에 로그인할 때 널리 사용된다.
- OAuth는 인증(Authentication)이 아니라 권한 부여(Authorization)를 위한 표준이다.
- Google, GitHub, Microsoft, Kakao, Naver 등 대부분의 로그인 서비스가 OAuth를 기반으로 동작한다.
📂 분류
IT > 웹 개발 > 인증
🏷️ 태그
OAuth · 인증 · 권한 부여 · OpenID Connect · API
📈 난이도
⭐⭐⭐☆☆ (중급)
📅 작성일
2026-07-04
개요
OAuth(Open Authorization)는 사용자가 자신의 비밀번호를 제3자 서비스에 제공하지 않고도, 특정 권한만 안전하게 위임할 수 있도록 만든 국제 표준 프로토콜이다.
예를 들어 어떤 웹사이트에서 “Google로 로그인” 버튼을 누르면, 해당 사이트는 Google 계정의 비밀번호를 직접 받지 않는다.
대신 Google이 “이 사용자가 로그인했다” 또는 “이 정보만 사용할 수 있다”는 권한을 안전하게 전달해 준다.
💡 Tip
OAuth를 사용하면 비밀번호를 여러 사이트에 입력하지 않아도 되므로 보안성이 향상된다.
명칭
| 구분 | 내용 |
|---|---|
| 정식 명칭 | Open Authorization |
| 약칭 | OAuth |
| 현재 널리 사용 | OAuth 2.0 |
| 관련 표준 | OpenID Connect(OIDC) |
역사
OAuth는 여러 웹 서비스가 사용자 데이터를 안전하게 공유할 수 있도록 개발되었다.
초기의 OAuth 1.0은 구현이 복잡했으며, 이후 사용성과 확장성을 개선한 OAuth 2.0이 발표되어 현재 가장 널리 사용되고 있다.
최근에는 OAuth 2.0 위에 OpenID Connect(OIDC)를 추가하여 로그인 기능까지 함께 제공하는 경우가 많다.
OAuth는 왜 필요할까?
예를 들어 어떤 일정 관리 앱이 Google Calendar를 사용한다고 가정해 보자.
OAuth가 없다면
사용자
↓
Google 계정과 비밀번호를
일정 관리 앱에 입력
↓
앱이 Google 계정을 직접 사용
이는 매우 위험하다.
OAuth를 사용하면
사용자
↓
Google 로그인 화면
↓
Google이 로그인 확인
↓
Google이 앱에게
"캘린더 접근 권한"만 전달
↓
앱은 비밀번호를 알지 못함
이처럼 필요한 권한만 안전하게 전달할 수 있다.
동작 방식
OAuth는 일반적으로 다음 순서로 동작한다.
- 사용자가 로그인 버튼을 클릭한다.
- OAuth 제공자의 로그인 화면으로 이동한다.
- 사용자가 로그인하고 권한을 승인한다.
- OAuth 제공자가 Access Token을 발급한다.
- 애플리케이션은 Access Token으로 API를 호출한다.
주요 구성 요소
| 구성 요소 | 역할 |
|---|---|
| Resource Owner | 사용자 |
| Client | 로그인하려는 애플리케이션 |
| Authorization Server | 로그인 및 권한을 관리하는 서버 |
| Resource Server | 실제 데이터를 제공하는 서버 |
| Access Token | 권한을 증명하는 토큰 |
OAuth와 일반 로그인의 차이
| 일반 로그인 | OAuth |
|---|---|
| 비밀번호를 서비스에 입력 | 비밀번호를 제공자에게만 입력 |
| 서비스가 비밀번호를 보관할 수 있음 | 서비스는 비밀번호를 알지 못함 |
| 권한 제어가 어려움 | 필요한 권한만 허용 가능 |
OAuth와 OpenID Connect(OIDC)의 차이
많은 사람들이 OAuth와 로그인을 같은 것으로 생각하지만 엄밀히는 다르다.
| OAuth | OpenID Connect |
|---|---|
| 권한 부여(Authorization) | 사용자 인증(Authentication) |
| API 접근 권한 관리 | 로그인 정보 제공 |
| Access Token 사용 | Access Token + ID Token 사용 |
⚠ 주의
OAuth는 로그인을 위한 기술이 아니라 권한을 위임하는 기술이다. 오늘날 많이 사용하는 “Google 로그인”은 대부분 OAuth + OpenID Connect(OIDC)를 함께 사용한다.
활용 사례
대표적인 OAuth 활용 사례는 다음과 같다.
- Google 로그인
- GitHub 로그인
- Microsoft 로그인
- Apple 로그인
- Kakao 로그인
- Naver 로그인
- Google Drive API
- Google Calendar API
- GitHub API
- Dropbox API
장점
- 비밀번호를 공유하지 않아도 된다.
- 필요한 권한만 허용할 수 있다.
- 보안성이 높다.
- 다양한 서비스와 쉽게 연동할 수 있다.
- API 기반 서비스에 적합하다.
단점
- 구현이 비교적 복잡하다.
- Access Token 관리가 필요하다.
- 토큰 만료 및 갱신 처리를 구현해야 한다.
- OAuth만으로는 사용자 인증을 완전히 해결하지 못한다.
FAQ
Q. OAuth는 로그인 기술인가요?
엄밀히 말하면 아니다. OAuth는 권한 부여(Authorization)를 위한 기술이다. 로그인 기능은 일반적으로 OpenID Connect(OIDC)와 함께 구현된다.
Q. Google 로그인도 OAuth인가요?
네. 대부분의 Google 로그인은 OAuth 2.0과 OpenID Connect(OIDC)를 함께 사용한다.
Q. OAuth를 사용하면 비밀번호를 프로그램에 저장하지 않아도 되나요?
그렇다. 애플리케이션은 비밀번호 대신 Access Token을 사용하여 필요한 권한만 이용한다.
핵심 정리
✅ OAuth는 비밀번호를 공유하지 않고 권한을 위임하는 표준 기술이다.
✅ OAuth의 목적은 권한 부여(Authorization)이며, 로그인은 일반적으로 OpenID Connect와 함께 구현된다.
✅ Google, GitHub, Kakao 등 대부분의 로그인 및 API 서비스에서 사용된다.
참고 자료
- Internet Engineering Task Force OAuth 2.0 RFC 6749
- OpenID Foundation OpenID Connect Specification
- Google Identity Platform Documentation
- OpenAI API 인증 관련 문서
관련 문서
- API
- REST API
- OpenAI API
- OpenID Connect (OIDC)
- Access Token
- Refresh Token
- JWT
- Google Drive API
- Google Docs API
한줄 요약
OAuth는 비밀번호를 공유하지 않고도 애플리케이션에 필요한 권한만 안전하게 위임할 수 있도록 만든 국제 표준 인증·권한 부여 기술이다.