まずはマンガで知ってみよう…

こっちはウソなし…
まなめのやさしい用語解説!!

 私は“ドラクエ”が大好きです。中でも一番ハマったのはドラクエ3こと『ドラゴンクエストIII そして伝説へ…』。4人の職業を選んでパーティを作り、冒険を進めるゲームでした。強い敵を次々に倒していくうちに、「自分の育て上げたパーティで友達のパーティと対戦したい」という思いが芽生え、どんどん強くなっていきました。しかし、当時のファミコンでは通信対戦もできるわけがなく、あきらめるしかありません。ゲームで決められた“枠”の中でだけ遊ぶことを、少しだけ寂しく感じました。

 これ以来、ゲームに限らず何かにハマると、「枠を超えて遊ぶこと」はできないだろうかと考えるようになりました。例えば、携帯音楽プレイヤーの再生履歴です。聴く曲の趣味が近いユーザーをグルーピングできたり、気に入ってよく聞いた曲と似ている曲を推薦できたりできそうです。これはいつの間にか、iTunesやAmazonのお薦め機能として実現されました。おいしい飲食店の情報や、おいしいレシピも、Webを介することで、直接やりとりする仲間の枠を超えて楽しめます。

 このような「枠を超えた遊び」、当初はAmazonやiTunesのように、あるWebサイトやWebサービスに閉じたものだけでした。しかし今では、「Web API」(ウェブ・エー・ピー・アイ)という仕組みを利用することで、複数のWebサイト、Webサービスを越えて「枠を超えた遊び」を実現できるようになりました。

 例えば、ブログにISBNを書くだけで本の表紙写真を載せられたり、飲食店サイトの地図をGoogle Mapで表示させたりできますね。これらはWeb APIの活用例です。このようにWeb APIを利用して、複数のサービスを組み合わせて一つのサービスを作る手法を「マッシュアップ」と呼びます。ついにはユーザー自身のブログやTwitterにWebサービスの処理結果を自動的に投稿するようなマッシュアップも現れました。

ほかのサイトにパスワードを教えたくない

 Web APIのおかげで、IDとパスワードがあれば、ブログであれ、写真サイトであれ、投稿することは技術的には容易です。でも、ユーザーからすると、パスワードを教えたら悪用される可能性があるのではと不安になります。たしかに、よく知らない新しいWebサービスに、自分が利用するほかのWebサービスのユーザーIDとパスワードを登録するのは危険に感じます。

 どんなに便利なサービスであっても、どんなに面白いサイトであっても、信用を得るまでパスワードを教えてもらえなくて利用できないのでは新しいサービスの開発者にとっても不幸です。そこで登場したのがOAuthです。「おあっす」ではなく、オース、オーオースなどと読みます。

OAuthとは、あらかじめ信頼関係を構築した
サービス間で、ユーザーの同意のもとに
ユーザーの権限を受け渡しするための仕組みです!

 OAuthを採用しているTwitterを対象に、Twitterと連携する新しいWebサービスを作ることを例に仕組みを説明します。

 まず、Twitterに新しいWebサービスの情報を登録します。次に、ユーザーが新しいWebサービスを利用しようとするときに、新しいWebサービスはTwitterの画面を介して、ユーザーにTwitter利用の承認を受けます。Twitterの画面上に、そのユーザーの権限でTwitterにアクセスする内容や、条件が提示されます。

 ユーザーがこれを承認するとTwitterは、新しいWebサービスがTwitterにあらかじめ登録した情報と、ユーザーが承認したときにTwitterが新しいWebサービスに発行する承認キー、さらにTwitterのユーザーIDをひもづけます。これにより、新しいWebサービスは、ユーザーの権限として、TwitterをWeb API経由で利用することができるようになります。

面倒な仕組みでみんな幸せ

 一見複雑な仕組みに見えますが、このようにすることで、以下のような大きなメリットがあります。なお、上の例での「新しいWebサービス」を「コンシューマ」、このコンシューマが利用したいTwitterを「サービスプロバイダ」と呼びます。

  • ユーザーはIDとパスワードをコンシューマに預けなくてよい。これにより、ユーザーはサービスプロバイダのパスワードを変更しても、パスワードを登録しているすべてのコンシューマに対して変更しなくて済む
  • ユーザーは、参照や更新といったコンシューマに与える権限を、ユーザーが信用しているサービスプロバイダの画面で確認できる
  • あるサービスプロバイダへ複数のコンシューマが接続している場合、それらコンシューマのアクセス管理(ルールの変更、削除など)をサービスプロバイダ上で一元管理することができる
  • コンシューマの開発者はユーザーのIDとパスワードを管理する手間から解放される

 こうした認可情報の委譲を行う仕様には、GoogleやYahoo!などが提供するものがありましたが、仕様がオープンなものがなかったため、OAuthが誕生することとなりました。今では、GoogleやYahoo!でも、OAuthをサポートするようになり、今後マッシュアップを実現するには欠かせない技術となっていくことでしょう。

本日のまとめ

今日のまとめ

 

著者プロフィール

きたみりゅうじ
きたみりゅうじ もとプログラマで,現フリーのライター兼イラストレーター兼まんが家…とかいう,よくわからない肩書きにて世の中を徘徊中。最新作は『[改訂3版] 図解でよくわかる ネットワークの重要用語解説』(技術評論社),『新卒はツラいよ!』(幻冬舎)など。http://www.kitajirushi.jp/
まなめ
まなめ ニュースサイト「まなめはうす」の管理人。話題のニュースを紹介したり,ブログを書いたり,Twitterでつぶやいたりと,まるでネットの住人。しかし,本業はシステムエンジニア。コボラーでもある。ASCII.jpで「まなめの『週刊Twitterなう!』」も連載中。
http://homepage1.nifty.com/maname/