2010년 6월 17일 목요일

OAuth1.0a + OAuth Access Tokens using credentials draft

OAuth1.0a + OAuth Access Tokens using credentials draft


Twitter.com에서 2-legged 방식으로 access token을 제공하는 방식의 OAuth Access Tokens using credentials draft 스펙을 적용해서 운영을 하고 있군요. 이에 대해 분석을 좀 해 봤습니다.



1. 배경

- 기존에는 웹 방식으로 3-legged 방식으로 진행되어 웹이 지원되지 않는 클라이언트 어플에서 한계점이 있었음.

- OAuth WRAP/2.0이 아직 안나와서 OAuth Access Tokens using credentials draft + OAuth 1.0a를 트위터에서 구현한 것임.

- 이 스펙의 draft로 인해 클라이언트 및 모바일 어플에서도 확장되어 사용할 가능성이 많아 보임.



2. 개요

- OAuth1.0a + OAuth Access Tokens using credentials draft(xAuth) 개념 도입함.

- xAuth : x_auth_mode, x_auth_username, x_auth_password 요청 파라미터에 추가되었음.

- 기존은 3-legged 방식이었는데 이 방식은 2-legged 방식으로 변환되어 바로 access token을 제공하여 이 토큰을 가지고 보호 개인 콘텐츠들을 공유할 수 있는 기반을 마련해 줌.

- Third Party(Consumer)에서는 아이디/패스워드는 관리하지 않고 access token만 관리를 하게 됨.

- OAuth WRAP/2.0는 FriendFeed, Facebook에서 적용하고 있음.



3. OAuth Access Tokens using credentials draft 상세 정보

*. 요청시 파라미터

- x_auth_mode=client_auth

- x_auth_username=트위터 아이디

- x_auth_password=트위터 패스워드

- oauth_consumer_key : 트위터에서 발급한 consumer 인증용 키

- oauth_signature_method : 시그너처 암호화 방법

- oauth_signature : 시그너처

- oauth_timestamp : 요청 시간

- oauth_nonce : phishing용 방어 Nonce

- oauth_version : OAUTH 스펙 버전(1.0)



*. 요청 응답 파라미터(아래 파라미터만 Consumer 사이트에서 관리함)

- oauth_token : TwitterPic에서 이미지 공유가능하도록 접근 허용 키 발급(access token)

- oauth_token_secret : 키에 대한 credentials 값

- x_auth_expires : 인증 세션 만료 기간(0:무기한, 만료되었을 경우 Consumer 사이트는 재 인증 절차를 밟아야 함)



4. 이슈

- username, password 정보를 Third-Party에서 저장해서 관리할 가능성 존재.

- Phishing Attacks, Session Fixation Attacks의 OAuth 자체가 안고 있는 보안 이슈에 대해서도 보완도 필요해 보임.



[참조사이트]



•OAuth Access Tokens using credentials draft

•OAuth WRAP/2.0
 
출처: http://www.mimul.com/pebble/default/2010/02/17/1266404940000.html

댓글 없음:

댓글 쓰기

참고: 블로그의 회원만 댓글을 작성할 수 있습니다.