ILoveCoffee, ILoveJava

OAuth

jeeyong 2010. 7. 16. 12:30

OAuth란?

 

Open API를 사용하기 위해선 인증이 필요합니다.

 

인증방식의 표준이 없기 때문에 제 각각의 방법으로 개발되고 있는 실정인데요

 

구글의 AuthSub, AOL의 OpenAuth, 야후의 BBAuth

 

OAuth는 제각각의 인증방식을 표준화하고 가장 좋은 방법만 가져다 만들었습니다.

 

즉 매쉬업 서비스로 만들어진 어플리케이션이 다른 어플리케이션의 사용자 정보를 접근할 수 있는

 

표준화된 방법을 제공하는 스펙입니다.

 

OAuth 인증방식을 이해하기 위해선

 

용어를 미리 숙지하셔야 합니다.

 

◦ 서비스 프로바이더(Service Provider) – OPENAPI를 제공하는 서비스를 말합니다

◦ 사용자(users) - 서비스 프로바이더 혹은(그리고컨수머를 사용하는 이를 말합니다

◦ 컨수머(Consumer) – API를 사용하여 개발된 애플리케이션 서비스를 말합니다.

◦ 보호된 자원(Protected Resources): 서비스 프로바이더에 존재하는 사용자의 데이터를 의미합니다.

◦ 컨수머 개발자(Consumer Developer) : 컨수머를 개발하는 개인 혹은 단체

◦ 컨수머 키(Consumer Key) : 서비스 프로바이더에게 컨수머 자신임을 인증하기 위한 키

◦ 컨수머 시크릿(Consumer Secret) : 컨수머의 컨수머 키 소유권한이 있는지 인증하기 위한 키

◦ 토큰(Tokens) – 컨수머에서 서비스 프로바이더에 있는 사용자의 보호된 자원에 접근하기 위해 사용되는 사용자의 인증정보입니다.

 

  리퀘스트 토큰(Request Token) :  컨수머가 사용자에게  접근권환을 획득하는 과정에서 사용하는 값이며, 이것은 차후 액세스 토큰으로 교환됩니다.

  리퀘스트 토큰 시크릿(Request Token Secret) :  리퀘스트토큰이 사용자의 것임을 인증하기 위한 값입니다.

  액세스 토큰(Access Token) : 컨수머가 사용자의 서비스 프로바이더를 통해서가 아닌 컨수머를 통해서 보호된 자원에 접근할 수 있는 권한을 받기 위한 값입니다.

         ▪  액세스 토큰 시크릿(Access Token Secret) : 액세스토큰이 사용자의 것임을 인증하기 위한 값입니다.

 

OAuth 인증방식의 흐름도입니다.

 


 

OAuth 인증 방식에는 7가지의 인증과정으로 이루어져 있습니다.


A; Consumer가 Request Token 요청

B; Service Provider가 Request Token 발급 

C; Consumer는 사용자를 Service Provider로 이동사용자를 인증하고 토큰 발급을 확인함

D; Service Provider는 사용자를 Consumer로 이동 

E; Consumer는 Access Token 요청 

F; Service Provider는 Consumer의 신원과 Request Token 확인Access Token 발급

G; Consumer는 Access Token으로 사용자 정보에 접근

 

끝으로 관련 사이트입니다.

 

http://oauth.net/

http://wiki.oauth.net/OAuthSummit2008

 

현재 오픈마루에서 OAuth 인증방식을 지원하고 있습니다.

 

http://dev.springnote.com/pages/1083036

 

OAuth 인증 관련 예제

 

http://myruby.net/pages/1168058



출처: http://cafe.naver.com/openapi.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=1595