サービス間認証の潮流とその先

Yahoo、Googleなどがweb上に展開している数々のサービスは、それぞれ便利なのだが、別のサービサーの提供しているサービスと連携させたいと思ったとしても、全く実現の手段がないというのが常だった。
アレとコレを連携できたら最高なのになあ。


Yahooが始めた新しい試みは、それに風穴を開ける第一歩かもしれない。

Yahoo Browser-Based Authentication
http://developer.yahoo.com/auth/

第3者アプリケーションから Yahoo の認証を経て、Yahoo の提供する各サービスが保持しているパーソナルデータ(例:Yahoo Photo 内の写真)にアクセスできるようにするというもの。
ただ、現時点では API が Browser-Based Authentication(以下、"BBAuth") に対応しているのは Yahoo Photo だけのようだ。今後 Yahoo Mail なども対応していく予定という。


方式自体は、Webアプリによる認証連携としては一般的な「秘密キーを共有し、タイムスタンプとともにハッシュを生成して認証先に送る。成功した場合は、トークンとハッシュをリダイレクトで返す」というもので、特に目新しいわけではない。


サービスに蓄積されたパーソナルデータは、セキュリティ上の懸念から、またユーザの囲い込みのために、外部から直接アクセスさせないというのが「常識」だったのを、Yahooがうち破ろうとしているのがこれの新しさだ。


マッシュアップといえば検索サービスと別の検索サービスを組み合わせる(拙作「アルバイト占い」もその例に漏れず)とか、あとはせいぜい地図とか、とにかく一般に公開されているデータへアクセスするだけのものでしかなかったわけだが、パーソナルデータにアクセスできるようになれば、可能性が大きく広がることは説明する必要もないだろう。


早速 Yahoo にアカウントを作って試してみたが、Yahoo Photo! から写真を撮ってきて一覧表示するというサンプルはうまく動いてくれなかった(認証はできたようなのだが、アルバムをとってこれないというエラーになる……必要な枚数写真を登録する必要があるのかな?)。

とはいえ、実際の動作シーケンスを確認することはできた。

  1. third party app. にて、例えば [login] というリンクをクリック
  2. Yahoo の認証画面が開き、ID/pass を入力
  3. BBAuth の利用規約とともに、"sample.com にアクセスを許可しますか?" といった内容の確認画面がでる。"I Agree" をクリック
  4. もとの app. に戻り、連携されたサービスが提供される

一度許可しておけば、次回からは尋ねられなくなる……のかと思いきや、毎回尋ねられる。これは今後変わっていくのではないかと思う。


なお、すでに信頼しているサイトのリストを確認したり編集するには、Yahoo の account info から Partner Accounts の "Manage Account Links" をクリックすることで行うことができる。


ここでは、今のところサイトごとに信頼しているかしていないかを設定するだけだが(対応しているのが Yahoo Photo だけだし)、今後は Yahoo のサービスごと、さらにデータごとにアクセス権を設定する必要が生じるだろう。
「パーソナルデータへのアクセス許可」をユーザへの訴求ポイントとして採用した以上、そういうきめ細かい管理機能を提供することは必然となるからだ。
Yahooが先鞭をつけたことで、他のサービサーもパーソナルデータへのアクセスを提供し始める(技術的な障壁が高くないことは既に述べた通り)。そうなれば「ちゃんと許可したいデータだけアクセスさせることができる」ということがサービスを選択する基準となる。メールのような実装に差がなくなりつつあるサービス(しかもプライバシー度が高い)なら尚更だ。


そうなったときに、アクセス権の設定は Yahoo のサービスごとに全く別々の画面・操作で行わなければならない、ということになってしまってはとても利用しにくい。サービスごとにデータの構造が違っていてはそうならざるを得ない(あるいはアクセス権設定用のAPIをサービスごとに用意するか……)。

つまり、サービスによらずデータの構造が揃っていて、かつアクセス権を設定するのに適した構造であれば、こうしたサービス公開に有利であるという想定ができる。
そんな風にサービスやデータ構造を設計するのは確かに高コストだが、サービスごとにアクセス権を設定するためのツールやAPIを設計することを考えれば、コスト差はそれほど大きいものではないだろう。


この潮流に限らず、今後サービスを起こしていく場合に、「たとえサービスの種類は異なっていても、データの構造は極力揃えておくべき」となる必然性は高まり続けるように思っている。
XMLはその基盤技術であり、マイクロフォーマットはその流れの中で「できることをできる範囲でやっておく」という位置付けとしてとらえている。