Java/Language

제13회 JCO 다섯번째 발표, OAuth 기반 오픈 API활용 실전

허니몬 2013. 2. 24. 22:13

* 발표자 : 옥상훈, http://okgosu.net

* 관련자료

    * OAuth Core 1.0 Revision A : http://oauth.net/core/1.0a/

    * OAuth 2.0 : http://oauth.net/2/

* 인증이란?

* ID/PW 방식 인증의 위험성

* OAuth

* 사용자 입증에서 ID/PW 를 서드파티앱에 노출하지 않고 회원 인증할 수 있어야 함

* 서비스 제공자 입장에서는 인증한 API에 대해 권한을 부여하고 이에 따라 API를 제공할 수 있어야 함

* OAuth 버전

* 1.0 -> 1.0a -> 2.0 draft

* OAuth 적용기업

* Facebook

* Foursquare

* Daum

* NHN

* 국내는 아직 1.0a, 해외는 2.0

* OAuth 1.0a 작동방식

* 3-legged model

- User

- Consumer

- 서비스 제공자에게 컨슈머 정보를 등록해 컨슈머키(id)와 시크릿값을 발급 받아야 함

- Service Provider

* OAuth 인증 프로세스

- 써드파티앱은 회원을 서비스 제공자 화면으로 이동시켜 회원인증을 하면서 서비스 제공자로부터 접근토큰을 전달받음

- 서비스 제공자의 API를 호출할 때 접근토큰을 함께 넘겨야 사용가능

* OAuth 1.0a 개발은 서비스 제공자로부터 '접근토큰'을 발급 받기 위함

- 1단계 : 서비스 제공자에게 요청토큰을 요청함

- 2단계 : 화면을 서비스 제공자의 로그인 페이지로 이동시킴

- 3단계 : 서비스 제공자에게 접근토큰을 요청함

* OAuth 1.0a 전체 절차

* OAuth 2.0의 등장

* OAuth 1.0 의 불편한 점을 개선하기 위해 스펙논의

- 암호화, 다양한 앱 지원 등 애플리케이션에 대한 지원 강화

* OAuth 1.0 vs OAuth 2.0 비교

* OAuth 2.0 인증방식


- 3-legged

- 2-legged

* OAuth 1.0a 인증예제

* 네이버 카페 API 활용

* Consumer key, Consumer Secret 은 정확하게!

* 필수 라이브러리

- 인증 로그인화면을 띄우기 위해 WebView invisible 로 선언

* OAuth 2.0a 인증 예제

* 구글 Task API 활용

1. 인증시작

2. 회원로그인

3. 접근토큰 획득

4. API 호출

* 클라이언트 API KEY 생성

* HTTPS를 사용

* 인증서비스를 만들 때 고려사항은?

* 정리

012


    플랫폼을 지향하는 서비스들이 대거 출현하고, 이 서비스들에서 OPEN API를 제공하면서 많은 매시업Mashup 서비스들이 출현한다. 이 과정에서 사용자의 인증 절차를 제대로 파악하는 것이 중요하다.

    플랫폼 서비스를 고려하는 이들이 OAuth 인증절차에 대한 좋은 이해의 장이 되었을 것이라 생각한다.