SlideShare a Scribd company logo
1 of 37
Download to read offline
Daum OAuth 2.0
Daum 클라우드기술팀
이승철
2014 Daum API 부트캠프
소개
• 이승철 (tadoli)
• Daum 클라우드기술팀
• 사내외 API 플랫폼 개발/운영
사랑의 삼각 관계
열어줄까?
말까?
아내와 접촉하면 안 되고,
택배 물건을 전달하는 것만 하세요.
아내 택배 기사
주문하신 물건 배달
왔습니다.
주문
회원정보
캘린더
블로그
Daum 사용자 외부 애플리케이션
ID/Password
OAuth의 삼각 관계
권한 부여
Access Token
Daum 사용자의 비밀번호 변경 등은 하지 마시고,
회원의 고유한 ID값만 가져가세요.
OAuth 2.0 표현
Protected
Resource
자원 소유자
(Resource Owner)
클라이언트
(Client)
사용자 인증서
(User Credential)
권한 부여(Authorization)
Access Token
권한 서버(Authorization Server)
자원 서버(Resource Server)
OAuth 2.0
• RFC 6749
• 외부 애플리케이션에서 HTTP 서비스에 제한된 접근을 할 수 있
도록 권한을 부여(Authorize)하는 프레임워크
OAuth의 4가지 역할
권한 서버자원 서버
자원 소유자 클라이언트
OAuth 1.0 vs 2.0 용어
용어 1.0 2.0
사용자 User Resource Owner
클라이언트 Consumer Client
API 서버
Service Provider
Resource Server
권한 서버 Authorization Server
OAuth 1.0 vs 2.0 특징
구분 1.0 2.0
HTTPS 선택 필수
구현 복잡도
복잡

(signature 생성)
비교적 간단
보안상 안전한 환경 Server-Side 다양한 환경 지원
클라이언트 유형
기밀 클라이언트
(Confidential Client)
공개 클라이언트
(Public Client)
소스코드의
 공개
 여부
