DotNetOpenAuth を Facebook で うまいこと使う

Preview:

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

Citation preview

DotNetOpenAuth をFacebook でうまいこと使う

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

< ウマーー

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

DotNetOpenAuth ってなに?

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

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

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

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

るよ!

個人情報の山

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

Facebook の友達リストが必要URL

URLFacebook の友達リストが必要

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

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

夫?

Facebook にログイン

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

URL アクセストークン

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

来る

アクセストークン

OK!

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

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

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

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

が仲介します

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

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

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

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

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

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

個人情報の山

URLアクセストーク

URL アクセストークン

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

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

以降は Facebook C# SDK で。

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

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

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

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

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

ていうか出来ない

以下の記事が元ネタ

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

完?

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

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

個人情報の山

URLURL

Facebook の友達リストが必要

WebBrowser

コントロール

アプリから直接アクセス

アクセストークン

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

Recommended