728x90
반응형
SMALL
🔐 OAuth2란?
**OAuth2 (Open Authorization 2.0)**는
제3의 애플리케이션이 사용자 비밀번호를 몰라도
인증된 리소스 접근 권한을 위임받을 수 있도록 설계된 인가 프로토콜입니다.
즉, “내 계정을 누구한테 잠시 빌려주는 것” 같은 개념입니다.
✅ 핵심 개념
용어의미
Resource Owner | 사용자 |
Client | 로그인하려는 앱 (예: 챗봇, 쇼핑몰) |
Authorization Server | 인증 서버 (예: Google, Naver) |
Resource Server | 사용자의 데이터가 있는 서버 (예: Google Drive) |
Access Token | 권한을 증명하는 임시 열쇠 |
🔄 기본 흐름
- 사용자가 Client(앱)에서 로그인 시도
- Authorization Server로 리디렉션되어 로그인
- 사용자 동의 → Access Token 발급
- 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 계정 로그인, YouTube API | |
Kakao | 카카오 로그인, 친구 목록 가져오기 |
GitHub | 로그인 + 저장소 접근 권한 위임 |
로그인 + 게시글 공유 등 |
🧠 마무리 요약
“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 |