*

非技術者のためのOAuth認証(?)とOpenIDの違い入門

公開日: : identity, OpenID , , ,

昔から、「OpenIDは認証でOAuthは認可だ」などということが言われます。しかし、その言語の意味を取り違えている方が結構多い気がしています。「もうOpenIDなんていらね。OAuthだけでいいじゃん」というような言説がよく流れてくるのがその証拠だと思います。

そこで、今日はOAuthとOpenIDの違いを考えてみたいと思います。

OpenIDは紹介状、OAuthは合鍵

まずはOpenIDの復習です。「OpenIDは認証」という言葉の内容をまずは復習してみましょう。
「認証」とは大変広い言葉でいろいろな場面で使われますが、「OpenIDは認証」という使い方の時は、「OpenIDは、いま来ている人の身元を認証」という意味です。図にすると次のような流れになります。

図 1  OpenID認証(身元確認)の場合

この図では、伊部さん(サイト)に対して有栖さんは自分が有栖であることを証明するために、公証人(Identity Provider)グーグルに紹介状を書いてもらっています。伊部さんは有栖さんのメールアドレスも必要なので、紹介状にはそれも書いてあります。これを有栖さんは伊部さんに渡しています。伊部さんは、「グーグルさんの紹介なら信用できるだろう」と考えて、有栖さんが本当に有栖和歌子さんだと認めてあげ、様々なサービスを提供します。

次にOAuthで認証をしていると呼ばれているような場合についてみてみましょう。

図 2 OAuthで身元確認もどきをする場合

図2で「認証もどき」としたのは、本来認証ではない行為を認証の代わりに使っているからです。ここでは伊部さんに対して、自分が有栖だということを証明するために、自分の表札がかかったマンションの部屋の合鍵を管理人(OAuth Server)ツイッターさんに作ってもらって、それを伊部さんに渡しています。伊部さんはこの合鍵で有栖さんの部屋に入って、「ほほう、たしかに有栖さんの部屋に入れた。ということは、あなたは有栖さんだと認めてあげましょう。」となって、有栖さんに様々なサービスを提供します。

OpenIDの時との大きな違いは、OpenIDの場合は単なる紹介状なので、伊部さんは悪さをしようと思っても、せいぜい有栖さんのメールアドレスを名簿屋さんに売るくらいしかできないのに対して、OAuthの場合は、伊部さんは有栖さんの家の中に入っていって、恋人とのラブレターのやり取りを読んだり、モノを壊したり、有栖さんの友達に迷惑メールを撒き散らしたりやりたい放題にできるということです。有栖さんが伊部さんの事をよく知っていて、本当に信頼できるなら、それでも構いません。例えば、わたしの家では、家の掃除をしてくれる方に合鍵を渡しています。これは、非常に便利なことですしまっとうなことです。しかし、よく知りもしないウェブサイトにOAuthで認証もどきをしてログインして回るというのは、そこら中に合鍵をばらまいて歩いていることになり、大変危険です。最近はOpenIDよりもOAuth認証をしたいというサイトが増えてきているのもなぜだかわかりますよね。合鍵をもらったほうがいろいろとサービス提供したり悪さをしたりするのに便利だからです。

OAuthで正しく認証するには~OpenID Connect

さて、例えば twitter の OAuth で「認証もどき」をするのは大変危険だということはおわかりいただけたと思います。では、OAuthで正しく認証だけをするにはどうしたら良いのでしょうか?例えば、部屋の鍵の代わりに、紹介状のコピーだけが入っているロッカーの鍵を渡すことにしてはどうでしょうか?

これならば、取られていってもせいぜい紹介状だけです。被害はOpenIDの時と大差ありません。

実は、これが次世代OpenIDである「OpenID Connect」 (ABワーキンググループで作られていたものに、Connectという名前をつけることにしました)の基本にあるアイディアです。このロッカーのことを、「UserInfo (ユーザ情報)Endpoint」といいます。つまり、OAuthを使いながら、安全に身元確認をできるようにしているのです。OpenID Connectは、OAuthの上のアイデンティティ層であると呼ばれるのはそういう理由からです。

もっとも、これだけだとそのユーザについての情報がわかるだけで、このユーザが実際にいつどのような認証(ワンタイムパスワード、電子証明書、など)をしたのかがわかりません。こうした「どういう認証(身元確認)をしたのか」というのは、本人についての情報というより、本人の身元確認についての情報(メタデータ)です。これらがわからないと、その認証の安全度が実はわかりません。そこで、OpenID Connect では、UserInfoロッカーの鍵と一緒に、何時どういう認証をしたのかということも合わせて紹介状にして送ります。この紹介状のことを、OpenIDトークンといいます。

