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://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
'ILoveCoffee, ILoveJava' 카테고리의 다른 글
Calendar 객체에서 주, 요일(일~토)를 이용한 날짜 변환 (2) | 2012.05.29 |
---|---|
java.util.regex.Pattern 설명 (Regular Expression > Methods of the Pattern Class) (1) | 2011.12.19 |
java의 synchronized 분석 (0) | 2010.07.14 |
java:comp/env (0) | 2009.02.24 |
자바 웹 프로그래머의 기본 (0) | 2008.06.04 |