2010년 7월 30일 금요일
Apache cassandra
Key-value DB의 하나인데...
Digg, Facebook, Twitter 등의 서비스에서 대규모 처리를 지원하는데 사용한다고 하네요..
http://cassandra.apache.org/
2010년 7월 26일 월요일
OAuth 관련 자료들 모음
공식 자료 : http://hueniverse.com/oauth/
스프링노트 자료 : http://dev.springnote.com/pages/1083108
자세한 설명 : http://blog.reeze.com/entry/Beginner%E2%80%99s-Guide-to-OAuth-%E2%80%93-Part-III-Security-Architecture
설명 : http://blog.daum.net/clickstart/5923351
다음 OAuth API 설명 : https://apis.daum.net/oauth/main/welcome (자세하게 잘 되어 있음 )
PHP OAuth 모듈 : http://kr2.php.net/manual/en/book.oauth.php
2010년 7월 20일 화요일
간단하게 정리해본 페이스북 앱 개발 튜토리얼
페이스북과 연동한 웹 개발 방식은 크게 두 종류로 나눌 수 있다. 하나는 기존 웹사이트와 페이스북을 연동하는 페이스북 커넥트 방식의 웹 개발이고, 다른 하나는 페이스북 페이지 안에 사이트를 내장시키는 페이스북 캔버스 애플리케이션(앱) 방식이다. 페이스북 캔버스 앱은 다시 내장 방식으로 아이프레임을 사용하냐 혹은 페이스북에서 제공하는 FBML을 사용하냐에 따라 아이프레임 캔버스와 FBML 캔버스로 나눌 수도 있다.
페이스북은 잘 정리된 개발문서와 개발자 지원 페이지를 제공하고 있고, 또한 위에서 소개한 각각의 개발 방식에 맞춰 여러 종류의 개발 언어로 작성된 SDK를 제공하기 때문에 어떤 개발환경을 사용하든 손쉽게 페이북과 연동되는 웹 애플리케이션/서비스를 개발할 수 있다.
- Facebook 개발자 페이지
- Facebook 개발 문서
- Facebook SDKs: JavaScript, PHP, Python, iPhone, Android, C#
오픈 그래피 API와 OAuth
최근 페이스북은 기존의 REST 방식의 API를 버리고 오픈 그래프라는 오픈 프로토콜에 기반한 API로 서비스 접근 방식을 변경하였다. 또한 서비스 인증(authentication & authorization)도 오픈 표준인 OAuth2를 채용함으로써 이전보다 훨씬 표준적인 개발 방식으로 접근할 수 있는 길을 열어 놓고 있다.
특히 페이스북 자바스크립트 SDK와 FBML의 클라이언트 확장인 XFBML을 이용하게 되면 기존 페이스북 커넥트나 아이프레임 캔버스 방식의 페이스북 앱 성능도 향상시킬 수 있게 되었다.
페이스북 앱 개발 절차
페이스북 앱 개발 절차를 간략히 정리하면 아래 단계와 같다. 자세한 내용은 페이스북 개발 문서를 참조하면 된다.
- 페이스북 개발자 페이지에서 새 App을 추가한다.
- 페이스북 자바스크립트 SDK를 페이지에 추가한다.
- OAuth 액세스 토큰으로 그래프 API를 액세스한다.
- FBML/XFBML, FQL을 적절히 이용한다.
루비/레일스와 페이스북 앱
아쉽게도 아직 페이스북에서 루비/레일스 개발자들을 위한 공식 SDK는 제공하지 않는다. 그렇지만 이미 루비 커뮤니티에서는 페이스북 개발을 지원하는 많은 라이브러리와 도구들이 나와 있다. 대표적인 것은 다음과 같다.
- Facebooker: 레일즈 플러그인. 가장 오래되고 사용자 기반이 넓지만 Old REST 방식이며 다소 무겁다는 단점이 있다.
- Facebooker2: 기존 Facebooker를 새 API에 맞게 리모델링한 것으로, 그래프 API 라이브러리인 mogli를 기반으로 한다.
- sinbook: Sinatra 확장 라이브러리. 300줄 정도의 적은 코드로 되어 있으며, Old REST API 방식.
- Koala: 새 API 기반이며 커넥트와 앱 개발 모드 모두를 지원한다. 주목할 만 한 신예 라이브러리.
2010년 7월 7일 수요일
2010년 6월 17일 목요일
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
2010년 6월 7일 월요일
PHP cURL library
- cURL = Client URL
- cURL은 아래와 같은 프로토콜 등에 의해 전송되는 파일들을 위한 command line tool이다.
FTP, FTPS, HTTP, HTTPS, SCP, SFTP, TFTP, TELNET, DICT, LDAP, LDAPS, FILE
- SSL, HTTP POST, HTTP PUT, FTP uploading, HTTP form기반의 upload, proxies, cookies, user+password인증도 제공한다.
- cURL은 무료이며, 많은 운영체제에서 컴파일되고 동작하는 open software이다.
- command line tool을 이용하거나
- libCURL을 이용할 수 있다.
http://webtech.tistory.com/search/curl