본문 바로가기
카테고리 없음

OAuth란?

by Alohawaii 2026. 3. 17.

OAuth2란 무엇인가?

 OAuth2(Open Authorization 2.0)는 사용자의 비밀번호를 직접 공유하지 않고, 제3의 애플리케이션이 사용자의 리소스에 접근할 수 있도록 허용하는 인증/인가 프로토콜입니다.

 

대표적으로 소셜 로그인에서 많이 사용됩니다.

 

예시

  • Google 로그인
  • Kakao 로그인
  • Naver 로그인

사용자가 회원가입 대신 "구글로 로그인" 같은 버튼을 누르는 방식이 바로 OAuth2 기반입니다.

 


OAuth2가 필요한 이유

과거에는 외부 서비스가 사용자 데이터를 사용하려면 아이디와 비밀번호를 직접 받아야하는 문제가 있었습니다.

 

문제점

  • 보안 위험
  • 비밀번호 유출 가능
  • 권한 통제 어려움

OAuth2는 Access Token 기반 권한 위임 방식을 사용하여 이를 해결합니다.


OAuth2 주요 개념

 

1. Resource Owner

사용자

 

2. Client

사용자 리소스를 접근하려는 서비스 (예: 쇼핑몰 사이트)

 

3. Authorization Server

 사용자 인증을 담당하는 서버(예: Google, Kakao)

 

4. Resource Server

 사용자의 실제 데이터를 가지고 있는 서버(예: 구글 프로필 API)


OAuth2 동작 흐름

 

대표적인 Authorization Code 방식 기준

1. 사용자 -> Client : 로그인 요청
2. Client -> Authorization Server : 인증 요청
3. 사용자 -> Authorization Server : 로그인
4. Authorization Server -> Client : Authorization Code 전달
5. Client -> Authorization Server : Code로 Access Token 요청
6. Authorization Server -> Client : Access Token 발급
7. Client -> Resource Server : Access Token으로 API 요청

핵심 개념: Access Token

OAuth2에서는 Access Token을 이용하여 리소스 접근 권한을 부여합니다.

 

특징

  • 일정 시간 후 만료
  • 권한 범위(scope) 설정 가능
  • 비밀번호 공유 불필요

Authorization: Bearer AccessToken

OAuth2 사용 예시(소셜 로그인)

사용자가 구글 로그인 버튼 클릭

사용자 -> 쇼핑몰 서비스 -> Google 로그인 페이지 -> Access Token 발급 -> Google 사용자 정보 조회

이 과정에서 사용자의 비밀번호는 쇼핑몰 서비스에 전달되지 않습니다.

 

OAuth2는 사용자의 비밀번호를 공유하지 않고 Access Token을 이용해 제3자 서비스에 권한을 위임하는 인증/인가 프로토콜입니다.