OpenPNE3とOAuthそして、その他諸々<br />手嶋屋開発部勉強会<br />Shogo Kawahara<br />2009/08/17<br />
Tejimaya<br />8月も<br />まさかの<br />後半戦ですな<br />レポートも卒論も進めてない川原ですorz<br />
Tejimaya<br />今日は<br />OpenPNE3<br />における<br />OAuthとか<br />
Tejimaya<br />研究しますよ☆<br />
目次<br />OAuthって何だっけ?<br />復習など<br />OpenPNEにおけるOAuth<br />OAuth認証つきページ開発(概要)<br />opOpenSocialPlugin<br />まとめとこれからの展望<br /...
Tejimaya<br />注意<br />2009年8月16日<br />現在の状況でおはなしします<br />いわゆる<br />「画面は開発中のものです」<br />ってやつです。<br />ちなみに、最近は<br />自転車がほしいと思...
Tejimaya<br />さらに注意<br />今回の研究では<br />コンシューマ<br />での実装はどうやったらいいのか<br />とかは、やりません。<br />ごめんなさい。<br />
Tejimaya<br />そもそも<br />OAuthって<br />何だっけ?<br />
回想<br />http://www.slideshare.net/ebihara/oauth-1618214<br />海老原さんの勉強会資料参考<br />Tejimaya<br />
何ができるの<br />公開されているAPIを利用するサイト上で、APIを公開しているサイトのIDとかパスワードを入力しなくてもOKになる<br />Tejimaya<br />
Tejimaya<br />どいうこと?<br />
OAuthを使わないAPIアクセス<br />例<br />Tejimaya<br />API利用側<br />部長SNS<br />のIDとパスワードとか<br />教えちゃいなさい<br />プロフィール情報<br />とかほしいんだよね<...
OAuthを使った世界<br />例<br />Tejimaya<br />部長SNSから<br />Consumer Key<br />と<br />Consumer Secret <br />をもらってる<br />API提供側<br />...
Tejimaya<br />OpenPNE<br />は?<br />
Tejimaya<br />OpenPNE3.1.x<br />(trunk)<br />では実装中<br />
概要<br />管理画面側でもユーザ側でも利用登録ができる<br />どのAPIを利用できるかを細かく設定可能<br />OAuthを利用すべきモジュールはfilterを使って保護する<br />Tejimaya<br />
Consumer登録をやってみる<br />OAuthを利用するには事前のConsumer登録が必要である<br />Tejimaya<br />
Consumer登録をやってみる<br />例として http://sns.example.com/で、OpenPNE3(trunk)のホーム画面が出ているものとする。<br />opWebAPIPluginの最新版をgithubからplugi...
Consumer登録をやってみる<br />管理画面での登録をやってみます。<br />http://sns.example.com/pc_backend.php/connection<br />上がOAuthアプリケーション登録ページ<br ...
Tejimaya<br />開発中のOpenPNE3 Core <br />+ <br />GithubにあるopWebAPIPlugin<br />master<br />で右のように Using apis<br />が選択できる<br />
Tejimaya<br />←<br />登録されると<br />左の画面がでてくる<br />Consumer Keyと<br />Consumer Secretは<br />OAuthアクセスに使う大事な物です<br />漏らさないように<...
メンバー側は?<br />http://sns.example.com/connectionで同様の登録ができるようです<br />Tejimaya<br />
Tejimaya<br />ちなみに、OpenPNE3は<br />OAuth rev.Aでの新仕様である、<br />RequestToken取得時にcallback_urlを渡す<br />っていう形式を採用している<br />
Tejimaya<br />って<br />海老原さんが<br />言ってた<br />
Tejimaya<br />さて、どうやったらOAuth<br />認証付きページ(API)が<br />OpenPNE3で作れるのか<br />すごくおおざっぱにやります<br />
Tejimaya<br />1.filter<br />
Tejimaya<br />モジュールのconfig<br />の<br />filter.ymlで<br />opCheckOAuthAccessTokenFilter<br />を追加しましょう。<br />↓例<br />
Tejimaya<br />2.Routing<br />
Tejimaya<br />参考<br />opWebAPI<br />
Tejimaya<br />opAPIRouteInterface<br />(Core側)<br />を実装した<br />Routeクラスで<br />APIを<br />ルーティングルールに<br />追加する。<br />Consume...
Tejimaya<br />3.Security<br />
opCheckOAuthAccessTokenFilterはOAuthアクセスキーが正当であると、上のような処理をします。<br />また、そのConsumerが許可されたAPI名をCredentialに登録します。<br />適切なsecur...
Tejimaya<br />という感じで<br />OAuthでの認証<br />必須モジュールが<br />できあがるわけです<br />
Tejimaya<br />OAuth実装にともない<br />opOpenSocialPlugin<br />のAPIでも、OAuthを<br />使えるようにしてみました<br />(Restful API)<br />
Tejimaya<br />github<br />にある奴なら<br />多分動く<br />http://github.com/kawahara/opOpenSocialPlugin<br />
Tejimaya<br />おそらく<br />近日中に<br />新バージョン出します<br />(Doctrine対応も<br />ようやくできた)<br />
今の要改善点とか<br />認可画面をもっと詳しくしないと<br />http://www.itmedia.co.jp/news/articles/0908/10/news015.html<br />こうならないために<br />管理側で認可し...
展望とか<br />携帯版OpenSocialほしいなぁ<br />mixiはAPI利用時に認可画面なしの2-legged OAuthでOpenSocial APIにアクセスするっぽい(もちろん事前にユーザ認可した上)<br />Tejimay...
Tejimaya<br />というわけで<br />OpenPNE3+ OAuth<br />是非ともよろしくお願いします<br />
Upcoming SlideShare
Loading in …5
×

