컴퓨터 사이언스/보안

[OAuth] OAuth는 인증 기술이 아니다?

Dachaes 2025. 4. 12. 20:53

OAuth (Open Authorization) 

“구글 로그인은 OAuth 기술로 구현되니까, OAuth는 로그인 인증 프로토콜이다?” 많은 개발자들이 이렇게 오해합니다.
하지만 진실은 조금 다릅니다. OAuth는 로그인(Authentication) 기술이 아닙니다. OAuth는 인증(Authentication) 기술이 아니라 인가(Authorization) 프로토콜입니다.

이번 글에서는 OAuth와 인증의 차이, 그리고 이를 보완하는 OpenID Connect (OIDC)에 대해 알아보겠습니다.

 


1.  OAuth는 인증 기술이 아니다?

OAuth는 본질적으로 권한 위임(Authorization)을 위한 프로토콜입니다. 즉, 제3의 애플리케이션(클라이언트)이 사용자의 자원에 제한된 권한으로 접근할 수 있도록 허용하는 것이 목적입니다.

예를 들어, 어떤 앱이 여러분의 Google Drive 파일을 읽고 싶어한다고 해볼게요. OAuth는 이 앱이 여러분의 비밀번호를 몰라도 접근할 수 있게 접근 권한만 부여하는 구조입니다. 하지만, OAuth는 여러분이 누구인지(신원 확인)는 보장하지 않습니다.

그럼 로그인은 어떻게 되는 걸까?

많은 앱에서 “Google로 로그인” 같은 기능을 제공하죠. 겉으로 보면 OAuth로 로그인하는 것처럼 보이지만, 사실은 그 뒤에서 OpenID Connect (OIDC)라는 인증 프로토콜이 사용되고 있습니다. OIDC는 OAuth 2.0 위에 구축되어 있으며, 사용자 인증(Authentication)을 위한 기능을 제공합니다.

 


2.  OAuth vs 인증(Authentication) 비교

구분 OAuth 인증(Authentication)
목적 권한 위임 신원 확인
무엇을 확인? "이 앱이 이 자원에 접근해도 돼?" "이 사용자가 진짜 그 사람인가?"
사용 예 구글 드라이브 파일 접근 권한 부여 구글 계정으로 로그인
ID 확인

OpenID Connect(OIDC)가 등장한 이유

OAuth 자체만으로는 사용자가 누구인지 확인하는 기능이 없음에도 불구하고, 많은 서비스가 OAuth를 인증처럼 쓰려 하면서 보안 문제가 발생했습니다. 이를 해결하기 위해 등장한 것이 OIDC입니다.

OIDC의 핵심 기능

  • 사용자 신원을 포함한 id_token 제공 (JWT 형식)
  • 표준화된 사용자 정보 제공 (프로필, 이메일 등)
  • 로그인 세션 관리

 


3.  OAuth와 OIDC

a.  OAuth

이 앱이 내 Google Drive를 읽을 수 있도록 권한을 허용할게.
(내가 누군지는 중요한 게 아니야.)

b.  OIDC

이 앱이 나라는 걸 확인해도 돼.
(로그인하고, 내 계정 정보를 이 앱에 전달해도 괜찮아.)

 

OAuth와 OIDC의 차이 요약


항목 OAuth OpenID Connect (OIDC)
목적 권한 위임/인가 (Authorization) 인증 (Authentication)
사용자 신원 확인
토큰 Access Token Access Token + ID Token
사용 예 외부 앱이 내 Google Calendar 읽기 구글 계정으로 로그인하기
기반 프로토콜 OAuth 2.0 OAuth 2.0 위에 확장

 

 


4.  마무리

OAuth는 “이 앱이 ○○에 접근해도 되나요?”에 대한 답을 다루고,
OIDC는 “이 사람이 본인 맞나요?”에 대한 답을 다룹니다.

만약 여러분이 “로그인 기능”을 구현하고 싶다면, OAuth만으로는 부족하고 OpenID Connect가 필요하다는 걸 꼭 기억하세요.

함께 보면 좋은 자료

블로그 글 :

 

[OAuth] 로그인 없이 로그인하기

OAuth (Open Authorization) 현대 웹서비스에서 흔히 볼 수 있는 Google로 로그인, Kakao로 시작하기 같은 기능은 어떻게 작동할까요? 바로 이럴 때 사용하는 기술이 OAuth(Open Authorization)입니다. 이 글에서는

dachaes-devlogs.tistory.com

 

 

[OpenID Connect] OAuth로는 부족했던 인증을 해결하다.

OpenID Connect (OIDC) OAuth는 인가(Authorization)를 위한 프로토콜이지, 사용자의 신원 확인(로그인) 기능은 없었습니다. 그 공백을 채우기 위해 등장한 것이 바로 OpenID Connect (OIDC)입니다.이 글에서는 OIDC

dachaes-devlogs.tistory.com

 


728x90