hybrid onboarding

23
Hybrid Onboarding とととと ととととととととととととと とととととととととととと Kousuke Ebihara <[email protected]>

Upload: kousuke-ebihara

Post on 15-Jan-2015

1.810 views

Category:

Technology


7 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Hybrid Onboarding

Hybrid Onboarding とは何か〜省ステップのユーザ登録と

安全なユーザ認証の実現〜Kousuke Ebihara

<[email protected]>

Page 2: Hybrid Onboarding

 本日は世界中で大注目を浴びている新技術、「 Hybrid Onboarding 」について解説します。

 今更聞けない Hybrid Onboarding のキホンから、技術的な基盤、 OpenPNE ではどうするかということについてお話しします。

Page 3: Hybrid Onboarding

Hybrid Onboarding とは

Google 先生に聞いてみた (2009/11/09 現在 )

!?

Page 4: Hybrid Onboarding

Hybrid Onboarding とは Google が 2009/11/03 に発表したユー

ザ登録・認証の仕様http://googlecode.blogspot.com/2009/11/hybrid-onboarding.html

OpenID, OAuth, Portable Contacts API を組み合わせて活用することで実現される

Plaxo, Facebook, Yahoo! でも利用されている

Page 5: Hybrid Onboarding

Hybrid Onboarding を使うとどうなるか

ユーザの登録率を改善することができる 登録のために必要なプロセスが減る 登録率を 90 % まで上昇させることができたらしい

メールアドレスの存在チェックのための確認メールが不要になる

サイトの実装によっては登録後、最初にユーザを捜し回ってフレンド関係になる手間が省ける

OpenID など活用している技術の恩恵をそのまま受けられる(パスワード入力が不要になりセキュリティ上好ましくなるなど)

Page 6: Hybrid Onboarding

Hybrid Onboarding を体感してみる

OpenPNE3 で実現してみようと頑張ったけど 5 時間近く OAuth の署名周りでハマってしまった 普通にライブラリ経由で署名付きのリクエストをして

いるだけなのだが…… http://oauth.googlecode.com/svn/code/php/ の

ライブラリが更新止まってるのでバグ抱えてる可能性もあるかもしれない

もしくは Google の OAuth 周りでなにかあるのか

※ 素の OAuth とほとんど変わらないので特に難しいことはないはずなのだが

Page 7: Hybrid Onboarding

Hybrid Onboarding を体感してみる

ということで……http://www.plaxo.com/signinで試してみてください(まずは「 Google アカウントでサインイン」を選んで登録してみよう!)

Page 8: Hybrid Onboarding

Hybrid Onboarding を体感してみる

ということで……http://www.plaxo.com/signinで試してみてください(まずは「 Google アカウントでサインイン」を選んで登録してみよう!)

Page 9: Hybrid Onboarding

Hybrid Onboarding を体感してみる

メニューから Connection を選択

Page 10: Hybrid Onboarding

Hybrid Onboarding を体感してみる

なにがどうなったか ボタンをクリックするだけでログインできるように

なった OpenID のおかげ

メールアドレスを入力したり確認メールを受け取らなくても、サイトにメールアドレスが登録された

OpenID AX のおかげ メールアドレスに紐付いた連絡先リストが自動的に

サイトに登録された OAuth (OpenID OAuth Extension) と Portable

Contacts API のおかげ

Page 11: Hybrid Onboarding

OpenID について復習 一つのサイトの OpenID を使って、他サイトの認証を

おこなうことができる技術 OpenID 2.0 から Discovery がサポートされるなど

OpenID を意識せずに利用できるようになっている

拡張プロトコルを用いることで、認証技術に付随したサービスなどを提供することができる

属性交換 OpenID Simple Registration Extension (SREG) OpenID Attribute Exchange (AX)

OP の信頼度の明示 OpenID Provider Authentication Policy Extension

(PAPE)

Page 12: Hybrid Onboarding

OAuth について復習 認証が必要とされるサイトの API を外部アプリ

ケーションから安全に利用するための技術 「ある利用者」から許可された外部アプリケー

