SlideShare a Scribd company logo
Twitter API
から学ぶ
OAuth
uji52
uji52
自己紹介
• uji52
• My favorite
• Twitter Client
• TweetDeck(for mac)
• ujitter(ruby script)
• 好きなOAuth2のGrant Type
• Code Grant
• Resource Owner Password
Credential Grant
2
uji52
6,7年前にAPI使って
Twitter Client作ったなー
3
uji52
ただのBasic認証やったのが
OAuthになった頃に触ったな
4
uji525
Twitter Developers
何やら見てくれがガッツリ変わってる…
uji526
REST API
なるほど、RESTの口を持ってるわけか
uji52
REST API
• Public API
• 普通にTwitter使うときに使うようなAPI
• Media API
• 画像や動画をアップロードするためのAPI
• Collections API
• ユーザに紐付かないようなリクエストができるAPI
• TON API(Twitter Object Nest)
• Twitterへメディアや様々なアセットをアップロードできるAPIらしい
• Curator API
• ストリームを放送局に提供する非公開APIらしい
7
uji52
RESTで叩いてるんなら
Authorizationヘッダでも
覗いてみるかな
8
uji529
Twitter API の OAuth
uji52
Oh… OAuth1.0a…
10
uji52
そもそもOAuthって?って人に
• セキュアにAPIを利用
• 特定の処理だけサードパーティーに認可
• でもID/PWを知られたくない
• でも簡単に利用したい
• 認可情報
• ユーザによる認可(ID/PW or Access Token/Secret)
• クライアントによる認可(Consumer Key/Secret)
• 標準仕様だし乗っちゃいなよ
11
uji5212
5種類のOAuth
uji52
5種類のOAuth
• Application-Only Authentication
• アプリケーションの情報で認可トークンを作成
• 3-Legged OAuth
• ユーザに変わって読み込み・投稿等
• PIN-Based OAuth
• ブラウザにアクセスできない端末や組み込みアプリ
• xAuth
• Basicっぽいなにがし
• OAuth Echo
• 未調査
13
調べてたら後半飽きてきた
uji52
Application-Only Authentication
• 利用する認証情報
• Consumer Key/Secret
• ユーザの情報は使わない
• OAuth2のClient Credential Grantをベース
• 使えるAPI
• ユーザのタイムラインを取得等
• 認証してなくても使えるようなAPI
14
uji5215
Application-Only Authentication
https://dev.twitter.com/oauth/application-only
単純にクライアント情報でBasic認証
uji52
3-Legged OAuth
• 利用する認証情報
• ユーザがTwitterに対してID/PW認証
• 認証に使うエンドポイント
• 3-LeggedはAuthorizationエンドポイント
(通常はAuthenticateエンドポイントらしい)
• 特徴
• 認証済みの場合も常にトークン要求画面へ
16
uji5217
Application-Only Authentication
https://dev.twitter.com/oauth/3-legged
uji52
PIN-Based OAuth
• 利用する認証情報
• 認証済みのユーザに提示されるPIN
• 認証に使うエンドポイント
• Request Tokenエンドポイント
18
uji5219
PIN-Based OAuth
https://dev.twitter.com/oauth/pin-based
uji52
xAuth
• 利用する認証情報
• ユーザのID/PW
• 特徴
• ID/PWをOAuthなトークンに変換
• クライアントは取得したID/PWはすぐに破棄すべし
• 注意
• 俺ならxAuthなクライアントは信じない
• 基本的には使わせないようにしてる
20
uji52
OAuth Echo
• 利用する認証情報
• Consumer Key/Secret
• 特徴
• サードパーティー製のアプリとの連携
• Twitter Client -> twipic的な
• 必要な情報をAuthorizationヘッダに付加
21
uji52
まとめ
• API保護にもいろいろ種類が
• 今回触れた話以外にも考えるところ有
• OAuthなフロー考えるときはユースケ
ース第一
• OAuth1.0a… 思ったより深い
• マナバネバ…
22
uji52
以上
23

More Related Content