클라이언트 예
• Server-side 애플리케이션 (on 웹 서버)
• 기밀 클라이언트
• 사용자 에이전트 애플리케이션 (on 웹브라우저)
• 공개 클라이언트
• 네이티브 애플리케이션
• 공개 클라이언트
OAuth 1.0 vs 2.0
전혀 호환되지 않음!
기본적인 개념만 비슷할 뿐…
OAuth 2.0 Protocol
클라이언트
자원 소유자
권한 서버
자원 서버
(A) 권한 요청
(B) 권한 허가
(C) 권한 허가
(D) Access Token
(E) 보호된 자원 접근
with Access Token
(F) 보호된 자원
Authorization Grant
Access Resource
Demo
http://tadoli.net/login/oauth2/exam/daum_exam.html
Authorization Grant
A. 클라이언트가 자원 소유자에게 권한을 달라고 요청
B. 자원 소유자가 클라이언트에 권한 위임 허가
C. 클라이언트는 권한 서버에게 자원 소유자가 허가했
다고 알림
D. 권한 서버는 정말 사용자가 허가한게 맞는지 확인 후
Access Token을 클라이언트에 발급
• Authorization Code Grant
• Implicit Grant
• Resource Owner Password Credentials Grant
• Client Credentials Grant
Authorization Grant Type
Authorization Code Grant
• 권한 코드를 이용한 허가 방식
• 장기 접근시 사용
• Access Token 만료시, Refresh Token 으로 갱신
• 기밀 클라이언트일 때 사용
Authorization Code Grant
클라이언트
자원 소유자
권한 서버
(A) 클라이언트 식별자  리디렉션 URI
(B) 사용자 인증
(C) 권한 코드
(E) Access Token
(선택적으로 Refresh Token)
사용자
에이전트
(B)
(D)권한 코드  리디렉션 URI
(A) (C)
End Point
• https://apis.daum.net/oauth2/authorize
• https://apis.daum.net/oauth2/token
Authorization 요청
- Authorization Code Grant -
• response_type: “code” 여야 함.
• client_id: 클라이언트 식별자.
• redirect_uri: 응답시, redirect될 URI.
• scope : 접근 요청 범위
Authorization 응답
- Authorization Code Grant -
• code: 필수. 권한 서버가 생성한 권한 코드
Access Token 요청
- Authorization Code Grant -
• grant_type: “authorization_code” 여야 함.
• code : 권한 서버로부터 받은 코드값
• client_id : 클라이언트 식별자
• client_secret : 클라이언트 시크릿
• redirect_uri : redirect 될 URI
Access Token 응답
- Authorization Code Grant -
• access_token: 필수. 권한 서버가 생성한 권한 코드
• expires_in : 만료 시간(초 단위)
• refresh_token : 갱신 토큰
Access Token
• ID, Password를 대신하여 자원에 접근하기 위한 값
• 제한된 접근 권한만 갖는다.
• 만료 시간이 존재한다.
Refresh Token
• Access Token을 얻는데 사용되는 인증서(credential)
• Access Token이 발행될 때 함께 얻을 수 있음
• Access Token이 무효화(invalid)되거나 만료(expire)될
때 사용
• 클라이언트와 권한 서버에서만 알아야 되는 값. 유출되면 보
안상 위험.
• 권한서버에서의 지원은 선택적 (Daum에서는 지원함)
Implicit Grant
• 암묵적 허가 방식 - authorize 단계 후, 바로 토큰 발급
• 일시적 접근시 사용
• Access Token 만료시, 다시 Authorize
• 공개 클라이언트일 때 사용
Implicit Grant
클라이언트
자원 소유자
권한 서버
(A) 클라이언트 식별자  리디렉션 URI
(B) 사용자 인증
(C) Fragment 내 Access Token을 사용한
리디렉션 URI
(G) Access Token
(B)
(D) Fragment 없이 리디렉션 URI
(A)
Web-Hosted
Client
Resource
(E) 스크립트
(F)
사용자
에이전트
권한 요청
- Implicit Grant -
• response_type: “token” 이어야 함.
• client_id: 클라이언트 식별자
• redirect_uri: redirect될 URI
• scope : 접근 요청의 범위
엑세스 토큰 응답
- Implicit Grant -
• access_token: 권한 서버가 발행한 엑세스 토큰
• token_type: 토큰의 유형 (항상 “Bearer”)
• expires_in: 엑세스 토큰의 수명. 초 단위
• scope: 접근 요청의 범위
Access Resource
Access Resource
• access_token을 실어서 자원 서버로 API를 호출
• Bearer Token
• Authorization Request Header Field
• Form-Encoded Body Parameter
• URI Query Parameter
RFC6750
Authorization Request
Header Field
GET /resource/1 HTTP/1.1
Host: example.com
Authorization: Bearer mF_9.B5f-4.1JqM
Access Token
URI Query Parameter
GET /resource?access_token=mF_9.B5f-4.1JqM HTTP/1.1
Host: example.com
Access Token
OAuth 2.0 사용하려면..
클라이언트
개발자
제휴 신청
Client ID, Secret 발급
무분별한 Client 생성 방지 차원에서 검토 후 발급
별도의 금전적 제휴 비용을 받지는 않음
Daum OAuth 1.0
2014년 말 서비스 중지 예정

More Related Content

What's hot

이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012devCAT Studio, NEXON
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree AlgorithmMerry Merry
 
Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴IMQA
 
FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기Jongwon Kim
 
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)Peter Lubbers
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
c10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptx
c10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptxc10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptx
c10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptxSpartRaw
 
Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitGregoire Lejeune
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019Laurent Guérin
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)내훈 정
 
SOLID - Những nguyên lí sống còn
SOLID - Những nguyên lí sống cònSOLID - Những nguyên lí sống còn
SOLID - Những nguyên lí sống cònNhật Nguyễn Khắc
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략YEONG-CHEON YOU
 

What's hot (20)

이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012이승재, 실시간 HTTP 양방향 통신, NDC2012
이승재, 실시간 HTTP 양방향 통신, NDC2012
 
LockFree Algorithm
LockFree AlgorithmLockFree Algorithm
LockFree Algorithm
 
Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴Fault Tolerance 소프트웨어 패턴
Fault Tolerance 소프트웨어 패턴
 
FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기
 
