*

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

関連記事

openid-icon-250x250

OpenID Connect リリース~インターネットのアイデンティティ層

苦節4年半、ワーキンググループを作るところから始めたら、苦節6年、ようやくOpenID Connec

記事を読む

表 5.2-1: SAML と OpenID の特徴

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

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

記事を読む

マイナちゃん

政府、マイナンバー用コールセンター10月を目処に設置へ

政府は10月をメドに、内閣府に社会保障給付と納税を1つの個人番号で管理する「マイナンバー制度」のコー

記事を読む

マル秘

マイナンバーは、秘密にした方が良いのか?

マイナンバーは、秘密にした方が良いのか?という論点があってですな、こっちで色々話していて、人の習性を

記事を読む

no image

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

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

記事を読む

no image

個人情報$14で売ります?!

Kim Cameron's Identity Weblog で読んだ恐ろしい記事。 Syman

記事を読む

no image

マスコミの取材ってつくづく難しい

先日新潟大学の鈴木先生と話していて、マスコミの取材は本当に難しいなという話になった。日経コンピュータ

記事を読む

符号変換を利用して、異なる「番号」を必要に応じて紐付けする

共通番号/マイナンバーの保管と紐付け作業について

まずは、マイナンバーに関する以下の内閣官房の絵を見ていただきましょう。「番号」となっているのがマイナ

記事を読む

no image

米Yahoo!からのパスワード流出を考える

(UPDATE1) Yahoo! Voice と Yahoo! Voices は別のサービスらしいの

記事を読む

OpenIDConnect-Map-v4

OpenID Foundation からのクリスマスプレゼント

という訳で、OpenID AB+Connect WGから、皆さんにクリスマスプレゼントです。

記事を読む

Ads by Google

Ads by Google

Cyber Security
1passwordのWebSocket 不認証脆弱性について

さて、MacOS XとiOSのXARA脆弱性についてでは、もと記事[2

図1)MacOS Xのキーチェンの構造
MacOS XとiOSのXARA脆弱性について

今日(6月18日)午後、GigaZineで「iOSとOS XでiClo

J.S.Bach
3つのゴールドベルグ変奏曲〜グレン・グールド、マリア・ティーポ(ブゾーニの孫弟子)、筋肉ピアニスト-ツィモン・バルト(ブゾーニ盤)とブゾーニの演奏を巡って

今日、夜中の電話会議が終わってナクソス・ミュージックライブラリを開けた

News
先週気になったプライバシー関連ニュース(2015/6/10〜17)

書こうと思ったことが山積みでまったくかけていない今日このごろですが皆さ

Cyber Security
サイバーセキュリティ国際会議、沖縄で11/7,8に開催へ

TBSNews iの報道によると、政府が今年11月に沖縄県でサイバーセ

→もっと見る

PAGE TOP ↑