PDF
Twitter API
PDF
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
PDF
Twitter4jハンズオン 5/1 #twtr_hack
PDF
第2.1回Twitter API勉強会 - 検索API
KEY
第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
ODP
TwitterのStreaming APIについて
PDF
WatchKitを実際にさわってみてわかったこと
PDF
watchOS 2 新機能の細かい話
Twitter API
Twitter API最新事情 - API Meetup Tokyo #1 #apijp
Twitter4jハンズオン 5/1 #twtr_hack
第2.1回Twitter API勉強会 - 検索API
第3回Twitter API勉強会 - ストリーミングAPI #twtr_hack
TwitterのStreaming APIについて
WatchKitを実際にさわってみてわかったこと
watchOS 2 新機能の細かい話

What's hot (6)

PDF
Apple Watch 間通信
PPTX
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
PPTX
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
PDF
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
PDF
Core Image Tips & Tricks in iOS 9
PDF
iOSエンジニア in ハードウェア・プロジェクト
Apple Watch 間通信
Firefox OSアーキテクチャクイックツアー - FxOSコードリーディングミートアップ#21向け追記版
中国Firefox OS勉強会 3rd 組み込み屋さんから見たFirefox OS
Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜
Core Image Tips & Tricks in iOS 9
iOSエンジニア in ハードウェア・プロジェクト
Ad

Similar to Twitter API で学ぶ OAuth (19)

PPT
Google App EngineでTwitterアプリを作ろう
PDF
OpenID Connect入門
KEY
Twitter クライアント開発のすすめ #twtr_hack
PPTX
Chrome ExtensionでSelf-Issued OpenID Provider
PDF
091009 Identity Conference #6 ritou
PDF
株式会社カサレアル 山本による講演「認証・認可におけるKeycloakの活用」の資料
PDF
TwitterのOAuthってなんぞ?
PDF
Azure AD B2CにIdPを色々と繋いでみる
PDF
実装して理解するLINE LoginとOpenID Connect入門
PPT
PPTX
QlikTips: Qlik Cloud REST APIでユーザー登録(Node.js)
PDF
OAuth2.0によるWeb APIの保護
PDF
なぜOpenID Connectが必要となったのか、その歴史的背景
PPTX
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
PPTX
LINE bot APIでできること 非エンジニア向け 20170730
PDF
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
PDF
Authentication and Authorization of The Latest Keycloak
PPTX
OAuth2基礎知識
PDF
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
Google App EngineでTwitterアプリを作ろう
OpenID Connect入門
Twitter クライアント開発のすすめ #twtr_hack
Chrome ExtensionでSelf-Issued OpenID Provider
091009 Identity Conference #6 ritou
株式会社カサレアル 山本による講演「認証・認可におけるKeycloakの活用」の資料
TwitterのOAuthってなんぞ?
Azure AD B2CにIdPを色々と繋いでみる
実装して理解するLINE LoginとOpenID Connect入門
QlikTips: Qlik Cloud REST APIでユーザー登録(Node.js)
OAuth2.0によるWeb APIの保護
なぜOpenID Connectが必要となったのか、その歴史的背景
既存RailsアプリをSSO化して、本番環境で活用した話【WESEEK Tech Conf #12】
LINE bot APIでできること 非エンジニア向け 20170730
Azure Functions 開発デプロイ環境を GitHub Codespaces で爆速に整える
Authentication and Authorization of The Latest Keycloak
OAuth2基礎知識
GitHub Actions と Azure PaaS でプルリクエストごとに環境を ~ Azure Static Web Apps と Containe...
Ad

More from Takeru Ujinawa (8)

PPTX
Etherpad-lite導入
PPTX
SHA-256を学ぼうとする
PPTX
CTFを楽しむやで
PPTX
SSL入門
PPTX
PPTX
AWS KMSと鍵の話
PPTX
Cognito User Pool
Etherpad-lite導入
SHA-256を学ぼうとする
CTFを楽しむやで
SSL入門
AWS KMSと鍵の話
Cognito User Pool

Twitter API で学ぶ OAuth