クロスドメインでのデジタルアイデンティティを守る
APIアクセス権を委譲するプロトコル、
OAuthを知る
作島 立樹
NRIパシフィック
2008/1/21
マッシュアップと呼ばれる仕組みで、既存のWebサービスが次々とつながり、新たなサービスが登場している。しかし、メールアドレスなど重要な個人情報が意図せずに「つながれてしまう」可能性もある。そこで登場したのがアクセス権の「委譲」を目的としたプロトコル、OAuthである。本記事ではOAuthの仕組みとともに、なぜそれが登場したのかという背景にも触れる(編集部)
マッシュアップの犠牲になるユーザーのアイデンティティ
GETなどのHTTPメソッドをもちいてURLへリクエストする、いわゆる「RESTful」【注1】なWeb APIを使ったアプリケーション同士の交流は、いままさに隆盛を極めている。「マッシュアップ」と呼ばれているこのサービス形態が、これからのWebアプリケーションの発展の方向を決めるのは間違いなさそうだ。しかし、1つ気掛かりなことがある。アプリケーションの間でやりとりされるユーザーの「デジタルアイデンティティ」の扱いが今後どうなるか、ということだ。
現在、マッシュアップされた2つのアプリケーションを利用する際、「アプリA」のユーザーIDとパスワードを、アプリAにある情報にアクセスしたい「アプリB」に丸ごと預けてしまうような実装や運用が平気で行われていたりする。たしかにクレデンシャル(アプリAのIDとパスワードのこと)を、サービスを実施するためにアプリAの情報を必要とするアプリBに預けるのは、ユーザーにとっても仕組みが明確で、開発者にとっても実装するのが簡単だ。
しかしこの方法ではユーザーのセキュリティやエクスペリエンスが大きな犠牲になっているといわざるを得ない。アプリBはユーザーから許可も取らずに、アプリAにあるすべての情報にアクセスできてしまうし、アプリAのパスワードを変更すれば、アプリAに接続しているアプリケーションの数だけ、パスワードを変更しなければならなくなる。ユーザーに早くサービスを提供したい開発者の思いも分からなくはないが、この方法はベストプラクティスになり得ない。もっとよい方法はないものだろうか。
| 【注1】 RESTとはREpresentational State Transferの略。ロイ・フィールディング氏が2000年に発表した博士論文の中で定義した「ソフトウェア設計原則」に従う設計スタイルのこと。より狭い意味では「HTTPメソッドを用いてURLへリクエストできるAPI」を表す用語としても利用される。RESTの原則に従うシステムやAPIは、“RESTful”と形容されることがある。 |
TwitterのAPIアクセス権を委譲できないか?
2007年12月、2007年2回目のInternet Identity Workshop(IIW2007b)が開催された。今回も国内外を問わず各方面の技術者が集まり、さまざまなアイデンティティ技術について話し合われた。そこでGoogle、Yahoo!、AOLなどの大手ITサービス企業の技術者の間で熱心にディスカッションされていたのが「OAuth」(“オース”と発音する)と呼ばれる仕様である。
OAuthはまさに、先に挙げた問題を解決するために考案されたプロトコル仕様である。IIW2007bの開催に合わせて、12月4日にOAuth Core 1.0の仕様が確定した。OAuth Coreを実装したライブラリもPHPやRubyなどで開発されたものがすでに公開されている。
| 【関連リンク】 OAuth Core 1.0仕様 http://oauth.net/core/1.0/ OAuth基本ライブラリ http://oauth.net/code/ |
OAuthの開発は、2006年末にTwitterのブレイン・クック氏が同社で開発するAPI認証をOpenIDで行おうと試行錯誤していたことに端を発する。クック氏から協力を求められたクリス・メッシーナ氏、米シックス・アパートのデビッド・リコードン氏(当時は米ベリサインに在籍)、Ma.gnoliaのラリー・ハーフ氏の間で話し合ったところ、OpenIDではTwitterのAPIアクセス権を別のアプリケーションに委譲(Delegation)することはできないと判断した。
そもそもOpenIDはIDの持ち主が本人か確認する「認証(Authentication)」情報をやりとりするためのプロトコルであり、OpenIDプロバイダで認証されたIDがどのリソースにアクセスできるかといった「認可(Authorization)」情報については一切関与しない。認可の仕方もコンシューマ【注2】側に一任される。
Twitterが行いたかったのは、ユーザーのクレデンシャルを外部にさらすことなくAPIへのアクセス権を別のアプリケーションに譲渡することだったため、OpenIDで解決できるはずもなかった。
| 【注2】 OpenID 2.0では「Relying Party」という用語で統一された |
| 【関連記事】 OpenIDの仕様と技術 連載インデックス http://www.atmarkit.co.jp/fsecurity/index/index_openid.html 最新仕様「OpenID 2.0」が公開 http://www.atmarkit.co.jp/news/200712/06/openid.html |
2007年4月に数名の開発者が集まり、この問題の解決に取り組むべくThe OAuth Google Groupを立ち上げ、グループを通じて意見を交換しながらAPI認可プロトコルの標準仕様の策定を開始する。7月には最初のドラフトが発表され、12月のCore 1.0 Finalに至っている。OAuth CoreはさまざまなWeb APIの認証・認可部分からベストプラクティスを抽出して抽象化したものだといわれているが、全体のフローはFlickrの認証APIがモデルになっており、非常に似ている。
現時点でOAuthを採用しているのはTwitterとMa.gnoriaである。OAuth Groupの運用や仕様ドキュメントの執筆については、Hueniverseのエラン・ハマー氏が中心になって行っている。共同執筆者の中にはGoogle、AOL、Flickr(2005年3月にYahoo!が買収)の開発者が名を連ねており、今後これらの企業の間で採用が進むかもしれない。
1/3 |
| Index | |
| APIアクセス権を委譲するプロトコル、OAuthを知る | |
| Page1 マッシュアップの犠牲になるユーザーのアイデンティティ TwitterのAPIアクセス権を委譲できないか? |
|
| Page2 OAuthプロトコルを知る |
|
| Page3 プロバイダにとっても大きいOAuthのメリット OAuthのこれから |
|
| 関連記事 | |
| OpenIDの仕様と技術 連載インデックス | |
| OpenIDが熱狂的に受け入れられる理由 | |
| OpenIDを使ってみた | |
| 「OpenIDはメアド同様に複数使い分けてもいい」、OpenID提唱者 | |
| Security&Trust記事一覧 |
ホワイトペーパー(TechTargetジャパン)
- この脆弱性対策エンジンは“永遠に完成しない” (2010/3/9)
パターンファイルに頼らず防御する「要の技術」は、いまも完成にはいたっていない。その理由とは―― - Gumblarがあぶり出す 「空虚なセキュリティ対策」 (2010/3/1)
ガンブラーの脅威は、組織の構造や外部委託問題をあぶり出します。そのセキュリティ対策、建前論になっていませんか? - 決済アプリのセキュリティ基準、PA-DSSとは (2010/2/24)
“ペイメントアプリケーション”のセキュリティ基準を定めたPA-DSS。厳密に定められた14の要件を、PCI DSSと対比させつつ解説します - 「鍵は“J”の中にあるよ」CTF by ダークナイト解答編 (2010/2/22)
ダークナイトからの挑戦状、いかがだっただろうか。WiresharkにNetworkMiner、WinRARを駆使し、“J”に隠された秘密を解き明かせ!
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
| 「いつかは壊れるサーバ」そんな故障に 迅速で安価に手軽に対応する方法とは? New! |
| 「特権ユーザー」の事件を防げ! 万能権限を持つユーザーの管理方法とは? New! |
| 仮想環境の構築とデータ保護の特効薬?! 実績と信頼性の高いパッケージで安心運用 |
| 仮想環境のバックアップもこれまでどおり 「まるごと取ってまるごと戻す」簡単運用 |
| おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |
| その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |
| 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |
| 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |
- - PR -
お勧め求人情報

