사용자가 마주하게 되는 곳

SSG.COM 로그인 화면

  • 현재 사용자는 쇼핑몰 사이트나 처음 들어가는 사이트에서 로그인할 때 위의 사진과 같은 네모박스로 로그인할 수 있습니다.
  • 이것을 가능하게 해준 것이 바로 OAuth입니다.

 

 

OAuth란?

  • OAuth는 Open Authorization, Open Authentication 뜻하는 것으로 Service Provider 애플리케이션(네이버, 카카오, 구글)의 유저 비밀번호를 Third party 앱에 제공 없이 인증, 인가를 할 수 있는 오픈 스탠다드 프로토콜입니다.
  • OAuth 인증을 통해 애플리케이션 API를 유저대신에 접근할 수 있는 권한을 얻을 수 있습니다.
  • OAuth가 사용되기 전에는 외부 사이트와 인증기반의 데이터를 연동할 때 인증방식의 표준이 없었기 때문에 기존의 기본인증인 아이디와 비밀번호를 사용하였는데, 유저의 비밀번호가 노출될 가망성이 커서 보안상 취약한 구조였습니다.
  • 그렇기 때문에 이 문제를 보안하기 위해 OAuth의 인증은 API를 제공하는 서버에서 진행하고, 유저가 인증되었다는 Access Token을 발급했습니다.
  • 그 발급된 Access token으로 Third party(Consumer) 애플리케이션에서는 Service Provider의 API를 안전하고 쉽게 사용할 수 있게 되었습니다.

 

 

OAuth 동작 원리

  • (A) (애플리케이션 → 사용자) 사용자 데이터에 접근하기 위한 권한을 요청합니다. 개념상 애플리케이션이 사용자에게 요청하지만, 실제 구현은 애플리케이션과 사용자 사이에 권한 제공기관이 중개 역할을 하는 경우가 일반적입니다.
  • (B) (사용자 → 애플리케이션) 접근에 동의함을 증명하는 권한 부여 동의서(Authorization Grant)를 발급합니다. RFC 6749에서는 4가지 유형의 권한 부여 동의서를 정의하고 있습니다. 애플리케이션과의 유형 및 권한 제공기관의 지원 여부에 따라 사용할 권한 부여 동의서의 유형이 결정됩니다.
  • (C) (애플리케이션 → 권한 제공기관) 권한 부여 동의서를 제출하여 접근 토큰을 요청합니다. 접근 토큰은 사용자 데이터에 접근할 수 있는 키입니다.
  • (D) (권한 제공기관 → 애플리케이션) 권한 부여 동의서를 확인하여 사용자가 동의한 데이터 항목, 범위 및 기간 등에 대한 정보가 담긴 접근 토큰을 제공합니다.
  • (E) (애플리케이션 → 데이터 제공기관) 접근 토큰을 제출하여 사용자 데이터를 요청합니다.
  • (F) (데이터 제공기관 → 애플리케이션) 사용자 데이터를 제공합니다. 이때 애플리케이션과이 제출한 접근 토큰이 유효함을 확인하고, 접근 토큰의 정보를 확인하여 제공할 데이터 항목, 범위 및 유효기간이 정해집니다.

+ Recent posts