図 3 OpenID Connectの場合

ここで渡される鍵は、伊部さん専用のロッカーの鍵です。その伊部さん専用のロッカーには、有栖さんの基本情報が書いてある紙が入っています。また、そこには伊部さんにわたしたい他のものも入れておくことができます。例えば、第三者からもらった資格証明書だとか、他のロッカーの鍵などです。伊部さんはそうやって取り出した鍵を使って、他のロッカーに行って、そこに入れてある情報を取り出したりもできます。

図 4  OpenID Connectのクレーム集約、分散クレーム

サイトX, Y, Z にアクセスする方法はOAuthのResource Access と呼ばれるものと同じものです。しかし、普通のOAuthと大きな違いがあります。それは、鍵の発行の仕方です。OAuthでは、それぞれのサイトの鍵を発行するのはそれぞれのサイトです。しかし、OpenID Connectでは、それぞれのサイトの鍵もUserInfo Endpoint が発行しています。逆に言えば、サイトX,Y,Zは、UserInfo Endpointの発行した鍵を受け入れられるようになっています。そのためには、それぞれのサイトは(1) この鍵の発行者を信頼(トラスト)し、(2)この鍵の正統性を確かめられるようになっていなければなりません。これを実現するために、OpenID Connectでは、JSON Web Token という鍵(Access Token)の形式を利用しています。暗号を使って(1)(2)を実現しているのですが、これはまた別の機会に譲りたいと思います。

というわけで、まとめです。

OpenID Connectは、OAuthを使って安全に認証を行うだけでなく、インターネット上に散在する様々な情報をやりとりしたり、サービス提供を可能にする分散アイデンティティアーキテクチャなのです。

(ベルリンにて)

Ads by Google

関連記事

no image

OpenID for Xoops

openid.return_to を実装するのを忘れてたな。 週末にやろうっと。

記事を読む

no image

Call for Papers – Open Identity Summit 2013

以下の情報が送られてきましたので共有します。 皆さん、ふるってご応募ください。

記事を読む

no image

Twitter、アプリのDMアクセスを自動削除へ

TechCrunchの記事によると、twitterがようやく重い腰を上げて、OAuthのアクセス権限

記事を読む

no image

リトアニア政府がOpenID採用

リトアニア政府がOpenIDを採用したようです。 OpenID EU ML にあらわれたArt

記事を読む

Privacy for Sale

Id連携がなぜプライバシー向上に役立つか

某所より問い合わせを受けて回答したので、共有しておきます。 お題は、「Id連携がなぜプライバシー向

記事を読む

no image

Liberty Alliance Day 2007

先週の金曜日、10月26日に、Liberty Alliance Day 2007 に出席してきた。

記事を読む

no image

OpenID v.s. OAuth

巷間よくOpenIDは認証、OAuthは認可というようなことが言われる。もともとは、アメリカのOAu

記事を読む

no image

OpenID Artifact Binding 1.0d04

昨日の夜からようやく Artifact Binding 1.0 draft 04 に着手。 22:

記事を読む

no image

国民ID制度の目的、定義と要件〜GIEシンポジウム「国民IDを考える」にあたって(1)

さて今日は、GIEシンポジウム「国民IDを考える」の当日なわけだが、パネルディスカッションの最初のス

記事を読む

no image

OpenID対応サイトが45000を突破

JanRain の MyOpenID の統計によると、2009年6月1日付けで、OpenID対応サイ

記事を読む

Ads by Google

Ads by Google

meti-20141017
オンラインサービスにおける消費者のプライバシーに配慮した情報提供・説明のためのガイドラインを策定しました(METI/経済産業省)

検討委員会の委員としてお手伝いしたガイドラインが発表されました。 経

Executive Order   Improving the Security of Consumer Financial Transactions   The White House
消費者の金融取引の安全性向上のための大統領令発布 – クレジットカードのICカード化や政府サイトの多要素認証対応など

2014年10月17日付で、消費者の金融取引の安全性向上のための大統領

(出所)10/18発売週刊ダイヤモンド「使える人材を輩出した大学ランキング」
東大は5位から28位に! トップはハーバード大学。ダイヤモンド「使える人材輩出大学」ランキングを再計算してみた [0]

電車の中でFacebookを見ていたら、週刊ダイヤモンド(10/18)

ドビッシー – Syrinxの謎

1913年に書かれたSyrinx(シランクス)は、全てのフルート奏者の

ico.
英国のプライバシー・シールのパブコメは今日締め切りです!

英国ICOがプライバシー・シールの「スキーム」のパブコメが今日締め切ら

→もっと見る

PAGE TOP ↑