gRPC
gRPC gRPC
gRPC
 
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
HTML5 Real Time and WebSocket Code Lab (SFHTML5, GTUGSF)
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
c10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptx
c10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptxc10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptx
c10-adopter-lapproche-agile-resume-theorique-6311e1a767ead.pptx
 
Retour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnitRetour d’expérience - Architecture MicroService chez BotsUnit
Retour d’expérience - Architecture MicroService chez BotsUnit
 
Protocol Buffer.ppt
Protocol Buffer.pptProtocol Buffer.ppt
Protocol Buffer.ppt
 
Qt for beginners
Qt for beginnersQt for beginners
Qt for beginners
 
Python Tutorial Part 2
Python Tutorial Part 2Python Tutorial Part 2
Python Tutorial Part 2
 
Gestion comptes bancaires Spring boot
Gestion comptes bancaires Spring bootGestion comptes bancaires Spring boot
Gestion comptes bancaires Spring boot
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019MQTT avec Mosquitto et Paho - DevFest Brest 2019
MQTT avec Mosquitto et Paho - DevFest Brest 2019
 
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이  왜 이리 힘드나요?  (Lock-free에서 Transactional Memory까지)
Ndc2014 시즌 2 : 멀티쓰레드 프로그래밍이 왜 이리 힘드나요? (Lock-free에서 Transactional Memory까지)
 
SOLID - Những nguyên lí sống còn
SOLID - Những nguyên lí sống cònSOLID - Những nguyên lí sống còn
SOLID - Những nguyên lí sống còn
 
실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략실시간 게임 서버 최적화 전략
실시간 게임 서버 최적화 전략
 

Viewers also liked

OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자Minwoo Park
 
Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum DNA
 
기획자를 위한 OAuth
기획자를 위한 OAuth기획자를 위한 OAuth
기획자를 위한 OAuthMinwoo Park
 
Daum 음성인식 API (김한샘)
Daum 음성인식 API (김한샘)Daum 음성인식 API (김한샘)
Daum 음성인식 API (김한샘)Daum DNA
 
오픈 API 활용방법(Daum 사례 중심, 윤석찬)
오픈 API 활용방법(Daum 사례 중심, 윤석찬)오픈 API 활용방법(Daum 사례 중심, 윤석찬)
오픈 API 활용방법(Daum 사례 중심, 윤석찬)Daum DNA
 
Daum 티스토리 API (천정환)
Daum 티스토리 API (천정환)Daum 티스토리 API (천정환)
Daum 티스토리 API (천정환)Daum DNA
 
Daum 검색/지도 API (이정주)
Daum 검색/지도 API (이정주)Daum 검색/지도 API (이정주)
Daum 검색/지도 API (이정주)Daum DNA
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1도성 김
 
Daum APIs: A to Z - API Meetup 2014
Daum APIs: A to Z  - API Meetup 2014Daum APIs: A to Z  - API Meetup 2014
Daum APIs: A to Z - API Meetup 2014Channy Yun
 
Progress in the API Economy - April 2014
Progress in the API Economy - April 2014Progress in the API Economy - April 2014
Progress in the API Economy - April 20143scale
 
Open API 발표자료 - 김연수
Open API 발표자료 - 김연수Open API 발표자료 - 김연수
Open API 발표자료 - 김연수Yeon Soo Kim
 
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API Gosu Ok
 
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자KTH, 케이티하이텔
 
[Hello world 오픈 세미나]oauth
[Hello world 오픈 세미나]oauth[Hello world 오픈 세미나]oauth
[Hello world 오픈 세미나]oauthNAVER D2
 
음성인식 기술 및 활용 트렌드 (2013년)
음성인식 기술 및 활용 트렌드 (2013년)음성인식 기술 및 활용 트렌드 (2013년)
음성인식 기술 및 활용 트렌드 (2013년)훈주 윤
 
