Your SlideShare is downloading. ×
0905xx Hybrid Memo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

0905xx Hybrid Memo

1,764
views

Published on

Hybrid理解用の2009年5-6月あたりのメモ。

Hybrid理解用の2009年5-6月あたりのメモ。

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,764
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ritou
  • 2. 注意 • 本スライドは2009年5~6月ぐらいに作られたも ので最新の仕様と異なる可能性があります。
  • 3. 背景、目的
  • 4. OpenIDとOAuth • OpenID,OAuthは目的、仕様が異なる。拡張を 無視するとやってることはこんな感じ。 – OpenIDとは? ユーザー識別子を渡す – OAuthとは? ユーザーデータにアクセスするためのCredentialを渡 す
  • 5. OpenID Flow • 例 : OpenIDでログイン 1. UserはOpenID 入力 or 1 OP選択 2. RPはUserをOPにリダイレ クト 2 4 5 3. OPはUserに「RPにログイ Relying Party ンすること」について同 意を求める User 4. OPはClaimed IDとともに 3 UserをRPにリダイレクト 5. RPはUserを特定し、ログ イン処理完了 OpenID Provider
  • 6. OAuth Flow • 例 : アドレスブックデータの インポート 1 1. UserはSPを選択 2. ConsumerはUserをSPに Consumer リダイレクト 3. SPはUserに「Consumer 2 4 にアドレスブックデータを 5 シェアすること」について 同意を求める User 4. SPはUserをConsumerに リダイレクト 3 5. ConsumerがUserの代わ りにSPのアドレスブック データにアクセス Service Provider (SP)
  • 7. UXの重複 • OpenIDの認証要求とOAuthの認可要求のUX は類似 – RP=Consumerの場合は2回ユーザー同意が必要 – OP=SPの場合は同じ相手に対して2回ユーザー同 意が必要
  • 8. Hybrid Protocolの目的 • OpenIDの認証処理とOAuthの認可処理を統 合することによるUX改善 – UX改善はOpenID, OAuthにおける今年の重要な テーマ
  • 9. Hybrid Flow RP and • 例 : OpenIDでログインしアドレ Consumer スブックのデータをインポート 1. Userはインポート先の 1 Providerを選択 2. ConsumerはUserをProvider にリダイレクト 3. Provider はUserに 2 「Consumerにログインするこ 4 と、アドレスブックのデータを 5 シェアすること」について同 意を求める User 4. ProviderはUserをConsumer にリダイレクト 3 5. ConsumerはUserを特定しロ グイン処理を行い、アドレス ブックのデータにアクセスす る OP and SP
  • 10. 拡張仕様の策定 • 既存の仕様を利用しつつプロトコルを統合す るための拡張仕様を策定中 OpenID OAuth Extension (draft) • 多くの企業がOpenID,OAuthを導入している – 互いの仕様への影響をおさえる – 開発者の負荷軽減
  • 11. 使いどころ
  • 12. Plaxo and Google • Plaxo上でgmailユーザーをInviteするときに Hybrid Protocolを利用 – アカウントの紐づけにOpenIDを用いる – Contacts Listの取得を行う OpenIDを用いた新規ユーザー登録フローに OAuthで取得できる情報を導入
  • 13. MySpace • MyURL(自分のプロフィールページ)をOpenID として利用できる • Open SocialのRestful Protocolとして、OAuthに よるAPIを提供 – プロフィール情報、フレンドリスト、アクティビティ OpenID認証と同じタイミングでOAuthで提供 されるプロフィール情報にアクセス可能
  • 14. 画面比較 - Google - OpenID Hybrid
  • 15. 画面比較 - MySpace - OpenID Hybrid
  • 16. OpenID + OAuth • ユーザーの属性情報としてOAuthのリソース を利用 – Contact List APIやProfile APIをSreg,AXのような属 性取得のために利用 OAuth対応APIが増えるとOpenIDの利用も活 性化 – Gmailアドレス+コンタクトリストの組み合わせはよ く利用されている?
  • 17. OAuth + OpenID • OAuth APIをメインに利用しているサービスの ID認証をOpenID対応 – twitter,fireeagleなどソーシャル的要素を持つAPI – SP=OPのときはHybridを選択 OpenID RPへのOAuth API利用促進 – Yahoo!,Google, MySpace,...
  • 18. OpenIDホワイトリスト対応 • OpenIDの仕様 : RPの登録不要 – ホワイトリスト対応は未定義 – 特にJPではセキュリティポリシーでSreg,AXなどで 属性情報を提供できないOPが多い • OAuth : ConsumerKeyによりConsumerを識別 – 細かいアクセス制限が可能 Hybridの認証要求に含まれるConsumer Key を用いたOpenIDのホワイトリスト対応が可能
  • 19. 拡張仕様
  • 20. OpenID OAuth Extension (1) • OpenIDの拡張仕様 • OpenIDの認証要求にOAuthの認可要求を付 加する方法を定義
  • 21. OpenID OAuth Extension (2) • 追加された定義 – Combined Provider • OP かつ SP : (例)Google, MySpace – Combined Consumer • RP かつ Consumer : (例) Plaxo, smart.fm • Namespace – http://specs.openid.net/extensions/oauth/1.0
  • 22. OpenID User Relying Party Provider Initiation OpenID入力フォームor OP候補を表示 OpenID入力 or OP選択 Discovery Establishing Associations Requesting Authentication RP Discovery Login Page + Consent Page (sign in) Responding to Authentication Requests Verifying Assertions
  • 23. User Consumer Provider SP候補を表示 SPを選択 Discovery Requesting Authorization Obtaining the Request Token (Request Token) Login Page + Consent Page (to share data) Responding to Authorized Requests (Request Token, Verification Code) Obtaining the Access Token Accessing Protected Resources
  • 24. 共通の役割を持つパラメータ • 戻り先URL – OpenID : return_to – OAuth : oauth_callback Hybrid Protocolではreturn_toの値を戻り先 URLとして利用
  • 25. Combined Consumerの識別、検証 • 識別方法 – OpenID : realm/return_to – OAuth : Consumer Key • 検証方法 – OpenID : realm/return_toをDiscovery – OAuth : Consumer Keyとoauth_callbackの検証 Hybrid ProtocolではConsumer Keyと realm/return_toの検証が必要
  • 26. OAuth Request Tokenの扱い(1) • Userの同意を得たことをConsumerに伝え、 Access Tokenと交換するためのToken • 認可要求時には、Request Tokenをクエリパ ラメータとして引き回す – Consumerとのセッション管理のため – 異なるユーザーに同意させられる脆弱性が OAuth 1.0aで解消
  • 27. OAuth Request Tokenの扱い(2) • OpenIDの対象はブラウザアプリ – assoc_handle,Signatureの値でセッション管理、 遷移確認が可能 • Hybridでは事前のRequest Token取得不要 • 認可済のRequest TokenをOpenIDの認証応 答に付加
  • 28. Combined Combined User Consumer Provider Initiation Combined Provider候補を表示 Combined Providerを選択 Discovery Requesting Authentication Establishing Associations (OAuth Consumer Key) RP Discovery Login Page + Consent Page (sign in and share data) Responding to Authentication Requests + OAuth Request Token(※) Verifying Assertions Obtaining the Access Token Accessing Protected Resources
  • 29. Requesting Authentication Params • OpenID openid.ns,openid.mode,openid.claimed_id,openid.id entity,openid.assoc_handle,openid.return_to,openid .realm • OpenID OAuth Extension – openid.ns.oauth : 拡張利用を宣言 – openid.oauth.consumer : Consumer Key – openid.oauth.scope : (オプション)OAuthで利用 できる範囲を指定(Googleのみ対応)
  • 30. Responding Authentication Params • OpenID openid.ns,openid.mode,openid.claimed_id,openid.id entity,openid.assoc_handle,openid.response_nonce, openid.return_to,openid.signed,openid.sig • OpenID OAuth Extension – openid.ns.oauth : 拡張利用を宣言 – openid.oauth.request_token : 認可済のRequest Token – openid.oauth.scope : (オプション)Access Tokenを 用いてアクセスできる範囲(Googleのみ対応)
  • 31. Obtaining Access Token • OAuth : Access Token取得要求のパラメータ – 認可済のRequest Token – Request Tokenに対して一意なSecretの値は”空” • OAuth : Access Token取得応答のパラメータ – Access Token – Access Token Secret
  • 32. Combined Consumerの実装 • OpenIDの認証要求にOAuth関連パラメータを 追加 – Extension namespace – Consumer Key – Scope(option) • OpenID 認証応答の検証 – Request Tokenの取得 – Scopeの確認(option)
  • 33. Combined Providerの実装 • 拡張サポートの明示 – http://specs.openid.net/extensions/oauth/1.0 • OpenID認証ロジックにOAuthの認可ロジック を導入 – Consumer Key, Scope(option)の検証 – realm/return_toの検証 – リソースアクセスの文言追加 – Token SecretなしのRequest Token発行
  • 34. まだまだ難しいHybrid Protocol • Hybridの使いどころ – Best Practiceを手探り状態 • 各SPのAPIが独自実装 – Hybrid Protocolを導入しても、APIアクセス時の仕 様が独自なため、各Providerごとに実装が必要 – Potrable ContactsやOpenSocial Restful APIのよう な、標準的なフォーマット、スキーマが必要
  • 35. 数年後のOpenID,OAuthの状況 • Combined Consumerの増加 – 1つのアカウントでどこにでもログイン – 分散しているデータを効率的に利用 • Combined Provider同志がAPI対決 – OpenSocial RestfulAPIによるグラフ対決 – 独自サービスAPIで差異をアピール Hybridに対応しておくべし
  • 36. 関連リンク • OpenID wiki : OpenID and OAuth Hybrid Extension – http://wiki.openid.net/OpenID-and-OAuth- Hybrid-Extension • draft: OpenID OAuth Extension – http://step2.googlecode.com/svn/spec/openid_oa uth_extension/latest/openid_oauth_extension.ht ml

×