기타

OAuth2

소금토스트 2025. 7. 4. 14:19
728x90
반응형
SMALL

🔐 OAuth2란?

**OAuth2 (Open Authorization 2.0)**는
제3의 애플리케이션이 사용자 비밀번호를 몰라도
인증된 리소스 접근 권한을 위임받을 수 있도록 설계된 인가 프로토콜입니다.

즉, “내 계정을 누구한테 잠시 빌려주는 것” 같은 개념입니다.


✅ 핵심 개념

용어의미
Resource Owner 사용자
Client 로그인하려는 앱 (예: 챗봇, 쇼핑몰)
Authorization Server 인증 서버 (예: Google, Naver)
Resource Server 사용자의 데이터가 있는 서버 (예: Google Drive)
Access Token 권한을 증명하는 임시 열쇠
 

🔄 기본 흐름

  1. 사용자가 Client(앱)에서 로그인 시도
  2. Authorization Server로 리디렉션되어 로그인
  3. 사용자 동의 → Access Token 발급
  4. Client는 Access Token으로 Resource Server에 데이터 요청

🔁 토큰을 주고받으며 사용자 대신 행동하는 구조


🔎 OAuth2의 목적

  • 로그인 보안 분리
    → 비밀번호를 앱에 주지 않고도 로그인 가능
  • 권한 범위 지정 가능
    → 예: "이 앱은 내 구글 캘린더만 읽을 수 있음"
  • MFA, SSO 등 다양한 확장 가능
    → OpenID Connect(OIDC)와 결합 시 로그인 인증까지 확장

🔐 예시: “구글로 로그인”

  • 사용자는 Google Authorization Server에서 로그인
  • Google은 사용자의 정보 및 토큰 발급
  • 앱은 이 토큰을 가지고 사용자 정보 요청
  • 이때 OIDC를 함께 쓰면 프로필 정보(ID 토큰)도 함께 받음

🔁 OAuth2 vs SAML

항목SAMLOAuth2
인증 목적 SSO 인증 API 인가
포맷 XML (Assertion) JSON (Token)
사용 환경 기업 SaaS 모바일/웹/클라우드
로그인 방식 리디렉션 후 Assertion 전송 토큰 교환
 

OAuth2는 토큰 기반 API 보안에 최적화,
SAML은 기업 로그인에 최적화


💡 확장: OAuth2 + OpenID Connect (OIDC)

  • OAuth2는 **인가(authorization)**만 담당
  • 로그인 기능을 위해서는 OIDC를 함께 사용
    → ID 토큰 + 사용자 프로필 등 제공

예: "구글 로그인"은 사실 OAuth2 + OIDC


🎯 실무에서 OAuth2가 사용되는 곳

플랫폼사용 예
Google Google 계정 로그인, YouTube API
Kakao 카카오 로그인, 친구 목록 가져오기
GitHub 로그인 + 저장소 접근 권한 위임
Facebook 로그인 + 게시글 공유 등
 

🧠 마무리 요약

“OAuth2는 사용자 인증 없이 권한만 안전하게 위임하는 프로토콜입니다.
로그인까지 원한다면 반드시 OIDC와 함께 써야 합니다.”

728x90
반응형
LIST

'기타' 카테고리의 다른 글

OIDC  (0) 2025.07.04
SAML  (1) 2025.07.04
SSO  (0) 2025.07.04
내프로젝트 디렉토리 구조 확인하는 방법  (5) 2024.12.26
크롬에서 실수로 창을 껏는데 다시 복구하고싶을때  (1) 2024.12.14