Mais conteúdo relacionado
Semelhante a TwitterのOAuthってなんぞ? (20)
TwitterのOAuthってなんぞ?
- 2. 事故自己紹介
• 猫ロキP / 山中雅俊
– TwitterID: @deflis
– 公立はこだて未来大4年生。内定しました。
• 一時期、C#でTwitterクライアント作ってました。
• 車載生とかラノベ紹介やってるニコ生主です
– http://nico.ms/co108
Twitterアイコン→
- 6. どんな仕掛け?
ク
ラ
A
イ
P
ア
I
ン
提
ト
供
ア
者
プ
リ
- 7. どんな仕掛け?
トークン取得(開発者) ク
ラ
A
イ
P
ア
I
ン
提
ト
供
ア
者
プ
リ
- 8. どんな仕掛け?
トークン取得(開発者) ク
認証 ラ
A 認証トークン取得リクエスト イ
P ユーザー
認証トークン
ア
I 認証URL
ユーザーが許可 ン
提 PINコード
アクセストークン取得リクエスト ト
供 リダイレクト
アクセストークン ア
者
プ
リ
- 9. どんな仕掛け?
認証 ク
アクセストークン
ラ
A
イ
P
ア
I
APIアクセスのヘッダーに ン
提 認証情報を付けてアクセス
ト
供
ア
者
プ
ここのヘッダーがややこしい!
リ
- 10. ヘッダーの中身
• トークンと秘密トークン
– 実はトークンは2つ有ります。
• アクセスしているURL(?~を除く)
• リクエストの内容
– RFC3984準拠でURIエンコード
– ?~とかPOSTの内容とか
• 時刻、ランダムな文字列
• 上記の内容をエンコードした署名(ハッシュ)
– HMAC-SHA1 もしくは RSA-SHA1
以上をアルファベット順にソート
- 11. ヘッダーについて補足
• 実はこのヘッダー、トークンを取りに行くときも
使います。
• HMAC-SHA1は.NETでハッシュ生成できます。
– Compact Frameworkにはないので注意。
• RFC3984準拠のエンコードは.NET4から。
– RFC3984=IPv6世代のエンコード。
– .NET3.5まではRFC 1738 準拠しか選べない。
- 12. まとめ
• 自分で実装すると、ややこしいのでいろいろとラ
イブラリ使った方がいいよ!
– 実は俺も一つ作ってます。
– http://github.com/deflis/NekoVampire.Library
• xAuthはOAuthの認証関係をある程度省略?
– まだ時間がないので詳しくは調べてません。
• 5分だとここまでが限界?