**先週の人気講座ランキング**
〜CCNA編〜
| ◆ | TomcatやJBossなどAPサーバ環境に関する 情報を集約! “業務”用APサーバ大百科 New! |
| ◆ | 一気に解説! 最新のクラスタストレージ 「RAIDを超えたストレージ基準」……など New! |
| ◆ | クラウド的ユーザー体験の変化は脅威か? 仮想化技術を使いこなす運用管理術を紹介 New! |

| ◆ | 上司や部下、部署内メンバーとの情報共有 を“ガラッ”と変えるコラボツールとは? New! |
| ◆ | おばかアプリ選手権、第4弾開催中!! ムダにカッコよくてくだらない作品求ム! |
| ◆ | 社内ファイルサーバを“クラウド”に統合 VPN直結「クラウド型ストレージ」を紹介 |

| ◆ | Twitterのアカウントはなぜ突破された? メールによる新手の攻撃手法とその対策 |
| ◆ | もう仮想化のお試しフェイズは終わりだ! Hyper-V 2.0が基幹システムも仮想化 |
| ◆ | 美人!? まあまあ? 気になる いやし系!! PV急増で「美人時計」がとった手段とは? |

| ◆ | クライアント企業から求められる人材 ⇒IT技術と経営戦略を併せ持つ「戦略家」 |
| ◆ | .NET編集長が実践する「技術情報検索術」 サンプル・コードを簡単に探す“技”は? |
| ◆ | 業務効率と情報セキュリティ対策を両立! 手間なく確実に機密情報を守る方法とは? |

| ◆ | 進化を続ける富士通ストレージETERNUS DX 製品開発者の自信を裏付けるものとは何か |
| ◆ | 運用管理の課題を“2つの観点”から分析 ユーザー満足度の高い「仮想環境」とは? |

| ◆ | 【CTC事例】約30の基幹システムを統合! 膨大なバッジジョブを制御した方法は? |
| ◆ | 仮想化すればコストは削減できるか? 仮想化に必要な「3つの視点」を解説する |
| ◆ | その数、なんと400台以上! グループ内 サーバの「統合管理」によるメリットは? |






