Programming/ETC

OAuth(Open Authorization)란

리버김 2026. 1. 12. 17:42

 

사진: Unsplash 의 Calvin Hanson

 

OAuth하면 떠오르는 건 소셜 로그인이다. 주로 소셜 로그인에 쓰이는 것이 맞지만, 그곳에만 쓰이는 것은 아니다. 제3자의 클라이언트에게 보호된 리소스를 제한적으로 접근하게 해주는 프레임워크를 OAuth라고 한다. 2007년 여러 오픈소스 개발자와 소셜미디어 종사자 등이 모여 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준의 필요성을 논의하다 개발했다고 한다. 이후 구글 등이 후원하면서 공식 프로토콜로 발전할 수 있었다. OAuth 1.0에는 모바일 미지원, 보안, 복잡성 등의 문제가 있었는데, 이를 보완하기 위해 2012년 OAuth 2.0이 개발되었다. OAuth 프레임워크의 구성 요소와 작동 흐름은 아래와 같다.

 

리소스 소유자: 사용자

클라이언트: 사용자의 정보를 접근하는 제3자의 서비스

인증 서버: 클라이언트의 접근을 관리하는 서버

리소스 서버: 리소스 소유자의 데이터를 관리하는 서버

 

  1. 리버(리소스 소유자)는 소셜 미디어 사이트(클라이언트)가 자신의 이메일 연락처(리소스)에 액세스할 수 있도록 허용하려고 한다
  2. 인증 서버는 리버에게 이 액세스에 대한 동의를 제공하라는 메시지를 표시한다.
  3. 리버의 동의를 받은 후 인증 서버는 소셜 미디어 사이트에 액세스 토큰을 제공한다.
  4. 소셜 미디어 사이트는 리버의 이메일 계정 정보를 저장하는 리소스 서버에 액세스 토큰을 제공한다.
  5. 리소스 서버는 액세스 토큰을 인식하고 소셜 미디어 사이트에 리버의 이메일 연락처에 대한 액세스 권한을 부여한다
  6. 액세스 토큰에는 리버의 동의 범위가 포함되기 때문에 소셜 미디어 사이트는 리버의 계정에서 다른 데이터에 액세스할 수 없다.

 

클라이언트가 인증 서버가 제공하는 액세스 토큰을 사용해 리소스 서버에서 필요한 리소스를 가져다 사용할 수 있도록 하는 것이 OAuth의 핵심 흐름이다. 소셜 로그인의 경우 클라이언트가 다른 리소스 서버(구글, X, GitHub, Facebook 등)의 로그인 기능을 가져다 써야 하는 기능이기 때문에 OAuth가 사용되는 대표 사례라고 할 수 있다.

 

참고 자료

 

https://ko.wikipedia.org/wiki/OAuth

https://docs.tosspayments.com/resources/glossary/oauth

https://www.ibm.com/kr-ko/think/topics/oauth