ションが、アクセス用のトークンを使って API にアクセスする 外部アプリケーションはあらかじめサイトに申請など

の手続きを経て登録する必要がある ID/ パスワードの情報を信頼できないアプリケーション

に預ける必要がない 外部アプリケーションが不正に情報を使用した場合にも、

トークンを無効にすることで被害の拡大を防ぐことができる

Page 13: Hybrid Onboarding

OAuth について復習

http://www.openpne.jp/wp-content/uploads/2009/09/oauth_flow_ja.png

Page 14: Hybrid Onboarding

Portable Contacts API

http://code.google.com/intl/ja/apis/contacts/

連絡先リストのためのオープンな仕様 Gmail の連絡先リストはこの API を介

して入手できる Open Social でも活用する方向で進んで

る? データを入手するためには OAuth によ

る認証が必要

Page 15: Hybrid Onboarding

Hybrid Onboarding のフロー ユーザは OpenID と Contacts API を提供するメールプロバイ

ダに対して OpenID 経由でログインするためのボタンをクリック

OpenID プロトコル経由でメールアドレスをサイトに伝達する 連絡先リストにアクセスするために OpenID の OAuth

Extension を使ってアクセストークンを入手し、 Portable Contacts API を叩く

OpenID や OAuth を活用して入手できた情報に基づいてユーザ登録

連絡先リストに基づいてソーシャルグラフの構築(もしくはソーシャルグラフの構築を促す情報の構築)

→OpenID と OAuth が同時に使えることによるメリットが大きい(登録後もアクティビティの共有などに活用できる)

Page 16: Hybrid Onboarding

OpenID OAuth Extension

http://step2.googlecode.com/svn/spec/openid_oauth_extension/latest/openid_oauth_extension.html

OpenID の認証と OAuth の認可のユーザ体験は似ている → OpenID の認証画面に OAuth の認可画面を統合

ユーザには OpenID の認証画面のなかで、サービスが OAuth を利用して特定の API にアクセスすることを承諾してもらう( Plaxo で Google の OpenID を使う場合、属性交換(メールアドレス)と OAuth 経由の API アクセス(連絡先リスト)の許可を同時に得る UI になっている)

Page 17: Hybrid Onboarding

OpenID OAuth Extension

Page 18: Hybrid Onboarding

OpenID OAuth Extension

OpenID の認証画面で許可を得た場合、 OAuth での認可と同等の権限を得たと見なし、 OP から RP に戻ってきたときにいきなり認可済みのリクエストトークンを渡す

OP から渡されたリクエストトークンからアクセストークンを入手し、 API にアクセスできるようになる

Page 19: Hybrid Onboarding

OpenID OAuth Extension

不要

OpenID 認証で代替

Page 20: Hybrid Onboarding

OpenID OAuth Extension

対応方法 (OpenID 認証時 ) http://specs.openid.net/extensions/oauth

/1.0 というネームスペースを指定する

openid.oauth.consumer にコンシューマーキーを指定する

openid.oauth.scope に OAuth でアクセスしたい API の識別子を指定

Page 21: Hybrid Onboarding

OpenID OAuth Extension

対応方法 (OpenID 認証後 ) openid.oauth. request_token とコン

シューマキー、コンシューマシークレットを元に署名を生成し、アクセストークン取得用URL にリクエスト

取得できたアクセストークンを使って API にアクセス

Page 22: Hybrid Onboarding

Hybrid Onboarding と OpenPNE

OpenPNE で作られた複数の SNS 間の連携が実現しやすくなる これだけでもかなりのメリットでは?

最低限の対応はすぐにできそう OpenID も OAuth も対応済み WebAPI の仕組みを使って連絡先リストの API を実装すればよい OAuth Extension はすごく簡単だった

Hybrid Onboarding を生かす機能を実装しないと面白くない フォロー アクティビティ

OpenID のログイン時に OpenID を入力させないようにしたりとか、フィッシング対策を今以上にやるとか、連携を使ってもらいやすくするための対応はもちろんやらなければいけない

対応可能な時期は……来年春頃かな……

Page 23: Hybrid Onboarding

ご静聴ありがとうございました