[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈api[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈apiNAVER D2
 
PyCon KR 2017 orientation
PyCon KR 2017 orientationPyCon KR 2017 orientation
PyCon KR 2017 orientationMinwoo Park
 
REST API 설계
REST API 설계REST API 설계
REST API 설계Terry Cho
 

Viewers also liked (20)

OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자
 
Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)
 
기획자를 위한 OAuth
기획자를 위한 OAuth기획자를 위한 OAuth
기획자를 위한 OAuth
 
Daum 음성인식 API (김한샘)
Daum 음성인식 API (김한샘)Daum 음성인식 API (김한샘)
Daum 음성인식 API (김한샘)
 
오픈 API 활용방법(Daum 사례 중심, 윤석찬)
오픈 API 활용방법(Daum 사례 중심, 윤석찬)오픈 API 활용방법(Daum 사례 중심, 윤석찬)
오픈 API 활용방법(Daum 사례 중심, 윤석찬)
 
Daum 티스토리 API (천정환)
Daum 티스토리 API (천정환)Daum 티스토리 API (천정환)
Daum 티스토리 API (천정환)
 
Daum 검색/지도 API (이정주)
Daum 검색/지도 API (이정주)Daum 검색/지도 API (이정주)
Daum 검색/지도 API (이정주)
 
OAuth2.0
OAuth2.0OAuth2.0
OAuth2.0
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1
 
Reusable APIs
Reusable APIsReusable APIs
Reusable APIs
 
Daum APIs: A to Z - API Meetup 2014
Daum APIs: A to Z  - API Meetup 2014Daum APIs: A to Z  - API Meetup 2014
Daum APIs: A to Z - API Meetup 2014
 
Progress in the API Economy - April 2014
Progress in the API Economy - April 2014Progress in the API Economy - April 2014
Progress in the API Economy - April 2014
 
Open API 발표자료 - 김연수
Open API 발표자료 - 김연수Open API 발표자료 - 김연수
Open API 발표자료 - 김연수
 
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
 
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
 
[Hello world 오픈 세미나]oauth
[Hello world 오픈 세미나]oauth[Hello world 오픈 세미나]oauth
[Hello world 오픈 세미나]oauth
 
음성인식 기술 및 활용 트렌드 (2013년)
음성인식 기술 및 활용 트렌드 (2013년)음성인식 기술 및 활용 트렌드 (2013년)
음성인식 기술 및 활용 트렌드 (2013년)
 
[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈api[Hello world 오픈세미나]공공정보와 네이버 오픈api
[Hello world 오픈세미나]공공정보와 네이버 오픈api
 
PyCon KR 2017 orientation
PyCon KR 2017 orientationPyCon KR 2017 orientation
PyCon KR 2017 orientation
 
REST API 설계
REST API 설계REST API 설계
REST API 설계
 

Similar to Daum OAuth 2.0

Week7. sso and oauth
Week7. sso and oauthWeek7. sso and oauth
Week7. sso and oauthHansolJang5
 
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016Amazon Web Services Korea
 
API Gateway를 이용한 토큰 기반 인증 아키텍처
API Gateway를 이용한 토큰 기반 인증 아키텍처API Gateway를 이용한 토큰 기반 인증 아키텍처
API Gateway를 이용한 토큰 기반 인증 아키텍처Yoonjeong Kwon
 
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017Amazon Web Services Korea
 
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현Clova Platform
 
03. HTTPS & Restful
03. HTTPS & Restful03. HTTPS & Restful
03. HTTPS & RestfulShin Kim
 
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기Amazon Web Services Korea
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HyeonSeok Choi
 
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터Amazon Web Services Korea
 
Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현Gosu Ok
 
Kerberos Authentication - 버티카 케르베로스 연동하기
Kerberos Authentication - 버티카 케르베로스 연동하기Kerberos Authentication - 버티카 케르베로스 연동하기
Kerberos Authentication - 버티카 케르베로스 연동하기Kee Hoon Lee
 
NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101tcaesvk
 
cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급choi sungwook
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Manjong Han
 
AWS Builders - Industry Edition: DevSecOps, Application Security Enforcement
AWS Builders - Industry Edition: DevSecOps, Application Security EnforcementAWS Builders - Industry Edition: DevSecOps, Application Security Enforcement
AWS Builders - Industry Edition: DevSecOps, Application Security EnforcementAmazon Web Services Korea
 
GS Neotek aws_Amazon_CloudFrontDay2018_session4
GS Neotek aws_Amazon_CloudFrontDay2018_session4GS Neotek aws_Amazon_CloudFrontDay2018_session4
GS Neotek aws_Amazon_CloudFrontDay2018_session4GS Neotek
 

Similar to Daum OAuth 2.0 (20)

Passkey
PasskeyPasskey
Passkey
 
Week7. sso and oauth
Week7. sso and oauthWeek7. sso and oauth
Week7. sso and oauth
 
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
 
Cookie http
Cookie httpCookie http
Cookie http
 
API Gateway를 이용한 토큰 기반 인증 아키텍처
API Gateway를 이용한 토큰 기반 인증 아키텍처API Gateway를 이용한 토큰 기반 인증 아키텍처
API Gateway를 이용한 토큰 기반 인증 아키텍처
 
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
 
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
 
03. HTTPS & Restful
03. HTTPS & Restful03. HTTPS & Restful
03. HTTPS & Restful
 
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기
AWS Summit Seoul 2023 | 다중 계정 및 하이브리드 환경에서 안전한 IAM 체계 만들기
 
HTTP 완벽가이드 21장
HTTP 완벽가이드 21장HTTP 완벽가이드 21장
HTTP 완벽가이드 21장
 
게이트단의 보안
게이트단의 보안게이트단의 보안
게이트단의 보안
 
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
AWS Builders - Industry Edition: DevSecOps on AWS - 시작은 IAM 부터
 
Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현
 
Auth
AuthAuth
Auth
 
Kerberos Authentication - 버티카 케르베로스 연동하기
Kerberos Authentication - 버티카 케르베로스 연동하기Kerberos Authentication - 버티카 케르베로스 연동하기
Kerberos Authentication - 버티카 케르베로스 연동하기
 
NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101NDC 2018 디지털 신원 확인 101
NDC 2018 디지털 신원 확인 101
 
cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급cert-manager로 let's encrypt 인증서 발급
cert-manager로 let's encrypt 인증서 발급
 
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
Flask, Redis, Retrofit을 이용한 Android 로그인 서비스 구현하기
 
AWS Builders - Industry Edition: DevSecOps, Application Security Enforcement
AWS Builders - Industry Edition: DevSecOps, Application Security EnforcementAWS Builders - Industry Edition: DevSecOps, Application Security Enforcement
AWS Builders - Industry Edition: DevSecOps, Application Security Enforcement
 
GS Neotek aws_Amazon_CloudFrontDay2018_session4
GS Neotek aws_Amazon_CloudFrontDay2018_session4GS Neotek aws_Amazon_CloudFrontDay2018_session4
GS Neotek aws_Amazon_CloudFrontDay2018_session4
 

More from Daum DNA

Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)Daum DNA
 
FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표Daum DNA
 
웹접근성과 장애인 차별 금지법 - 장성민
웹접근성과 장애인 차별 금지법 - 장성민웹접근성과 장애인 차별 금지법 - 장성민
웹접근성과 장애인 차별 금지법 - 장성민Daum DNA
 
반응형 웹 디자인은 만능인가? - 신현석
반응형 웹 디자인은 만능인가? - 신현석반응형 웹 디자인은 만능인가? - 신현석
반응형 웹 디자인은 만능인가? - 신현석Daum DNA
 
Daum devday 13 [bap]
Daum devday 13  [bap]Daum devday 13  [bap]
Daum devday 13 [bap]Daum DNA
 
Daum DevDay 13-힐링이 필요해
Daum DevDay 13-힐링이 필요해Daum DevDay 13-힐링이 필요해
Daum DevDay 13-힐링이 필요해Daum DNA
 
Daum DevDay 13 - 마음의 소리
Daum DevDay 13 - 마음의 소리Daum DevDay 13 - 마음의 소리
Daum DevDay 13 - 마음의 소리Daum DNA
 
Daum DevDay 13 - OpenBrace
Daum DevDay 13 - OpenBraceDaum DevDay 13 - OpenBrace
Daum DevDay 13 - OpenBraceDaum DNA
 
Daum DevDay 13 - Ogangjang
Daum DevDay 13 - OgangjangDaum DevDay 13 - Ogangjang
Daum DevDay 13 - OgangjangDaum DNA
 
Daum DevDay 13 - Mook
Daum DevDay 13 - MookDaum DevDay 13 - Mook
Daum DevDay 13 - MookDaum DNA
 
Daum DevDay 13 - Moonlight
Daum DevDay 13 - MoonlightDaum DevDay 13 - Moonlight
Daum DevDay 13 - MoonlightDaum DNA
 
Daum DevDay 13 - In-N-Out
Daum DevDay 13 - In-N-OutDaum DevDay 13 - In-N-Out
Daum DevDay 13 - In-N-OutDaum DNA
 
Daum DevDay 13 - i-DF
Daum DevDay 13 - i-DFDaum DevDay 13 - i-DF
Daum DevDay 13 - i-DFDaum DNA
 
Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012Daum DNA
 
SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012
SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012
SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012Daum DNA
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum DNA
 
글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012
글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012
글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012Daum DNA
 
마이피플 API | Devon 2012
마이피플 API | Devon 2012마이피플 API | Devon 2012
마이피플 API | Devon 2012Daum DNA
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum DNA
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Daum DNA
 

More from Daum DNA (20)

Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
Daum의 개방형 기술 전략 및 자바 기술 로드맵(2007)
 
FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표FT직군의 현재와 미래 - 홍윤표
FT직군의 현재와 미래 - 홍윤표
 
웹접근성과 장애인 차별 금지법 - 장성민
웹접근성과 장애인 차별 금지법 - 장성민웹접근성과 장애인 차별 금지법 - 장성민
웹접근성과 장애인 차별 금지법 - 장성민
 
반응형 웹 디자인은 만능인가? - 신현석
반응형 웹 디자인은 만능인가? - 신현석반응형 웹 디자인은 만능인가? - 신현석
반응형 웹 디자인은 만능인가? - 신현석
 
Daum devday 13 [bap]
Daum devday 13  [bap]Daum devday 13  [bap]
Daum devday 13 [bap]
 
Daum DevDay 13-힐링이 필요해
Daum DevDay 13-힐링이 필요해Daum DevDay 13-힐링이 필요해
Daum DevDay 13-힐링이 필요해
 
Daum DevDay 13 - 마음의 소리
Daum DevDay 13 - 마음의 소리Daum DevDay 13 - 마음의 소리
Daum DevDay 13 - 마음의 소리
 
Daum DevDay 13 - OpenBrace
Daum DevDay 13 - OpenBraceDaum DevDay 13 - OpenBrace
Daum DevDay 13 - OpenBrace
 
Daum DevDay 13 - Ogangjang
Daum DevDay 13 - OgangjangDaum DevDay 13 - Ogangjang
Daum DevDay 13 - Ogangjang
 
Daum DevDay 13 - Mook
Daum DevDay 13 - MookDaum DevDay 13 - Mook
Daum DevDay 13 - Mook
 
Daum DevDay 13 - Moonlight
Daum DevDay 13 - MoonlightDaum DevDay 13 - Moonlight
Daum DevDay 13 - Moonlight
 
Daum DevDay 13 - In-N-Out
Daum DevDay 13 - In-N-OutDaum DevDay 13 - In-N-Out
Daum DevDay 13 - In-N-Out
 
Daum DevDay 13 - i-DF
Daum DevDay 13 - i-DFDaum DevDay 13 - i-DF
Daum DevDay 13 - i-DF
 
Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012Daum 키노트 | Devon 2012
Daum 키노트 | Devon 2012
 
SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012
SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012
SensorQL을 통한 실시간 기상 데이터 활용 | Devon 2012
 
Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012Daum내부 Hadoop 활용 사례 | Devon 2012
Daum내부 Hadoop 활용 사례 | Devon 2012
 
글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012
글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012
글로벌 CDN서비스와 웹 성능 향상 방법론 | Devon 2012
 
마이피플 API | Devon 2012
마이피플 API | Devon 2012마이피플 API | Devon 2012
마이피플 API | Devon 2012
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 
Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012Javascript everywhere - Node.js | Devon 2012
Javascript everywhere - Node.js | Devon 2012
 

Recently uploaded

데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법JMP Korea
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP Korea
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석JMP Korea
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?Jay Park
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화JMP Korea
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP Korea
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP Korea
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP Korea
 

Recently uploaded (8)

데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법데이터 분석 문제 해결을 위한 나의 JMP 활용법
데이터 분석 문제 해결을 위한 나의 JMP 활용법
 
JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례JMP를 활용한 가속열화 분석 사례
JMP를 활용한 가속열화 분석 사례
 
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
실험 설계의 평가 방법: Custom Design을 중심으로 반응인자 최적화 및 Criteria 해석
 
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
(독서광) 인간이 초대한 대형 참사 - 대형 참사가 일어날 때까지 사람들은 무엇을 하고 있었는가?
 
공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화공학 관점에서 바라본 JMP 머신러닝 최적화
공학 관점에서 바라본 JMP 머신러닝 최적화
 
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement MethodologyJMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
JMP를 활용한 전자/반도체 산업 Yield Enhancement Methodology
 
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
JMP 기능의 확장 및 내재화의 핵심 JMP-Python 소개
 
JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!JMP가 걸어온 여정, 새로운 도약 JMP 18!
JMP가 걸어온 여정, 새로운 도약 JMP 18!
 

Daum OAuth 2.0

  • 1. Daum OAuth 2.0 Daum 클라우드기술팀 이승철 2014 Daum API 부트캠프
  • 2. 소개 • 이승철 (tadoli) • Daum 클라우드기술팀 • 사내외 API 플랫폼 개발/운영
  • 3. 사랑의 삼각 관계 열어줄까? 말까? 아내와 접촉하면 안 되고, 택배 물건을 전달하는 것만 하세요. 아내 택배 기사 주문하신 물건 배달 왔습니다. 주문
  • 4. 회원정보 캘린더 블로그 Daum 사용자 외부 애플리케이션 ID/Password OAuth의 삼각 관계 권한 부여 Access Token Daum 사용자의 비밀번호 변경 등은 하지 마시고, 회원의 고유한 ID값만 가져가세요.
  • 5. OAuth 2.0 표현 Protected Resource 자원 소유자 (Resource Owner) 클라이언트 (Client) 사용자 인증서 (User Credential) 권한 부여(Authorization) Access Token 권한 서버(Authorization Server) 자원 서버(Resource Server)
  • 6. OAuth 2.0 • RFC 6749 • 외부 애플리케이션에서 HTTP 서비스에 제한된 접근을 할 수 있 도록 권한을 부여(Authorize)하는 프레임워크
  • 7. OAuth의 4가지 역할 권한 서버자원 서버 자원 소유자 클라이언트
  • 8. OAuth 1.0 vs 2.0 용어 용어 1.0 2.0 사용자 User Resource Owner 클라이언트 Consumer Client API 서버 Service Provider Resource Server 권한 서버 Authorization Server
  • 9. OAuth 1.0 vs 2.0 특징 구분 1.0 2.0 HTTPS 선택 필수 구현 복잡도 복잡
 (signature 생성) 비교적 간단 보안상 안전한 환경 Server-Side 다양한 환경 지원
  • 10. 클라이언트 유형 기밀 클라이언트 (Confidential Client) 공개 클라이언트 (Public Client) 소스코드의
  • 13. 클라이언트 예 • Server-side 애플리케이션 (on 웹 서버) • 기밀 클라이언트 • 사용자 에이전트 애플리케이션 (on 웹브라우저) • 공개 클라이언트 • 네이티브 애플리케이션 • 공개 클라이언트
  • 14. OAuth 1.0 vs 2.0 전혀 호환되지 않음! 기본적인 개념만 비슷할 뿐…
  • 15. OAuth 2.0 Protocol 클라이언트 자원 소유자 권한 서버 자원 서버 (A) 권한 요청 (B) 권한 허가 (C) 권한 허가 (D) Access Token (E) 보호된 자원 접근 with Access Token (F) 보호된 자원 Authorization Grant Access Resource
  • 17. Authorization Grant A. 클라이언트가 자원 소유자에게 권한을 달라고 요청 B. 자원 소유자가 클라이언트에 권한 위임 허가 C. 클라이언트는 권한 서버에게 자원 소유자가 허가했 다고 알림 D. 권한 서버는 정말 사용자가 허가한게 맞는지 확인 후 Access Token을 클라이언트에 발급
  • 18. • Authorization Code Grant • Implicit Grant • Resource Owner Password Credentials Grant • Client Credentials Grant Authorization Grant Type
  • 19. Authorization Code Grant • 권한 코드를 이용한 허가 방식 • 장기 접근시 사용 • Access Token 만료시, Refresh Token 으로 갱신 • 기밀 클라이언트일 때 사용
  • 20. Authorization Code Grant 클라이언트 자원 소유자 권한 서버 (A) 클라이언트 식별자 리디렉션 URI (B) 사용자 인증 (C) 권한 코드 (E) Access Token (선택적으로 Refresh Token) 사용자 에이전트 (B) (D)권한 코드 리디렉션 URI (A) (C)
  • 21. End Point • https://apis.daum.net/oauth2/authorize • https://apis.daum.net/oauth2/token
  • 22. Authorization 요청 - Authorization Code Grant - • response_type: “code” 여야 함. • client_id: 클라이언트 식별자. • redirect_uri: 응답시, redirect될 URI. • scope : 접근 요청 범위
  • 23. Authorization 응답 - Authorization Code Grant - • code: 필수. 권한 서버가 생성한 권한 코드
  • 24. Access Token 요청 - Authorization Code Grant - • grant_type: “authorization_code” 여야 함. • code : 권한 서버로부터 받은 코드값 • client_id : 클라이언트 식별자 • client_secret : 클라이언트 시크릿 • redirect_uri : redirect 될 URI
  • 25. Access Token 응답 - Authorization Code Grant - • access_token: 필수. 권한 서버가 생성한 권한 코드 • expires_in : 만료 시간(초 단위) • refresh_token : 갱신 토큰
  • 26. Access Token • ID, Password를 대신하여 자원에 접근하기 위한 값 • 제한된 접근 권한만 갖는다. • 만료 시간이 존재한다.
  • 27. Refresh Token • Access Token을 얻는데 사용되는 인증서(credential) • Access Token이 발행될 때 함께 얻을 수 있음 • Access Token이 무효화(invalid)되거나 만료(expire)될 때 사용 • 클라이언트와 권한 서버에서만 알아야 되는 값. 유출되면 보 안상 위험. • 권한서버에서의 지원은 선택적 (Daum에서는 지원함)
  • 28. Implicit Grant • 암묵적 허가 방식 - authorize 단계 후, 바로 토큰 발급 • 일시적 접근시 사용 • Access Token 만료시, 다시 Authorize • 공개 클라이언트일 때 사용
  • 29. Implicit Grant 클라이언트 자원 소유자 권한 서버 (A) 클라이언트 식별자 리디렉션 URI (B) 사용자 인증 (C) Fragment 내 Access Token을 사용한 리디렉션 URI (G) Access Token (B) (D) Fragment 없이 리디렉션 URI (A) Web-Hosted Client Resource (E) 스크립트 (F) 사용자 에이전트
  • 30. 권한 요청 - Implicit Grant - • response_type: “token” 이어야 함. • client_id: 클라이언트 식별자 • redirect_uri: redirect될 URI • scope : 접근 요청의 범위
  • 31. 엑세스 토큰 응답 - Implicit Grant - • access_token: 권한 서버가 발행한 엑세스 토큰 • token_type: 토큰의 유형 (항상 “Bearer”) • expires_in: 엑세스 토큰의 수명. 초 단위 • scope: 접근 요청의 범위
  • 33. Access Resource • access_token을 실어서 자원 서버로 API를 호출 • Bearer Token • Authorization Request Header Field • Form-Encoded Body Parameter • URI Query Parameter RFC6750
  • 34. Authorization Request Header Field GET /resource/1 HTTP/1.1 Host: example.com Authorization: Bearer mF_9.B5f-4.1JqM Access Token
  • 35. URI Query Parameter GET /resource?access_token=mF_9.B5f-4.1JqM HTTP/1.1 Host: example.com Access Token
  • 36. OAuth 2.0 사용하려면.. 클라이언트 개발자 제휴 신청 Client ID, Secret 발급 무분별한 Client 생성 방지 차원에서 검토 후 발급 별도의 금전적 제휴 비용을 받지는 않음
  • 37. Daum OAuth 1.0 2014년 말 서비스 중지 예정