(1/2)いまWebの世界では、さまざまなWebサービスが提供するプラットフォームと、サードパーティが提供するアプリケーションがAPIを中心に結び付き、一種の「APIエコノミー」を形成しています。この連載では、そこで重要な役割を果たす「デジタル・アイデンティティ」について理解を深めていきます。});この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。JapanでエバンジェリストをしているNovです。Identity)」にかかわる技術について紹介していきます。デジタルID最新動向2017年時点の最新情報をまとめた新連載「デジタルID最新動向」を開始しました。新規連載はこちらです。APIエコノミー時代のデジタル・アイデンティティ世界中で9億人のユーザーを抱える「Facebook」や5億人のユーザーを持つ「Twitter」など、巨大なソーシャルグラフを持つサービスが、日々その存在感を増しています。日本でも、グリーやモバゲーなどがそれぞれソーシャルゲームプラットフォームを公開し、国内に一気に巨大なソーシャルゲーム市場を作り上げました。最近では、ユーザー数が5000万人を突破し、プラットフォームを公開した「LINE」も記憶に新しいところです。これらのサービスはプラットフォーム公開に際して、それぞれのサービス機能を「API」として外部に提供しています。APIを公開することで、外部デベロッパーが新たなサービスを提供し、それが結果的に、ユーザーにより多くの価値を提供することにつながっていくのです。プラットフォームとその上で提供されるサードパーティのアプリケーションが作り出す市場は、APIを中心にした「APIエコノミー」とも表現できるでしょう。このAPIエコノミーでは、1つのサービスが複数のプラットフォームと連携するといった状況も当然出てきます。いった状況では、各プラットフォームの差別化要因となる部分以外は、標準化されたプロトコルを可能な限り導入し、API連携にかかるサードパーティデベロッパーのコストを抑えることが重要になります。個人的には、今後、APIエコノミーがユーザーのその時点でのコンテキストを理解し(Identity、Sensing......)任意の適切なサービスを発見し(Discovery)それを動的に連携させる(OAuth、OpenSocial......)といった方向に進むにつれて、“デジタル・アイデンティティ”の重要性が増していくのではないかと思います。この“デジタル・アイデンティティ”は、好むと好まざるとにかかわらず、皆さんがWebの世界で生きていく上で非常に重要な概念です。この言葉自体を理解するのはなかなか大変です。この連載を通じてデジタル・アイデンティティについての理解が徐々に深まればと思います(注1)。デジタル・アイデンティティ自体を理解していなくても、各要素技術について理解できるように書いていくつもりです。注1:デジタル・アイデンティティ自体に興味を持ち、より深く理解したいという場合には、以下の資料をご覧ください。Identityhttp://shop.oreilly.com/product/9780596008789.doさて、連載の第1回と第2回は、ユーザーの認可の下でAPIアクセスを行う場合に必要になる「OAuth」というプロトコルについて紹介します。OAuthとはどういうプロトコルかいままでにFacebookやTwitter、Googleなどが提供するAPIを使ってサービスを開発したことがあるデベロッパーならば、何らかの形でOAuthに触れたことがあるでしょう。IDでのログインは、OAuthではなくOpenIDというプロトコルを用いていますが、それについては次回触れます)。ひと言でいうとOAuthは、あるサービス(サービスA)上にエンドユーザーが所有するリソースや、そのエンドユーザーがアクセス権限を持つサービスAの各種機能に対し、エンドユーザーの許可を受けたほかのサービス(サービスB)がアクセスするためにエンドユーザーがサービスBに対して許可を与えサービスBがサービスAの提供するAPIにアクセスする際に許可を受けていることを証明するという一連のフローを、セキュアに実現することを目的とした「アクセス権限の付与」のためのプロトコルです。以下に2つほど、もう少し具体的な例を挙げてみましょう。■例1:Instagramで共有した写真をFacebookやTwitterにも投稿Instagramをはじめとしたカテゴリ特化型のアプリケーションの多くは、FacebookやTwitterといったほかのサービスにも同時にコンテンツを投稿する機能を備えています。settings]からTwitter、Facebook、Flickr、TumblrそしてFoursquareといった複数の外部サービスと連携するように設定できます。利用するプラットフォームや連携するサービスごとにアクセス権限付与時のユーザー・エクスペリエンスは異なりますが、Instagramで外部サービスへの投稿を行う際には、連携サービスを問わず、すべてOAuthが使われています。Instagramから写真をTwitterとFacebookにシェアInstagramはOAuthを用いて、ユーザーの代理として写真を投稿するためのアクセス権限を受け取ります。ひとたびアクセス権限の付与を受けると、ユーザーがInstagramで写真をアップロードするたびに、各サービスが提供するAPI経由で写真をクロスポストします。IDでログイン」というボタンを見かけます。画面3:Foursquareのログイン画面OAuthは本来ID連携のために設計されたものではないのですが、FacebookやTwitterなどのようにユーザーのプロフィール情報(特にユーザーの識別子)を取得するためのAPIが存在する場合、ID連携に用いることもできます。OAuthでAPIへのアクセス権限を受け取る際には、FacebookやTwitterがユーザーの認証を行っています。それらの認証結果を信頼した上で各アプリがプロフィールAPIにアクセスしてユーザーの識別子を習得すれば、ユーザーを認証できるのです。新規登録時にFacebookやTwitterからプロフィール項目を取得してくることで、ユーザーの入力項目を減らしたり、ゼロにすることもできます。ID連携やプロフィール情報の取得だけでなく、ポストの投稿権限や友達リストなどを取得することも可能です。IDでログイン」といったボタンが多く利用されています。前述の通り、OAuthは本来、認証のために設計されたプロトコルではありません。このため、誤った使い方をして脆弱性を生み出しているケースも(特にiPhone/Androidアプリに)多く見受けられます。その点については本稿後半で紹介します。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。