Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Loading in …3
×
1 of 39

OAuth with OpenPNE3

1

Share

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

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 />

×