
웹 서비스 개발 – OAuth 인증 – OAuth 2.0 서비스 제공자
안녕하세요~ 여러분! 😊
오늘은 OAuth 인증 시 실제로 많이 사용하는 OAuth 2.0 서비스 제공자들에 대해 알아볼게요.
즉, 우리가 ‘로그인 버튼’ 클릭 한 번으로 쉽게 접속할 수 있게 해주는
구글, 네이버, 카카오, 깃허브, 페이스북 등의 백엔드 인증 제공자들이죠!
이 서비스들은 각각의 특징과 인증 흐름이 살짝씩 달라서,
실전에서 사용할 땐 각 서비스의 개성과 제한사항을 잘 이해하는 것이 중요해요!
1. OAuth 2.0 서비스 제공자란?
OAuth 2.0에서 **서비스 제공자(Provider)**란,
인가 서버와 리소스 서버를 운영하며 인증 토큰을 발급해주는 플랫폼이에요.
예를 들면:
- 구글 로그인 👉 구글이 Provider
- 카카오 로그인 👉 카카오가 Provider
이들 플랫폼은 **Client(앱/웹 서비스)**가 사용자 정보를 안전하게 요청할 수 있도록
인증 절차와 API를 제공해줍니다.
2. 대표적인 OAuth 2.0 서비스 제공자
아래에서 자주 사용하는 주요 서비스 제공자들을 비교해볼게요!
✅ 구글 (Google)
- 인증 엔드포인트:
https://accounts.google.com/o/oauth2/v2/auth
- 토큰 발급:
https://oauth2.googleapis.com/token
- 사용자 정보:
https://www.googleapis.com/oauth2/v3/userinfo
- Scope 예시:
openid profile email
특징:
- OpenID Connect 포함 (JWT 토큰 기반)
- Gmail, Calendar, Drive 등 다양한 리소스 접근 가능
- 가장 표준적인 OAuth 구현 예시
예시:
https://accounts.google.com/o/oauth2/v2/auth?
client_id=xxx&
redirect_uri=https://example.com/callback&
response_type=code&
scope=openid%20email%20profile
✅ 카카오 (Kakao)
- 인증 엔드포인트:
https://kauth.kakao.com/oauth/authorize
- 토큰 발급:
https://kauth.kakao.com/oauth/token
- 사용자 정보:
https://kapi.kakao.com/v2/user/me
- Scope 예시:
profile account_email
특징:
- 한국 내 사용자 비중 높음
- 토큰은 Bearer 형태
- 사용자 동의 범위 커스터마이징 가능
주의사항:
- 앱 설정에서
Redirect URI
,동의 항목
,비즈 앱
등록 필요
✅ 네이버 (Naver)
- 인증 엔드포인트:
https://nid.naver.com/oauth2.0/authorize
- 토큰 발급:
https://nid.naver.com/oauth2.0/token
- 사용자 정보:
https://openapi.naver.com/v1/nid/me
- Scope 예시:
name email
특징:
- OAuth 2.0 준수하지만 일부 커스텀 요소 존재
- Client ID/Secret은 개발자 센터에서 발급
예시:
https://nid.naver.com/oauth2.0/authorize?
client_id=xxx&
redirect_uri=https://example.com/callback&
response_type=code&
state=random_state
✅ 깃허브 (GitHub)
- 인증 엔드포인트:
https://github.com/login/oauth/authorize
- 토큰 발급:
https://github.com/login/oauth/access_token
- 사용자 정보:
https://api.github.com/user
- Scope 예시:
read:user user:email
특징:
- 주로 개발자 서비스용 (DevOps, CI/CD, 배포 자동화)
Accept: application/json
헤더 필요
주의사항:
- 토큰 요청 시
client_secret
필요 (PKCE 미지원)
✅ 페이스북 (Facebook)
- 인증 엔드포인트:
https://www.facebook.com/v12.0/dialog/oauth
- 토큰 발급:
https://graph.facebook.com/v12.0/oauth/access_token
- 사용자 정보:
https://graph.facebook.com/me
- Scope 예시:
public_profile email
특징:
- 다양한 마케팅 및 광고 연동 가능
- Graph API 활용 범위 넓음
주의사항:
- 앱 심사 및 사용자 동의 항목이 까다로움
- 테스트 사용자 설정 필수
3. 서비스별 비교 정리
제공자 | 인증 주소 | 사용자 정보 URL | 특징 |
---|---|---|---|
accounts.google.com | googleapis.com/userinfo | 글로벌 표준, OpenID | |
Kakao | kauth.kakao.com | kapi.kakao.com/user/me | 국내 사용자 비중 높음 |
Naver | nid.naver.com | openapi.naver.com | 비즈니스 인증 필수 |
GitHub | github.com | api.github.com/user | 개발자 서비스 연동 |
facebook.com | graph.facebook.com/me | 광고/마케팅 연동 강점 |
4. OAuth 구현 시 유의할 점 ✅
항목 | 설명 |
---|---|
Redirect URI 등록 | 반드시 정확히 등록한 URI만 허용됨 |
State 사용 | CSRF 방지 위해 state 파라미터 필수 |
Scope 관리 | 과도한 권한 요청은 사용자 이탈 초래 |
HTTPS 사용 | 인증/토큰 교환은 반드시 HTTPS |
토큰 저장 방식 | 클라이언트에선 HttpOnly 쿠키 권장 |
5. 비유로 이해하는 서비스 제공자 역할 🎭
OAuth 서비스 제공자를 극장 매표소에 비유해볼게요:
- 👤 사용자: 영화 관람을 원하는 손님
- 🏢 클라이언트 앱: 사용자를 대신해 티켓을 받고 싶은 영화관 직원
- 🎫 토큰: 관람을 허가받은 입장권
- 🧑⚖️ OAuth 제공자: 영화관 본사(구글, 카카오 등)에서 발급한 공식 인증기관
클라이언트 앱은 반드시 **올바른 신분(클라이언트 ID/시크릿)**과 함께
사용자가 허락한 범위 내에서만 티켓(토큰)을 받아야 입장이 가능하답니다!
마무리하며 😊
OAuth는 단순히 “소셜 로그인”의 기능을 넘어,
서비스 간 신뢰와 연결을 안전하게 이어주는 기술이에요!
이번 시간엔 실제 웹/앱에서 활용할 수 있는
OAuth 2.0 서비스 제공자들의 특징과 인증 흐름을 살펴봤고요,
다음 시간에는 이 중 하나를 골라
실제로 OAuth 연동을 구현해보는 실습을 해볼게요!
궁금하신 점은 언제든지 댓글로 남겨주시고,
여러분의 서비스에 꼭 맞는 OAuth 제공자를 잘 골라 활용해보세요! 🔐✨
감사합니다! 🙌