OAuth 시작하기

  • 개발사가 제작한 App이 카페24의 API를 이용하기 위해서는 인증/보안절차가 반드시 선행되어야 합니다.
  • 카페24의 인증은 OAuth2.0으로 제공되며, RFC6749의 권고안을 준수하고 있습니다.
  • 개발사의 App은 OAuth 클라이언트를 반드시 구현해야 됩니다.

OAuth 2.0 개요

  • 일반적으로 인터넷 서비스를 이용할 때 개인적인 정보나 보호를 받아야 하는 콘텐츠는 소유자를 증명하기 위해 아이디, 비밀번호로 로그인을 합니다.
    인터넷 서비스가 발전하면서 플랫폼 간에 콘텐츠의 사용과 공유가 필요하게 되었습니다.
    그로 인하여 기존 방식으로는 소유자가 자신의 아이디, 비밀번호를 플랫폼에게 알려줘야 하는 문제가 발생하게 되었습니다.
    소유자는 아이디, 비밀번호를 알려주지 않고 허용하고 싶은 콘텐츠 정보만 플랫폼에 전달하고 싶은 상황에 직면하게 되었습니다.
    OAuth 2.0은 이런 문제점을 해결하기 위해 제3의 플랫폼에게 콘텐츠 사용 권한을 부여해주는 프레임워크이며 구글, 페이스북 등 대부분의 글로벌 기업에서 채용하고 있는 업계 표준입니다.
  •  
  • OAuth는 흐름을 이해하는 것이 매우 중요합니다.
  •  
  • 흐름에 대해 설명하기 전에 우선 주요 역할들에 대해 설명하겠습니다.
OAuth 2.0 역할정의
용어 설명
Resource Owner(리소스 소유자) 보호된 콘텐츠(예: 이메일, 캘린더, 메모, 주소록)의 소유자 본인를 의미합니다.
Client(클라이언트) 리소스 소유자를 대신하여 리소스 서버에 보호된 콘텐츠를 요청하는 애플리케이션입니다.
Resource Server(리소스 서버) 보호된 콘텐츠를 관리하는 서버입니다. 리소스 소유자가 권한을 부여했다는 것을 증명하는 Access Token을 이용하여 보호된 콘텐츠에 접근 할 수 있습니다.
  • 그외에 "권한 부여 서버 : Authorization Server", "인증 서버 : Authentication Server" 등의 역할이 있고 카페24는 쇼핑몰 서버가 이러한 역할들을 대신하고 있습니다.

OAuth 2.0 흐름

  • OAuth의 주요 흐름은 code 발급 > access token 발급 > API 호출 순으로 진행됩니다.
  •  
  • 웹사이트 형태로 만들어진 클라이언트가 있다고 가정하겠습니다.
  • 이 클라이언트는 리소스 서버의 데이터를 사용하려고 합니다.
  • ① 먼저 리소스 소유자가 웹브라우져로 클라이언트를 최초로 실행합니다.
  • ② 클라이언트는 데이터를 사용하기 위해 access token이 필요하지만, 최초 실행 시에는 access token이 없으니 권한 위임 절차에 들어갑니다.
  • ③ 위임이 완료되면 access token과 교환 할 수 있는 code가 발급됩니다.
  •  
  • 여기 까지가 위 그림의 파란색 박스 부분이며 이 절차는 반드시 웹 브라우져를 통해 진행됩니다.
  • 개발자는 웹 브라우져를 통해 전달된 Querystring에서 code를 얻을 수 있습니다.
  • ④ 이제 발급 받은 code를 access token과 교환하면 ⑤ API 를 호출해서 데이터를 사용 할 수 있습니다.
  • 이 과정은 노란색 박스 부분이며 클라이언트가 구동되는 서버에서 API를 이용해 리소스 서버에 access token 발급 요청을 해야 됩니다.
  •  
  • access token은 유효기간이 매우 짧아 주기적으로 재발급을 받아야 합니다.
  • ⑥ 재발급시에는 권한 위임 절차를 다시 실행할 필요는 없고 refresh token을 이용해서 access token을 재발급 받을 수 있습니다.
  •  
  • 여기 까지 OAuth의 흐름을 이해 했다면 OAuth Client를 직접 구현 할 수 있습니다.

OAuth Client 구현

  • OAuth의 역할을 카페24에서는 아래와 같이 표현하고 있습니다.
OAuth 2.0 역할정의
표준 용어 카페24에 적용한 용어
Resource Owner(리소스 소유자) 쇼핑몰 운영자
Client(클라이언트) App (Application)
Resource Server(리소스 서버) 카페24 쇼핑몰
  • 아래 그림은 OAuth의 기본 흐름에 data를 함께 표현한 내용입니다.
  • 이 그림과 단계별 샘플 요청을 참고하여 OAuth Client를 구현하면 App 개발을 위한 모든 준비가 완료된 것입니다.