본문 바로가기
Development/Java & Android

Authentication Requests with OAuth

by nickeys 2011. 7. 2.
# Overview
 트위터 API를 사용하기 위해서는 우선, 클라이언트(client application)를 등록해야 한다. 등록할 각 클라이언트에는 컨슈머 키와 시크릿(consumer key and secret)이 주어진다. 이 키와 시크릿은 ssh와 같은 프로토콜에서 사용되는 공개, 비공개 키들과 유사하다. 이 것들은 API를 사용할 때마다 서명 절차를 위해 OAuth라이브러리와 함께 사용될 것이다. 사용자가 자신임을 입증하는 것은 이 서명 절차를 통해 이뤄진다.
 웹 응용프로그램들은 full-OAuth의 사용이 권장 되며, 데스크탑과 모바일용 응용 프로그램들은 OAuth의 사용이 권장된다.
단독 사용자가 사용하는 응용 프로그램에 대해서는, 사용자의 계정에 대한 액세스 토큰(access token)을 발행하는 기능이 제공된다.

# Registering an App
 클라이언트 어플리케이션 페이지(Client Applications)에서 응용 프로그램을 생성한다. 응용프로그램을 생성하는 동안 해당 응용 프로그램이 데스크탑용인지 웹용인지 선택 해야한다. 데스크탑용은 callback URL이 필요 없다. 사실, 웹용도 callback URL이 필요없긴 마찬가지다. 최고의 습관은 모든 리퀘스트 토큰 단계에서 명시적으로 콜백 되길 원하는 것을 선언하면서 oauth_callback_url을 항상 전송하는 것이다. PIN/out-of-band flow를 수행하길 원하면, "oob"의 oauth_callback_url을 제공해야 한다(?).

#
Introduction to OAuth
 트위터는 인증을 위해 open authentication standard OAuth를 사용한다(?). 자세한건 guide at HueniverseSlideShare presentation
이 두 곳을 참고할 것. 주로 사용하는 언어의 라이브러리를 사용한다면 OAuth로 인증 하는 것은 아주 쉽다. OAuth 리퀘스트의 주기를
간략히 다타내면 다음과 같다: 리퀘스트 토큰을 탐색한다 => 사용자를 트위터의 로그인 페이지로 보냄으로써 사용자 인증을 처리한다 => 리퀘스트 토큰을 액세스 토큰으로 교환한다.

 데스크탑 응용 프로그램을 "PIN-mode flow"이나 xAuth를 사용한 로그인 증명과 함께 사용할 때 절차는 약간 바뀐다.
다음 다이어그램을 참고하자.


OAuth는 OAuth인증 방법으로 2가지를 제공한다: query-string 과 HTTP headers. 관계들을 분리하고 디버깅을 쉽게 하기 때문에 헤더 기반의 접근을 사용하는 것이 추천된다.

'Development > Java & Android' 카테고리의 다른 글

Twitter API  (0) 2011.07.02
MetaWeblog in Java  (0) 2010.09.06
REST와 OpenAPI  (0) 2010.09.05
File compression in Java  (0) 2010.09.04
Killing Thread  (0) 2010.08.27