2013年9月7日土曜日

Bearer Token とは?

先日の OpenID Technight の後の懇親会で OpenID Foundation 理事長の崎村さんと飲みながら話をしていて、「言われてみれば・・・」と思ったのが、「OAuth などの Bearer Token の Bearer ってなんのことだと思う?」という話題でした。

OAuth 2.0 では通常 Bearer もしくは MAC というタイプのトークンが使われ、単純に違いは Secret や署名の要否という理解だったので、Bearer が何を意味するのか?を考えたことはなかったんですが、言われてみると気になります。

辞書を引くと
・運ぶ人[もの],運搬人
・持参人
などという意味があるようです。
weblio より

相変わらずこの手の用語は直訳しても良くわからないです。。。

ということで、崎村さんによる解説です。

・Bearer は「持参人払い」から来ている
 ※大辞林によると「持参人払い=小切手などの証書で,特定の者を権利者として指定せず,それを持参した人に支払うこと」
・つまり、トークンを持ってきた人に対して支払う(API 利用を許可する)、という意味である
・例えば、飛行機のチケットは持ってきた人が権利者かどうかの確認を行うが、演劇のチケットは持ってきた人が観劇できる。この演劇のチケットが Bearer である

なるほど。わかりやすい。

OAuth などのトークンに置き換えると、Bearer トークンを使う場合、使用されるトークンが誰に対して発行されたのかを確認せずに、「トークンを持っていること」をベースに API 利用を許可する、ということですね。


RFC などの仕様や実装における用法を勉強するのはもちろん大事ですが、使われる用語の意味にはちゃんと設計思想が反映されているので、ちゃんと理解しておきたいところです。

0 件のコメント: