SlideShare a Scribd company logo
1 of 44
Download to read offline
기획자를 위한 OAuth,
모바일 세상의 딱풀




                 박민우PD
                 기술전략팀
                  2012/07/18
수많은 서비스들..



수많은 패스워드


             2
Password
     패스워드! 비번
PW
① 서비스별 다른 패스워드 사용
           ② 패스워드는 2주마다 꼭 교체
           ③ 패스워드는
            - 8글자 이상
            - 개인정보 관련 키워드 X
            - 특수문자사용



스마트한 김모씨




                               4
한 곳에서 ID/PW 관리/인증

OpenID authentication(인증)
2006년 11월
  어느날..
                     저것 만으로는 우리 API 제어에
                         적합하지 않은데..

나, 트위터..



우리는 인증 (Authentication)뿐만 아니라
API 사용 권한 부여(Authorization) 할 수 있는
방법도 필요해!
           Oauth =
           Authentication
           +
           Authorization
OAuth란?
1. 아임인에 트위터 비번저장 없이 발도장 트윗 날리기
2. 트위터앱에 트위터 비번저장 없이 트위터 쓰기




                 3초
사랑의 (API) 트라이앵글
       consumer
         어떤앱




                     트위터
                      API


user           service provider
An open protocol to allow secure authorization
     in a simple and standard method
     from web, mobile and desktop applications.
                                           - oauth.net


HOW?!
“인증 토큰”
        •   서비스에 패스워드 전달없이 인증
        •   필요한 기능만 부여 할 수 있음
        •   언제나 다시 권한 취소 가능
        •   패스워드 변경시에도 유효
인증 토큰? 토큰?




필요한 기능만 제한적으로 부여 할 수 있음
OAuth
API를 사용하는 서비스(consumer)에 비밀번호를 저장하지 않고
인증 토큰을 저장해 놓고 인증토큰(Access Token)으로 API 사용


인증 토큰 (Access Token)
         토큰 (Token)
           토큰 (Token)
               토큰 (Token)..
발렛파킹!
                          나, 벤츠..




인증 토큰
             1시간만 유효함
             1km만 주행가능
            트렁크는 열 수 없음
API 사용자

       오~ 새로운 트위터 앱이 나왔군
              써볼까?



    이 듣보잡 앱에
  내 트위터 비밀번호를
     저장하라고?
API 서비스 제공자

           이제 API를 완성했으니
       우리 서비스가 널리 퍼질 수 있겠지?



 우리 서비스 ID/PW 가
 듣보잡 앱에 저장되어야
    하는건가?!
How does it work?
consumer

                   어떤앱




                                  ①
                                  Consumer가
                                  Service Provider에 등록한다




                                     트위터
       ②
user   User가
                                 service provider
       Service Provider에 로그인한다
조금 더 자세히..
       consumer

                    어떤앱




                                   ①
                                   Consumer가
                                   Service Provider에 등록하고
                                   Consumer key를 받아서 저장




                                      트위터
        ②
 user   User가
                                  service provider
        Service Provider에 로그인하고
        인증토큰(Access Token)을
        Consumer에 저장한다
참고로..



        Consumer key
             =
          API key 라고 불리기도..   .
Consumer가 Service provider에 등록하기
Consumer가 Service provider에 등록완료
USER 로그인 consumer
                  어떤앱




   ①                           ②
   트위터로 로그인                    사용자를
   하겠어요-                       트위터 로그인 화면으로..
                        ④
                        Consumer에
                        인증토큰 전달



                                    트위터
              ③
  user        트위터 로그인
                                service provider
앱 사용시         consumer

               어떤앱




   트위터로 발도장
                         인증 토큰으로
   공유!
                         트위터 API 사용




                             트위터


 user
                         service provider
Oauth 프로세스
사용자의 관점
트위터 주소창으로 이동
                      로긴 안되있음



                       권한을
                       요청하는
부여할                    앱 정보
권한정보




              로그인 창
현재 로긴된
              트위터 사용자




로그인 되어있는 경우
권한 취소




https://twitter.com/settings/applications
나 개발자..



               이걸 어느 세월에 다 구현하나요?




          왠만한 언어용으로
          라이브러리 제공!
Oauth 시나리오 1
  이런..
  트위터 로그인 해놓은 내 핸드폰 분실했네!


  트위터/페이스북 설정에서
  해당 앱의 접근 권한 취소 (revoke)

  (트위터 비밀번호를 바꿀 필요 없음)
Oauth 시나리오 2
  트위터 비밀번호 노출되었어요!
  비밀번호 변경하면, 모든 앱들 다시 인증?



  비밀번호 바꿔도 API사용 서비스(consumer)에
  저장된 인증토큰은 그대로 유효
  서비스 사용 지장 없음
Oauth 시나리오 3
  트위터 로그인을 해놓은 Path 가 해킹당해서
  모든 토큰이 해커에게 노출 되었다면?




  트위터가 Path를 인증 거부한다.
  Path에 저장된 모든 트위터 토큰 인증 거부됨
아임인 핫스팟에서 바로 아임인 저장하기

             (consumer)
             아임리얼맛집



  모바일 앱 사용        Oauth를 통한
                  API접근




 유저
                          (service provider)
                          아임인
푸딩카메라에서 바로 푸딩투 저장하기

                 (consumer)
                 푸딩카메라



                      Oauth를 통한
  모바일 앱 사용            API접근




 유저     현재는 푸딩 카메라에서          (service provider)
                              푸딩투
        푸딩투 앱을 호출 방식
결국은 다 같은 OAuth

1.트위터 앱이 트위터 Oauth 사용

2.어떤 앱이 컨텐츠를 트위터로 내보내기 위해
  Oauth 사용

3.자신의 서비스를 트위터 아이디로 가입하게 open
Oauth 의 버젼들

         보안 문제가 있는 버전.
   1.0   절대로 사용하면 안됨
         (아마 spec을 찾을 수도 없겠지만..)



         안정적이고 사용해도 됨
  1.0a   Http상에서도 동작하도록 복잡한 암호화를 함
         Https가 아닌 환경에서도 동작하나.. 복잡하다


         IEFT에 의해서 계속 표준화 진행중
         3가지 인증방법 제공
   2.0    - bearer token 방식은 안정적이며 구현이 간단. SSL 필요
          - 다른 2가지는 계속 수정 중 (MAC token, SAML)
Oauth는 API 확산을 위해 필수
API 서비스 프로바이더는
모바일과 웹앱을 위해 Oauth 제공

           1.0a        2.0


(대표적인)
OAuth
서비스
프로바이더
어떤 Oauth 버전을 사용해야 하나요?

                    Oauth 2.0의 bearer token
                    방식을 쓰세요
                    (Facebook 도 쓴답니다)
              Yes
API가 https를
사용하나요?
              No
                    Oauth 1.0a를 쓰세요
                    (Twitter 방식)
Oauth 는 만병통치약인가?
Oauth가 적절하지 않은 경우
1.사람이 개입되지 않는 서비스
  서버-서버 간 통신
  유저가 개입되지 않는 API

Oauth : 3-legged                     2-legged 에 사용불가


                                     Client   Server

user                 Server
                (service provider)
          Client
       (consumer)
Oauth가 적절하지 않은 경우
2. 상업적인 수준의 보안을 요구할때
   1억원을 이체할때
   집을 계약할 때
Inspired by
“OAuth:The Big Picture” -apigee
http://youtu.be/M42ouAgPCQI

More Related Content

What's hot

Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Megan O'Keefe
 
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...Edureka!
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)NodeXperts
 
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나Amazon Web Services Korea
 
Elastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ CiscoElastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ CiscoElasticsearch
 
使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化Amazon Web Services
 
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopBob Killen
 
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...Amazon Web Services Korea
 
Plan Advanced AWS Networking Architectures - SRV323 - Chicago AWS Summit
Plan Advanced AWS Networking Architectures - SRV323 - Chicago AWS SummitPlan Advanced AWS Networking Architectures - SRV323 - Chicago AWS Summit
Plan Advanced AWS Networking Architectures - SRV323 - Chicago AWS SummitAmazon Web Services
 
[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...
[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...
[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...Amazon Web Services
 
[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送
[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送
[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送Google Cloud Platform - Japan
 
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetesrajdeep
 
使用 AWS Step Functions 開發 Serverless 服務
使用 AWS Step Functions 開發 Serverless 服務使用 AWS Step Functions 開發 Serverless 服務
使用 AWS Step Functions 開發 Serverless 服務Amazon Web Services
 
[AWS Builders 온라인 시리즈] AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트
[AWS Builders 온라인 시리즈]  AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트[AWS Builders 온라인 시리즈]  AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트
[AWS Builders 온라인 시리즈] AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 

What's hot (20)

Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)Kubernetes: A Short Introduction (2019)
Kubernetes: A Short Introduction (2019)
 
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
What Is Kubernetes | Kubernetes Introduction | Kubernetes Tutorial For Beginn...
 
Introduction to EC2 (AWS)
Introduction to EC2 (AWS)Introduction to EC2 (AWS)
Introduction to EC2 (AWS)
 
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
AWS 기반 데이터 레이크(Datalake) 구축 및 분석 - 김민성 (AWS 솔루션즈아키텍트) : 8월 온라인 세미나
 
Elastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ CiscoElastic Cloud Enterprise @ Cisco
Elastic Cloud Enterprise @ Cisco
 
使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化使用 AWS 負載平衡服務讓您的應用程式規模化
使用 AWS 負載平衡服務讓您的應用程式規模化
 
Containers - Amazon EKS
Containers - Amazon EKSContainers - Amazon EKS
Containers - Amazon EKS
 
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
 
Introduction to Kubernetes Workshop
Introduction to Kubernetes WorkshopIntroduction to Kubernetes Workshop
Introduction to Kubernetes Workshop
 
Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料Amazon VPC VPN接続設定 参考資料
Amazon VPC VPN接続設定 参考資料
 
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...
E-Commerce 를 풍성하게 해주는 AWS 기술들 - 서호석 이사, YOUNGWOO DIGITAL :: AWS Summit Seoul ...
 
Plan Advanced AWS Networking Architectures - SRV323 - Chicago AWS Summit
Plan Advanced AWS Networking Architectures - SRV323 - Chicago AWS SummitPlan Advanced AWS Networking Architectures - SRV323 - Chicago AWS Summit
Plan Advanced AWS Networking Architectures - SRV323 - Chicago AWS Summit
 
[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...
[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...
[NEW LAUNCH!] AWS Transit Gateway and Transit VPCs - Reference Architectures ...
 
[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送
[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送
[Cloud OnAir] GCP でできる Lift & Shift 〜 移行支援ツールも各種ご紹介 〜 2019年1月17日 放送
 
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
Kubernetes/ EKS - 김광영 (AWS 솔루션즈 아키텍트)
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
AWS
AWSAWS
AWS
 
Amazon CloudFront 101
Amazon CloudFront 101Amazon CloudFront 101
Amazon CloudFront 101
 
使用 AWS Step Functions 開發 Serverless 服務
使用 AWS Step Functions 開發 Serverless 服務使用 AWS Step Functions 開發 Serverless 服務
使用 AWS Step Functions 開發 Serverless 服務
 
[AWS Builders 온라인 시리즈] AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트
[AWS Builders 온라인 시리즈]  AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트[AWS Builders 온라인 시리즈]  AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트
[AWS Builders 온라인 시리즈] AWS 서비스를 활용하여 파일 스토리지 빠르게 마이그레이션 하기 - 서지혜, AWS 솔루션즈 아키텍트
 

Viewers also liked

OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자Minwoo Park
 
PyCon KR 2017 orientation
PyCon KR 2017 orientationPyCon KR 2017 orientation
PyCon KR 2017 orientationMinwoo Park
 
원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!
원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!
원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!Minwoo Park
 
[GDG DevFest Korea 2013] OSCON 발표기
[GDG DevFest Korea 2013] OSCON 발표기[GDG DevFest Korea 2013] OSCON 발표기
[GDG DevFest Korea 2013] OSCON 발표기Minwoo Park
 
An overview of open source in east asia
An overview of open source in east asiaAn overview of open source in east asia
An overview of open source in east asiaMinwoo Park
 
컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해
컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해
컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해Minwoo Park
 
개발자와 영어 Why and how
개발자와 영어 Why and how개발자와 영어 Why and how
개발자와 영어 Why and howMinwoo Park
 
Opensource realm soscon
Opensource realm sosconOpensource realm soscon
Opensource realm sosconMinwoo Park
 
모바일 광고 개론
모바일 광고 개론모바일 광고 개론
모바일 광고 개론Minwoo Park
 
PyCon Korea 2017 opening
PyCon Korea 2017 openingPyCon Korea 2017 opening
PyCon Korea 2017 openingMinwoo Park
 

Viewers also liked (11)

OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자
 
PyCon KR 2017 orientation
PyCon KR 2017 orientationPyCon KR 2017 orientation
PyCon KR 2017 orientation
 
원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!
원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!
원격근무 개발자의 자기관리 - 우리는 모두 원격근무자다!
 
[GDG DevFest Korea 2013] OSCON 발표기
[GDG DevFest Korea 2013] OSCON 발표기[GDG DevFest Korea 2013] OSCON 발표기
[GDG DevFest Korea 2013] OSCON 발표기
 
learn-python
learn-pythonlearn-python
learn-python
 
An overview of open source in east asia
An overview of open source in east asiaAn overview of open source in east asia
An overview of open source in east asia
 
컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해
컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해
컨퍼런스는 무엇으로 하는가: 스폰서쉽에 대해
 
개발자와 영어 Why and how
개발자와 영어 Why and how개발자와 영어 Why and how
개발자와 영어 Why and how
 
Opensource realm soscon
Opensource realm sosconOpensource realm soscon
Opensource realm soscon
 
모바일 광고 개론
모바일 광고 개론모바일 광고 개론
모바일 광고 개론
 
PyCon Korea 2017 opening
PyCon Korea 2017 openingPyCon Korea 2017 opening
PyCon Korea 2017 opening
 

Similar to 기획자를 위한 OAuth

[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자KTH, 케이티하이텔
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1도성 김
 
SNS API분석 : OAuth 분석
SNS API분석 : OAuth 분석SNS API분석 : OAuth 분석
SNS API분석 : OAuth 분석jw Yoon
 
안드로이드 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
 
XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용
XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용
XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용XpressEngine
 
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016Amazon Web Services Korea
 
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
 
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까NAVER D2
 
Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum DNA
 
[제타앱] 슈퍼스타M 공개자료 제타앱 201009
[제타앱] 슈퍼스타M 공개자료 제타앱 201009[제타앱] 슈퍼스타M 공개자료 제타앱 201009
[제타앱] 슈퍼스타M 공개자료 제타앱 201009Mobileteam Mk
 
빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly Webinar
빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly Webinar빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly Webinar
빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly WebinarAmazon Web Services Korea
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기GunHee Lee
 
Week7. sso and oauth
Week7. sso and oauthWeek7. sso and oauth
Week7. sso and oauthHansolJang5
 
A2 나만의 싸이월드 만들기
A2 나만의 싸이월드 만들기A2 나만의 싸이월드 만들기
A2 나만의 싸이월드 만들기NAVER D2
 
20120512 공개sw개발자대회 sk플래닛기업과제소개
20120512 공개sw개발자대회 sk플래닛기업과제소개20120512 공개sw개발자대회 sk플래닛기업과제소개
20120512 공개sw개발자대회 sk플래닛기업과제소개Lee Ji Eun
 
Certificate 와 Provisioning Profile
Certificate 와 Provisioning ProfileCertificate 와 Provisioning Profile
Certificate 와 Provisioning Profilessuser9054541
 

Similar to 기획자를 위한 OAuth (20)

[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1
 
SNS API분석 : OAuth 분석
SNS API분석 : OAuth 분석SNS API분석 : OAuth 분석
SNS API분석 : OAuth 분석
 
안드로이드 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
 
XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용
XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용
XECon2015 :: [3-3] 김찬희 & 전창완- 네이버 아이디 로그인 소개 및 Laravel 적용
 
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
모바일게임 플랫폼 쉽게 개발하기 :: 박선용 :: Gaming on AWS 2016
 
Auth
AuthAuth
Auth
 
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
Amazon Cognito를 활용한 모바일 인증 및 보안, 자원 접근 제어 기법 - AWS Summit Seoul 2017
 
Twitter Api Mashup
Twitter Api MashupTwitter Api Mashup
Twitter Api Mashup
 
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
[123]동네 커피샵도 사이렌 오더를 쓸 수 있을까
 
Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)Daum 로그인 API (함태윤)
Daum 로그인 API (함태윤)
 
Open platform/API overview
Open platform/API overviewOpen platform/API overview
Open platform/API overview
 
[제타앱] 슈퍼스타M 공개자료 제타앱 201009
[제타앱] 슈퍼스타M 공개자료 제타앱 201009[제타앱] 슈퍼스타M 공개자료 제타앱 201009
[제타앱] 슈퍼스타M 공개자료 제타앱 201009
 
빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly Webinar
빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly Webinar빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly Webinar
빠른 모바일 인증 구현을 위한 Amazon Cognito 서비스 소개 :: 윤석찬 - AWS Monthly Webinar
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기
 
Week7. sso and oauth
Week7. sso and oauthWeek7. sso and oauth
Week7. sso and oauth
 
A2 나만의 싸이월드 만들기
A2 나만의 싸이월드 만들기A2 나만의 싸이월드 만들기
A2 나만의 싸이월드 만들기
 
Skcomms openapi
Skcomms openapiSkcomms openapi
Skcomms openapi
 
20120512 공개sw개발자대회 sk플래닛기업과제소개
20120512 공개sw개발자대회 sk플래닛기업과제소개20120512 공개sw개발자대회 sk플래닛기업과제소개
20120512 공개sw개발자대회 sk플래닛기업과제소개
 
Certificate 와 Provisioning Profile
Certificate 와 Provisioning ProfileCertificate 와 Provisioning Profile
Certificate 와 Provisioning Profile
 

기획자를 위한 OAuth

  • 1. 기획자를 위한 OAuth, 모바일 세상의 딱풀 박민우PD 기술전략팀 2012/07/18
  • 3. Password 패스워드! 비번 PW
  • 4. ① 서비스별 다른 패스워드 사용 ② 패스워드는 2주마다 꼭 교체 ③ 패스워드는 - 8글자 이상 - 개인정보 관련 키워드 X - 특수문자사용 스마트한 김모씨 4
  • 5. 한 곳에서 ID/PW 관리/인증 OpenID authentication(인증)
  • 6. 2006년 11월 어느날.. 저것 만으로는 우리 API 제어에 적합하지 않은데.. 나, 트위터.. 우리는 인증 (Authentication)뿐만 아니라 API 사용 권한 부여(Authorization) 할 수 있는 방법도 필요해! Oauth = Authentication + Authorization
  • 7. OAuth란? 1. 아임인에 트위터 비번저장 없이 발도장 트윗 날리기 2. 트위터앱에 트위터 비번저장 없이 트위터 쓰기 3초
  • 8. 사랑의 (API) 트라이앵글 consumer 어떤앱 트위터 API user service provider
  • 9. An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications. - oauth.net HOW?! “인증 토큰” • 서비스에 패스워드 전달없이 인증 • 필요한 기능만 부여 할 수 있음 • 언제나 다시 권한 취소 가능 • 패스워드 변경시에도 유효
  • 10. 인증 토큰? 토큰? 필요한 기능만 제한적으로 부여 할 수 있음
  • 11. OAuth API를 사용하는 서비스(consumer)에 비밀번호를 저장하지 않고 인증 토큰을 저장해 놓고 인증토큰(Access Token)으로 API 사용 인증 토큰 (Access Token) 토큰 (Token) 토큰 (Token) 토큰 (Token)..
  • 12. 발렛파킹! 나, 벤츠.. 인증 토큰 1시간만 유효함 1km만 주행가능 트렁크는 열 수 없음
  • 13. API 사용자 오~ 새로운 트위터 앱이 나왔군 써볼까? 이 듣보잡 앱에 내 트위터 비밀번호를 저장하라고?
  • 14. API 서비스 제공자 이제 API를 완성했으니 우리 서비스가 널리 퍼질 수 있겠지? 우리 서비스 ID/PW 가 듣보잡 앱에 저장되어야 하는건가?!
  • 15. How does it work?
  • 16. consumer 어떤앱 ① Consumer가 Service Provider에 등록한다 트위터 ② user User가 service provider Service Provider에 로그인한다
  • 17. 조금 더 자세히.. consumer 어떤앱 ① Consumer가 Service Provider에 등록하고 Consumer key를 받아서 저장 트위터 ② user User가 service provider Service Provider에 로그인하고 인증토큰(Access Token)을 Consumer에 저장한다
  • 18. 참고로.. Consumer key = API key 라고 불리기도.. .
  • 21. USER 로그인 consumer 어떤앱 ① ② 트위터로 로그인 사용자를 하겠어요- 트위터 로그인 화면으로.. ④ Consumer에 인증토큰 전달 트위터 ③ user 트위터 로그인 service provider
  • 22. 앱 사용시 consumer 어떤앱 트위터로 발도장 인증 토큰으로 공유! 트위터 API 사용 트위터 user service provider
  • 25.
  • 26. 트위터 주소창으로 이동 로긴 안되있음 권한을 요청하는 부여할 앱 정보 권한정보 로그인 창
  • 27. 현재 로긴된 트위터 사용자 로그인 되어있는 경우
  • 28.
  • 29.
  • 31. 나 개발자.. 이걸 어느 세월에 다 구현하나요? 왠만한 언어용으로 라이브러리 제공!
  • 32. Oauth 시나리오 1 이런.. 트위터 로그인 해놓은 내 핸드폰 분실했네! 트위터/페이스북 설정에서 해당 앱의 접근 권한 취소 (revoke) (트위터 비밀번호를 바꿀 필요 없음)
  • 33. Oauth 시나리오 2 트위터 비밀번호 노출되었어요! 비밀번호 변경하면, 모든 앱들 다시 인증? 비밀번호 바꿔도 API사용 서비스(consumer)에 저장된 인증토큰은 그대로 유효 서비스 사용 지장 없음
  • 34. Oauth 시나리오 3 트위터 로그인을 해놓은 Path 가 해킹당해서 모든 토큰이 해커에게 노출 되었다면? 트위터가 Path를 인증 거부한다. Path에 저장된 모든 트위터 토큰 인증 거부됨
  • 35. 아임인 핫스팟에서 바로 아임인 저장하기 (consumer) 아임리얼맛집 모바일 앱 사용 Oauth를 통한 API접근 유저 (service provider) 아임인
  • 36. 푸딩카메라에서 바로 푸딩투 저장하기 (consumer) 푸딩카메라 Oauth를 통한 모바일 앱 사용 API접근 유저 현재는 푸딩 카메라에서 (service provider) 푸딩투 푸딩투 앱을 호출 방식
  • 37. 결국은 다 같은 OAuth 1.트위터 앱이 트위터 Oauth 사용 2.어떤 앱이 컨텐츠를 트위터로 내보내기 위해 Oauth 사용 3.자신의 서비스를 트위터 아이디로 가입하게 open
  • 38. Oauth 의 버젼들 보안 문제가 있는 버전. 1.0 절대로 사용하면 안됨 (아마 spec을 찾을 수도 없겠지만..) 안정적이고 사용해도 됨 1.0a Http상에서도 동작하도록 복잡한 암호화를 함 Https가 아닌 환경에서도 동작하나.. 복잡하다 IEFT에 의해서 계속 표준화 진행중 3가지 인증방법 제공 2.0 - bearer token 방식은 안정적이며 구현이 간단. SSL 필요 - 다른 2가지는 계속 수정 중 (MAC token, SAML)
  • 39. Oauth는 API 확산을 위해 필수 API 서비스 프로바이더는 모바일과 웹앱을 위해 Oauth 제공 1.0a 2.0 (대표적인) OAuth 서비스 프로바이더
  • 40. 어떤 Oauth 버전을 사용해야 하나요? Oauth 2.0의 bearer token 방식을 쓰세요 (Facebook 도 쓴답니다) Yes API가 https를 사용하나요? No Oauth 1.0a를 쓰세요 (Twitter 방식)
  • 42. Oauth가 적절하지 않은 경우 1.사람이 개입되지 않는 서비스 서버-서버 간 통신 유저가 개입되지 않는 API Oauth : 3-legged 2-legged 에 사용불가 Client Server user Server (service provider) Client (consumer)
  • 43. Oauth가 적절하지 않은 경우 2. 상업적인 수준의 보안을 요구할때 1억원을 이체할때 집을 계약할 때
  • 44. Inspired by “OAuth:The Big Picture” -apigee http://youtu.be/M42ouAgPCQI