Upload
kouji-matsui
View
209
Download
1
Embed Size (px)
Citation preview
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(一本審査中)
Visual Studio 2012 で ASP.NET MVC4プロジェクトを開始すると、入っているライブラリ(インターネットプロジェクト)
MicrosoftがオープンソースライブラリとしてThe OuterCurve Foundationに寄贈
OAuth認可を実現する
OAuth?認可?なにそれ?おいしい?
ウェブサービスで操作可能なパーミッションの取得・許可方法を定めたプロトコル
基本的にブラウザベースFacebookの情報を
使って、楽しいサービスを提供するよ!
個人情報の山
うーん?何を利用するのかな…
Facebookの友達リストが必要URL
Facebookの友達リストが必要
ABCっていうサイトが、友達リスト見たいらしいけど、許可し
て大丈夫?
Facebookにログイン
アクセストークン
URL アクセストークン
このアクセストークンがあれば、友達リストを取得出来る
アクセストークン
OK!
しかも、Microsoftアカウント・Googleアカウント・twitterアカウントも面倒見れます
その他のOAuth対応サイトにも、最小のコード追加で対応可能
DotNetOpenAuthって凄い! ヽ(^o^)丿
実際にはASP.NETのOAuthWebSecurityクラス
が仲介します
Facebook C# SDKを知っていますか?
NuGetで導入可能なライブラリPM> Install-Package Facebook
オフィシャル?ということになっている(ホントかなぁ、Facebook Developerには記述ないんだけど)Facebookへのログイン処理
Graph APIでクエリ実行・記事/写真の投稿
おぉ、Facebookだけなら、こっちの方がいいじゃん?え?
DotNetOpenAuthもFacebook C# SDKもログイン処理を行えるワ
どちらか一方でしか使えナイの?
今はFacebookダケだけど、将来的にはtwitterやGoogleアカウントにも対応したいワ。だからDotNetOpenAuthに統一シテ。
Facebookへのクエリも当然やりたい。まさか、アナタ、ドロ臭いコードをワタシに書かせるワケ?!
OAuthの最終段階で、Facebookの認可サーバーは、「アクセストークン」なる文字列を返す
このトークンはブラウザのURL(QueryString)に乗せられて、我がサイトに到達する。
個人情報の山アクセストークン
URL アクセストークン
ここまでは、DotNetOpenAuthで処理させて…
アクセストークンをSDKに渡す
以降はFacebook
C# SDKで。
ブラウザがキックしてきたURL(アクセストークン入り)を、OAuthWebSecurity.VerifyAuthentication()に渡して解析させる
解析した結果の、AuthenticationResult.ExtraData.Keysコレクションに、”accesstoken”が含まれているかどうかをチェックして取り出す
FacebookClient.AccessTokenに、先の処理で取得したアクセストークン文字列をセット
後はご自由に!
使用上のご注意:不正アクセスを助長するものではありません
ていうか出来ない
Using OAuth Providers with MVC 4 By Tom FitzMacken
http://www.asp.net/mvc/tutorials/security/using-oauth-providers-with-mvc
WPはどこに行ったんだよ!!
認可サーバへのログインと承認のプロセスは、ブラウザを使用しなければならない
WebBrowserコントロールを使用して、Navigatingで最終遷移をトラップ
個人情報の山
Facebookの友達リストが必要
WebBrowser
コントロール
アクセストークン
ご静聴ありがとうございました m(_ _)m