SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
TwitterのOAuthってなんぞ?


山中雅俊 / 猫ロキP
Hakodate.* メンバー
事故自己紹介

• 猫ロキP / 山中雅俊
 – TwitterID: @deflis
 – 公立はこだて未来大4年生。内定しました。
• 一時期、C#でTwitterクライアント作ってました。
• 車載生とかラノベ紹介やってるニコ生主です
 – http://nico.ms/co108

     Twitterアイコン→
Twitterって?

• いわずとしれた、「つぶやきサービス」

     でもみなさん

      OAuth
        って知ってますか?
OAuth
出典: フリー百科事典『ウィキペディア(Wikipedia)』



OAuth (オーオース) は、ブレイン・クックとクリ
ス・メッシーナが始めたオープンプロトコルであ
り、デス クトップ、モバイル、Webアプリケーショ
ンなどにセキュアなAPI認可 (authorization) の
標準的手段を提供する。
端的に言えば?

• OAuthはAPIを認証するためのオープンプロト
  コル。

• TwitterでAPIを認証するのに必要だったから
  作ったプロトコル。
どんな仕掛け?

          ク
          ラ
A
          イ
P
          ア
I
          ン
提
          ト
供
          ア
者
          プ
          リ
どんな仕掛け?

    トークン取得(開発者)   ク
                  ラ
A
                  イ
P
                  ア
I
                  ン
提
                  ト
供
                  ア
者
                  プ
                  リ
どんな仕掛け?

     トークン取得(開発者)       ク
          認証           ラ
A   認証トークン取得リクエスト      イ
P                            ユーザー
       認証トークン
                       ア
I                            認証URL
           ユーザーが許可     ン
提                     PINコード
    アクセストークン取得リクエスト    ト
供                     リダイレクト
      アクセストークン         ア
者
                       プ
                       リ
どんな仕掛け?

        認証            ク
     アクセストークン
                      ラ
A
                      イ
P
                      ア
I
    APIアクセスのヘッダーに     ン
提   認証情報を付けてアクセス
                      ト
供
                      ア
者
                      プ
     ここのヘッダーがややこしい!
                      リ
ヘッダーの中身
• トークンと秘密トークン
 – 実はトークンは2つ有ります。
• アクセスしているURL(?~を除く)
• リクエストの内容
 – RFC3984準拠でURIエンコード
 – ?~とかPOSTの内容とか
• 時刻、ランダムな文字列
• 上記の内容をエンコードした署名(ハッシュ)
 – HMAC-SHA1 もしくは RSA-SHA1

以上をアルファベット順にソート
ヘッダーについて補足

• 実はこのヘッダー、トークンを取りに行くときも
  使います。
• HMAC-SHA1は.NETでハッシュ生成できます。
 – Compact Frameworkにはないので注意。
• RFC3984準拠のエンコードは.NET4から。
 – RFC3984=IPv6世代のエンコード。
 – .NET3.5まではRFC 1738 準拠しか選べない。
まとめ

• 自分で実装すると、ややこしいのでいろいろとラ
  イブラリ使った方がいいよ!
 – 実は俺も一つ作ってます。
 – http://github.com/deflis/NekoVampire.Library

• xAuthはOAuthの認証関係をある程度省略?
 – まだ時間がないので詳しくは調べてません。

• 5分だとここまでが限界?
おわり


ご静聴ありがとうございました。

Más contenido relacionado

Destacado

SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets AzureToshiya TSURU
 
Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Yuka Obu
 
Twitterを使って伝わるWEBへ
Twitterを使って伝わるWEBへTwitterを使って伝わるWEBへ
Twitterを使って伝わるWEBへChikako Kawakita
 
Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Yuka Obu
 
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみたアニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみたYoshitake Takata
 

Destacado (6)

SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets Azure
 
Twitter in Hitachiohta 2
Twitter in Hitachiohta 2Twitter in Hitachiohta 2
Twitter in Hitachiohta 2
 
Twitterを使って伝わるWEBへ
Twitterを使って伝わるWEBへTwitterを使って伝わるWEBへ
Twitterを使って伝わるWEBへ
 
Twitter in Hitachiohta 3
Twitter in Hitachiohta 3Twitter in Hitachiohta 3
Twitter in Hitachiohta 3
 
