*

非技術者のための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

銀行カードの暗証番号の4割が生年月日(金融庁調査)

金融庁は22日発表した、偽造キャッシュカードによる預金の不正な引き出しの被害調査の結果によると、被害

記事を読む

no image

非技術者のためのデジタル・アイデンティティ入門

「非技術者のためのOAuth認証(?)とOpenIDの違い入門」が800はてブ超えをしたのに気を良く

記事を読む

日本初のIDサミット JICS2013

JICS 2013 第2日目 エンタープライズ・トラックまとめ

Japan Identity and Cloud Summit 2日目 エンタープライズ・トラックの

記事を読む

no image

blogソフトを自分で書いてみる

われながらアホなことやってるなぁとは思う。 Xoops用のWordpressのメンテが止まってい

記事を読む

no image

Digital Identity に求められるもの

昨今 Digital Identity に関する記事などがいろいろと出回っているが、この Blog

記事を読む

no image

IPA『アイデンティティ管理技術解説』のSAML/OpenID比較表について

さる8月9日に、独立行政法人 情報処理推進機構(IPA)から『アイデンティティ管理技術解説』という教

記事を読む

図1 安心マーク

JIPDEC、ヤフー他6社と組んで、なりすましメール防止ソリューションを銀行へ提供開始

日本情報経済社会推進協会(JIPDEC)のプレスリリースによると、ヤフーら6社[2]と共同で、なりす

記事を読む

認証+OAuth=OpenID

アイデンティティ、認証+OAuth=OpenID Connect

アイデンティティとは何か、実体とアイデンティティの関係、プライバシーとの関係、OpenID

記事を読む

no image

OpenID Summit Tokyo 開催

12/1に OpenID Summit Tokyo を開催します。 私の他、米国から Goog

記事を読む

オオカミがきた

オオカミが来た:人気のオープンソースセキュリティソフトウェアでまた1つ大きな脆弱性が見つかった?!ーCNETがダメダメな件

「OpenSSLの脆弱性「Heartbleed」に続き、人気のオープンソースセキュリティソフトウェア

記事を読む

Ads by Google

Ads by Google

OpenID Certified ロゴ
グーグル、マイクロソフト、ペイパル、野村総合研究所などの実装がOpenID Connect適合性試験に合格

(図1)OpenID Certified ロゴ 米OpenID®

+NatSakimura/about
【個人情報保護法改正】第三者提供記録義務について【Part 2】

さて、3/12に指摘した第三者提供記録義務についてだが、その後4月1日

David Recordon
オバマ大統領、デビッド・リコードンをホワイトハウスの「情報技術長官(?)」に抜擢

photo by Brian Solis (2009) CC-BY。

プライバシーフリーク本
夏井先生の日本の個人情報保護関連法制に関する論評に激しく同意した件

夏井先生のプログに、いわゆる「プライバシーフリーク本」[2]の論評に形

Data-Protection-ilm2007_02_0215-s
[個人情報保護法改正] 匿名加工情報と第三者提供記録について(3/13 8:50改定)

個人情報保護法改正案が火曜日に閣議決定されて公開されています。

→もっと見る

PAGE TOP ↑