OAuth with OpenPNE3

3,998 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,998
On SlideShare
0
From Embeds
0
Number of Embeds
1,262
Actions
Shares
0
Downloads
9
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

OAuth with OpenPNE3

  1. 1. OpenPNE3とOAuthそして、その他諸々<br />手嶋屋開発部勉強会<br />Shogo Kawahara<br />2009/08/17<br />
  2. 2. Tejimaya<br />8月も<br />まさかの<br />後半戦ですな<br />レポートも卒論も進めてない川原ですorz<br />
  3. 3. Tejimaya<br />今日は<br />OpenPNE3<br />における<br />OAuthとか<br />
  4. 4. Tejimaya<br />研究しますよ☆<br />
  5. 5. 目次<br />OAuthって何だっけ?<br />復習など<br />OpenPNEにおけるOAuth<br />OAuth認証つきページ開発(概要)<br />opOpenSocialPlugin<br />まとめとこれからの展望<br />Tejimaya<br />
  6. 6. Tejimaya<br />注意<br />2009年8月16日<br />現在の状況でおはなしします<br />いわゆる<br />「画面は開発中のものです」<br />ってやつです。<br />ちなみに、最近は<br />自転車がほしいと思っている<br />
  7. 7. Tejimaya<br />さらに注意<br />今回の研究では<br />コンシューマ<br />での実装はどうやったらいいのか<br />とかは、やりません。<br />ごめんなさい。<br />
  8. 8. Tejimaya<br />そもそも<br />OAuthって<br />何だっけ?<br />
  9. 9. 回想<br />http://www.slideshare.net/ebihara/oauth-1618214<br />海老原さんの勉強会資料参考<br />Tejimaya<br />
  10. 10. 何ができるの<br />公開されているAPIを利用するサイト上で、APIを公開しているサイトのIDとかパスワードを入力しなくてもOKになる<br />Tejimaya<br />
  11. 11. Tejimaya<br />どいうこと?<br />
  12. 12. OAuthを使わないAPIアクセス<br />例<br />Tejimaya<br />API利用側<br />部長SNS<br />のIDとパスワードとか<br />教えちゃいなさい<br />プロフィール情報<br />とかほしいんだよね<br />API提供側<br />部長SNS<br />IDとパスワードで<br />その人のプロフィール情報<br />とか投げるよ<br />ここに部長SNSの<br />IDとパスワードが<br />保存されちゃう?<br />なにそれ怖い<br />
  13. 13. OAuthを使った世界<br />例<br />Tejimaya<br />部長SNSから<br />Consumer Key<br />と<br />Consumer Secret <br />をもらってる<br />API提供側<br />部長SNS<br />OAuthServer<br />API利用側<br />Consumer<br />部長SNSにAPI<br />利用登録済み<br />②リクエストトークンくれ<br />③ほらよ<br />⑤認証OK<br />でコールバック<br />⑥アクセス<br />トークンよこせ<br />⑦アイヨー<br />⑧アクセストークン使って<br />APIアクセス<br />①APIを利用する展開になる<br />④リクエストトークン<br />使って認証ページへ<br />リダイレクトゥ<br />*Webアプリでの利用<br />を想定<br />
  14. 14. Tejimaya<br />OpenPNE<br />は?<br />
  15. 15. Tejimaya<br />OpenPNE3.1.x<br />(trunk)<br />では実装中<br />
  16. 16. 概要<br />管理画面側でもユーザ側でも利用登録ができる<br />どのAPIを利用できるかを細かく設定可能<br />OAuthを利用すべきモジュールはfilterを使って保護する<br />Tejimaya<br />
  17. 17. Consumer登録をやってみる<br />OAuthを利用するには事前のConsumer登録が必要である<br />Tejimaya<br />
  18. 18. Consumer登録をやってみる<br />例として http://sns.example.com/で、OpenPNE3(trunk)のホーム画面が出ているものとする。<br />opWebAPIPluginの最新版をgithubからpluginsディレクトリにチェックアウトする必要がある。<br />Tejimaya<br />
  19. 19. Consumer登録をやってみる<br />管理画面での登録をやってみます。<br />http://sns.example.com/pc_backend.php/connection<br />上がOAuthアプリケーション登録ページ<br />Tejimaya<br />
  20. 20. Tejimaya<br />開発中のOpenPNE3 Core <br />+ <br />GithubにあるopWebAPIPlugin<br />master<br />で右のように Using apis<br />が選択できる<br />
  21. 21. Tejimaya<br />←<br />登録されると<br />左の画面がでてくる<br />Consumer Keyと<br />Consumer Secretは<br />OAuthアクセスに使う大事な物です<br />漏らさないように<br />Request token URL<br />Access token URL<br />Authorize URL<br />は各種トークン生成や<br />認証ページのURLです<br />←<br />これは非公開なサーバのものなので<br />ご安心を<br />
  22. 22. メンバー側は?<br />http://sns.example.com/connectionで同様の登録ができるようです<br />Tejimaya<br />
  23. 23. Tejimaya<br />ちなみに、OpenPNE3は<br />OAuth rev.Aでの新仕様である、<br />RequestToken取得時にcallback_urlを渡す<br />っていう形式を採用している<br />
  24. 24. Tejimaya<br />って<br />海老原さんが<br />言ってた<br />
  25. 25. Tejimaya<br />さて、どうやったらOAuth<br />認証付きページ(API)が<br />OpenPNE3で作れるのか<br />すごくおおざっぱにやります<br />
  26. 26. Tejimaya<br />1.filter<br />
  27. 27. Tejimaya<br />モジュールのconfig<br />の<br />filter.ymlで<br />opCheckOAuthAccessTokenFilter<br />を追加しましょう。<br />↓例<br />
  28. 28. Tejimaya<br />2.Routing<br />
  29. 29. Tejimaya<br />参考<br />opWebAPI<br />
  30. 30. Tejimaya<br />opAPIRouteInterface<br />(Core側)<br />を実装した<br />Routeクラスで<br />APIを<br />ルーティングルールに<br />追加する。<br />Consumer登録時に<br />許可する<br />API一覧に<br />getAPIName() & <br />getAPICaption()<br />で取得された内容が出るようになる<br />opWebAPIPluginでは<br />opWebAPIRoute<br />がいる<br />
  31. 31. Tejimaya<br />3.Security<br />
  32. 32. opCheckOAuthAccessTokenFilterはOAuthアクセスキーが正当であると、上のような処理をします。<br />また、そのConsumerが許可されたAPI名をCredentialに登録します。<br />適切なsecurity.ymlの設定が必要<br />Tejimaya<br />
  33. 33. Tejimaya<br />という感じで<br />OAuthでの認証<br />必須モジュールが<br />できあがるわけです<br />
  34. 34. Tejimaya<br />OAuth実装にともない<br />opOpenSocialPlugin<br />のAPIでも、OAuthを<br />使えるようにしてみました<br />(Restful API)<br />
  35. 35. Tejimaya<br />github<br />にある奴なら<br />多分動く<br />http://github.com/kawahara/opOpenSocialPlugin<br />
  36. 36. Tejimaya<br />おそらく<br />近日中に<br />新バージョン出します<br />(Doctrine対応も<br />ようやくできた)<br />
  37. 37. 今の要改善点とか<br />認可画面をもっと詳しくしないと<br />http://www.itmedia.co.jp/news/articles/0908/10/news015.html<br />こうならないために<br />管理側で認可したか、メンバー側で認可したか簡単にもっと簡単に取得できる仕組みが必要?<br />Tejimaya<br />
  38. 38. 展望とか<br />携帯版OpenSocialほしいなぁ<br />mixiはAPI利用時に認可画面なしの2-legged OAuthでOpenSocial APIにアクセスするっぽい(もちろん事前にユーザ認可した上)<br />Tejimaya<br />
  39. 39. Tejimaya<br />というわけで<br />OpenPNE3+ OAuth<br />是非ともよろしくお願いします<br />

×