티스토리 뷰

99-Backup/매쉬업

OAuth Spec에 관하여...

Kevin lovedev 2008.08.08 18:41
OAuth는 오픈 API의 인증방식을 표준화 하기 위해 제시된 스펙으로 국내에는 스프링 노트에서 API를 제공할 때 채택하고 있고 해외에서는 amazon, photobucket, google, yahoo 등이 API서비스를 할 때 채택하고 있는 표준 인증 방식입니다.

웹2.0과 오픈 API가 거론될때 마다 등장하는 방식이죠.. 하나의 인증 표준으로 여러 API를 사용할 수 있다면..
얼마나 좋을까요? :)

스펙은 http://oauth.net/core/1.0/을 참고하시면 됩니다.

사용자 삽입 이미지


OAuth 방식에 대해 간단하게 알아 볼까요?

OAuth를 위해 사용되는 매개 변수는 이렇습니다. 이외에도 사용자 매개 변수가 존재 하겠지만 아랫것들은
oauth_version을 제외 하고는 반드시 필요한 매개 변수입니다.

oauth_consumer_key:  The Consumer Key. (API제공자가 발행해준 Key입니다. API키 같은 거죠.)
oauth_signature_method: The signature method the Consumer used to sign the request.
(인증 방식을 이야기 합니다. HMAC-SHA1 방식이 사용됩니다. sha1 암호화 알고리즘이죠)

oauth_signature:  The signature as defined in Signing Requests (Signing Requests).
인증방식에 의해 얻어진 인증결과값입니다.
인증시에 3가지가 결합되어 인증값이 생성되게 되어 있습니다.

1. url ("?"를 제외한 문자열이 되겠죠)
2. method (http의 method를 이야기하는데 GET,POST,DELETE,PUT, HEAD 등이 있습니다)
3. 매개변수 문자열입니다 ("?"이후에 시작된 문자열이죠 단 주의 할 점은 인코딩된 문자열이어야 한다는 것입니다)

oauth_timestamp: As defined in Nonce and Timestamp (Nonce and Timestamp).
현재의 timestamp값입니다 10자리입니다.

oauth_nonce: As defined in Nonce and Timestamp (Nonce and Timestamp).
랜덤한 문자열입니다. request가 전달될 때마다 unique를 위해 생성되며 암호화 될때 timestamp와 함께 변수로작용하게 되겠죠?)

oauth_version: oauth의 버전을 나타냅니다 현재는 1.0입니다. OPTIONAL. If present, value MUST be 1.0 . Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present. Service Providers’ response to non-1.0 value is left undefined. 

Additional parameters: Any additional parameters, as defined by the Service Provider.
이외 추가적인 매개 변수들이 드어 가게 됩니다. 서비스에 필요한 것들이지요..

매개 변수의 암호화를 할때는 oauth_signature 매개 변수는 제외하고 생성해야 하고 생성후에 request의 uri로 사용 될때는 oauth_signature필요하게 됩니다.

처음 접하시는 분들은 이해가 다소 어려울지도 모르지만 일단 알아 두시는 것만으로도 의미가 있다고 생각합니다.

추후 다음이나 네이버에서 인증방식을 변경할지도 모르니까요 :)
액션 스크립트용과 자바스크립트용으로 서비스용 OAuth를 만들어 둔게 있습니다..만..
필요하신 분들은..google code에 가서 Oauth검색만 해보시면 좋은 결과를 얻으실 수 있을 겁니다.. :)

댓글
댓글쓰기 폼