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

DotNetOpenAuthをFacebookでうまいこと使う

Embed Size (px)

Citation preview

Page 1: 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, 昔マイコン, 複式簿記経理ww

NOKIA Lumia 710(一本審査中)

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

Visual Studio 2012 で ASP.NET MVC4プロジェクトを開始すると、入っているライブラリ(インターネットプロジェクト)

MicrosoftがオープンソースライブラリとしてThe OuterCurve Foundationに寄贈

OAuth認可を実現する

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

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

ウェブサービスで操作可能なパーミッションの取得・許可方法を定めたプロトコル

基本的にブラウザベースFacebookの情報を

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

個人情報の山

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

Facebookの友達リストが必要URL

Facebookの友達リストが必要

ABCっていうサイトが、友達リスト見たいらしいけど、許可し

て大丈夫?

Facebookにログイン

アクセストークン

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でうまいこと使う

NuGetで導入可能なライブラリ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 アクセストークン

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

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

以降はFacebook

C# SDKで。

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

ブラウザがキックしてきたURL(アクセストークン入り)を、OAuthWebSecurity.VerifyAuthentication()に渡して解析させる

解析した結果の、AuthenticationResult.ExtraData.Keysコレクションに、”accesstoken”が含まれているかどうかをチェックして取り出す

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

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

後はご自由に!

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

ていうか出来ない

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

Using OAuth Providers with MVC 4 By Tom FitzMacken

http://www.asp.net/mvc/tutorials/security/using-oauth-providers-with-mvc

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

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

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

認可サーバへのログインと承認のプロセスは、ブラウザを使用しなければならない

WebBrowserコントロールを使用して、Navigatingで最終遷移をトラップ

個人情報の山

Facebookの友達リストが必要

WebBrowser

コントロール

アクセストークン

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

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