dotnetopenauth を facebook で うまいこと使う

15
DotNetOpenAuth を Facebook ををををををを In ををををををををを 2013/07/27 @kekyo2 をををを

Upload: kuame-ochoa

Post on 01-Jan-2016

38 views

Category:

Documents


4 download

DESCRIPTION

DotNetOpenAuth を Facebook で うまいこと使う. < ウマーー. In まどべん よっかいち 2013/07/27 @kekyo2. 自己紹介. けきょ、 とか。 ロードバイクで走ってます。 会社やってます。 主に Windows 。 C#, C++/CLI, ATL, C++0x, x86/x64 アセンブラ , WDM, Azure, TFS, OpenCV , Geo, JNI, 鯖管理 , MCP 少々 , 自作 PC, 昔マイコン , 複式簿記経理 ww NOKIA Lumia 710 (一本審査中). - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: DotNetOpenAuth を Facebook で うまいこと使う

DotNetOpenAuth をFacebook でうまいこと使う

In まどべんよっかいち 2013/07/27@kekyo2

< ウマーー

Page 2: DotNetOpenAuth を Facebook で うまいこと使う

自己紹介けきょ、とか。ロードバイクで走ってます。会社やってます。主に Windows 。 C#, C++/CLI, ATL, C++0x, x86/x64 アセンブラ , WDM, Azure, TFS, OpenCV, Geo, JNI, 鯖管理 , MCP 少々 , 自作PC, 昔マイコン , 複式簿記経理 wwNOKIA Lumia 710 (一本審査中)

Page 3: DotNetOpenAuth を Facebook で うまいこと使う

DotNetOpenAuth ってなに?

Visual Studio 2012 で ASP.NET MVC4プロジェクトを開始すると、入っているライブラリ(インターネットプロジェクト)Microsoft がオープンソースライブラリとして The OuterCurve Foundation に寄贈OAuth 認可を実現する

OAuth ?認可?なにそれ?おいしい?

Page 4: DotNetOpenAuth を Facebook で うまいこと使う

What’s OAuth? How OAuth?ウェブサービスで操作可能なパーミッションの取得・許可方法を定めたプロトコル基本的にブラウザベース Facebook の情報

を使って、楽しいサービスを提供す

るよ!

個人情報の山

うーん?何を利用するのかな…

Facebook の友達リストが必要URL

URLFacebook の友達リストが必要

ABC っていうサイトが、友達リスト

見たいらしいけど、許可して大丈

夫?

Facebook にログイン

ブラウザURLアクセストーク

URL アクセストークン

このアクセストークンがあれば、友達リストを取得出

来る

アクセストークン

OK!

Page 5: DotNetOpenAuth を Facebook で うまいこと使う

雑多なやり取りを半ば自動でやってくれる

しかも、 Microsoft アカウント・ Google アカウント・ twitter アカウントも面倒見れますその他の OAuth 対応サイトにも、最小のコード追加で対応可能

DotNetOpenAuth って凄い! ヽ (^o^)丿

実際には ASP.NET のOAuthWebSecurity クラス

が仲介します

Page 6: DotNetOpenAuth を Facebook で うまいこと使う

ところで。Facebook C# SDK を知っていますか?

Page 7: DotNetOpenAuth を Facebook で うまいこと使う

Facebook C# SDKNuGet で導入可能なライブラリPM> Install-Package Facebookオフィシャル?ということになっている(ホントかなぁ、 Facebook Developer には記述ないんだけど)Facebook へのログイン処理Graph API でクエリ実行・記事 / 写真の投稿

おぉ、 Facebook だけなら、こっちの方がいいじゃん?え?

Page 8: DotNetOpenAuth を Facebook で うまいこと使う

ログイン処理をどうするか?DotNetOpenAuth も Facebook C# SDK もログイン処理を行えるワどちらか一方でしか使えナイの?今は Facebook ダケだけど、将来的にはtwitter や Google アカウントにも対応したいワ。だから DotNetOpenAuth に統一シテ。

Facebook へのクエリも当然やりたい。まさか、アナタ、ドロ臭いコードをワタシに書かせるワケ?!

Page 9: DotNetOpenAuth を Facebook で うまいこと使う

ポイントは、アクセストークン。OAuth の最終段階で、 Facebook の認可サーバーは、「アクセストークン」なる文字列を返すこのトークンはブラウザのURL ( QueryString )に乗せられて、我がサイトに到達する。

個人情報の山

URLアクセストーク

URL アクセストークン

ここまでは、 DotNetOpenAuth で処理させて

アクセストークンをSDK に渡す

以降は Facebook C# SDK で。

Page 10: DotNetOpenAuth を Facebook で うまいこと使う

アクセストークンを取り出す(DotNetOpenAuth)

ブラウザがキックしてきた URL (アクセストークン入り)を、 OAuthWebSecurity.VerifyAuthentication()に渡して解析させる解析した結果の、 AuthenticationResult.ExtraData.Keys コレクションに、” accesstoken” が含まれているかどうかをチェックして取り出す

Page 11: DotNetOpenAuth を Facebook で うまいこと使う

アクセストークンを使う(Facebook C# SDK)

FacebookClient.AccessToken に、先の処理で取得したアクセストークン文字列をセット後はご自由に!

使用上のご注意:不正アクセスを助長するものではありません

ていうか出来ない

Page 12: DotNetOpenAuth を Facebook で うまいこと使う

以下の記事が元ネタ

Using OAuth Providers with MVC 4 By Tom FitzMackenhttp://www.asp.net/mvc/tutorials/security/using-oauth-providers-with-mvc

Page 13: DotNetOpenAuth を Facebook で うまいこと使う

完?

WPはどこに行ったんだよ!!

Page 14: DotNetOpenAuth を Facebook で うまいこと使う

アプリで OAuth する場合認可サーバへのログインと承認のプロセスは、ブラウザを使用しなければならないWebBrowser コントロールを使用して、 Navigating で最終遷移をトラップ

個人情報の山

URLURL

Facebook の友達リストが必要

WebBrowser

コントロール

アプリから直接アクセス

アクセストークン

Page 15: DotNetOpenAuth を Facebook で うまいこと使う

ご静聴ありがとうございました m(_ _)m