제임스딘딘의
Tech & Life

개발자의 기록 노트/Algorithm

OAuth 인증방식 이해하기

제임스-딘딘 2011. 4. 16. 03:18

OAuth 인증방식 이해하기

본 문서는 OAuth의 이해를 돕기 위해 작성되었습니다.

OAuth 학습을 뛰어넘고 바로 예제 소스를 보며 개발을 하고 싶다면, 튜토리얼를 참고하시기 바랍니다.

본 문서 내의 용어 일관성을 위해 OAuth스팩에 있는 용어를 사용하였습니다. 본 문서에서 용어는 모두 이탤릭체로 표시됩니다.

용어정의

  • 서비스 프로바이더(Service Provider) – API를 제공하는 서비스를 말합니다. 예> 스프링노트
  • 사용자(users) - 서비스 프로바이더 혹은(그리고) 컨수머를 사용하는 이를 말합니다. 
  • 컨수머(Consumer) – API를 사용하여 개발된 애플리케이션 서비스를 말합니다. 예> 스프링노트의 API를 이용하여 개발된 매시업
  • 보호된 자원(Protected Resources): 서비스 프로바이더에 존재하는 사용자의 데이터를 의미합니다. 예> 스프링노트의 페이지 혹은 첨부 데이터들
  • 컨수머 개발자(Consumer Developer) : 컨수머를 개발하는 개인 혹은 단체
  • 컨수머 키(Consumer Key) : 서비스 프로바이더에게 컨수머 자신임을 인증하기 위한 키
  • 컨수머 시크릿(Consumer Secret) : 컨수머컨수머 키 소유권한이 있는지 인증하기 위한 키
  • 토큰(Tokens) – 컨수머에서 서비스 프로바이더에 있는 사용자보호된 자원에 접근하기 위해 사용되는 사용자의 인증정보입니다. 예를들어 스프링노트의 API를 사용해 개발된 매시업 M이 스프링노트(서비스 프로바이더)에 있는 사용자 U의  보호된 데이터에 접근하기 위해서는 사용자 U의 인증정보(credential)가 필요합니다. 그 인증정보를 위해 사용되는 것이 토큰입니다.

    • 리퀘스트 토큰(Request Token) :  컨수머사용자에게  접근권환을 획득하는 과정에서 사용하는 값이며, 이것은 차후 액세스 토큰으로 교환됩니다.
    • 리퀘스트 토큰 시크릿(Request Token Secret) :  리퀘스트토큰이 사용자의 것임을 인증하기 위한 값입니다.
    • 액세스 토큰(Access Token) : 컨수머사용자서비스 프로바이더를 통해서가 아닌 컨수머를 통해서 보호된 자원에 접근할 수 있는 권한을 받기 위한 값입니다.
    • 액세스 토큰 시크릿(Access Token Secret) : 액세스토큰사용자의 것임을 인증하기 위한 값입니다.

 

용어를 숙지 하셨다면, 이해를 쉽게 하기 위해 두 가지 관점에서 인증과정을 살펴보겠습니다.

사용자 관점에서 바라보았을 때의 인증과정을 학습하셨다면, 개발을 하기 위해 OAuth프로토콜 관점에서 바라보았을 때의 OAuth 인증과정을 통해 좀 더 자세히 OAuth인증 과정 학습 및 개발을 할 수 있습니다.