Sns 2
Sns 2Sns 2
Sns 2
 
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみたアニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
アニメの公式アカウントのフォロワー数をつぶやくTwitterボットを作ってみた
 

Similar a TwitterのOAuthってなんぞ?

FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FinTechLabs.io
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...Tatsuo Kudo
 
今更聞けないOAuth2.0
今更聞けないOAuth2.0今更聞けないOAuth2.0
今更聞けないOAuth2.0Takahiro Sato
 
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phonejunichi anno
 
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...Tatsuo Kudo
 
FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにNat Sakimura
 
OpenID Connect, December 2011
OpenID Connect, December 2011OpenID Connect, December 2011
OpenID Connect, December 2011Tatsuo Kudo
 
「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめjunichi anno
 
Financial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteFinancial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteTatsuo Kudo
 
ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2Taichi Inaba
 
Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Haniyama Wataru
 
kitproライトニングトーク
kitproライトニングトークkitproライトニングトーク
kitproライトニングトークTaichi Kimura
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するHitachi, Ltd. OSS Solution Center.
 
Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうkenji4569
 
0905xx Hybrid Memo
0905xx Hybrid Memo0905xx Hybrid Memo
0905xx Hybrid MemoRyo Ito
 
091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritouRyo Ito
 

Similar a TwitterのOAuthってなんぞ? (20)

FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
FAPI and Beyond: From an specification author's point of view #fapisum - Japa...
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
CIBA (Client Initiated Backchannel Authentication) の可能性 #authlete #api #oauth...
 
今更聞けないOAuth2.0
今更聞けないOAuth2.0今更聞けないOAuth2.0
今更聞けないOAuth2.0
 
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
.NET ラボ~開発者のためのアイデンティティテクノロジーw/ Windows Phone
 
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
FAPI (Financial-grade API) and CIBA (Client Initiated Backchannel Authenticat...
 
FAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのためにFAPI and beyond - よりよいセキュリティのために
FAPI and beyond - よりよいセキュリティのために
 
OpenID Connect, December 2011
OpenID Connect, December 2011OpenID Connect, December 2011
OpenID Connect, December 2011
 
O Auth
O AuthO Auth
O Auth
 
「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ「Windows Phone アプリ と 認証」のまとめ
「Windows Phone アプリ と 認証」のまとめ
 
Financial-grade API Hands-on with Authlete
Financial-grade API Hands-on with AuthleteFinancial-grade API Hands-on with Authlete
Financial-grade API Hands-on with Authlete
 
ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2
 
Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装
 
kitproライトニングトーク
kitproライトニングトークkitproライトニングトーク
kitproライトニングトーク
 
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
 
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開するKeycloakでFAPIに対応した高セキュリティなAPIを公開する
KeycloakでFAPIに対応した高セキュリティなAPIを公開する
 
Google App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろうGoogle App EngineでTwitterアプリを作ろう
Google App EngineでTwitterアプリを作ろう
 
0905xx Hybrid Memo
0905xx Hybrid Memo0905xx Hybrid Memo
0905xx Hybrid Memo
 
Keycloakのステップアップ認証について
Keycloakのステップアップ認証についてKeycloakのステップアップ認証について
Keycloakのステップアップ認証について
 
091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou091009 Identity Conference #6 ritou
091009 Identity Conference #6 ritou
 

Más de deflis

Heartbleed脆弱性について
Heartbleed脆弱性についてHeartbleed脆弱性について
Heartbleed脆弱性についてdeflis
 
Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話deflis
 
HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?deflis
 
北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やりますdeflis
 
Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門deflis
 
Linq To Fun
Linq To FunLinq To Fun
Linq To Fundeflis
 

Más de deflis (6)

Heartbleed脆弱性について
Heartbleed脆弱性についてHeartbleed脆弱性について
Heartbleed脆弱性について
 
Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話Cloud Core VPSにマイクラ鯖を立てた話
Cloud Core VPSにマイクラ鯖を立てた話
 
HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?HTML5でギャルゲーを作れるか?
HTML5でギャルゲーを作れるか?
 
北海道の南端で勉強会やります
北海道の南端で勉強会やります北海道の南端で勉強会やります
北海道の南端で勉強会やります
 
Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門Windows使いのための仮想マシン入門
Windows使いのための仮想マシン入門
 
Linq To Fun
Linq To FunLinq To Fun
Linq To Fun
 

TwitterのOAuthってなんぞ?