このエントリーをはてなブックマークに追加

第二話:消えたパスワードの謎

ここは喫茶「まべこねこ」
閑古鳥が鳴くこの店ですることもない、まべコネたん
仕方がないので店長にこの前の疑問を投げかけます

マーベラスコネクトにパスワードは保存されないのか?
ここまで読んでおいてなんだけど…この二人何者?
まべコネたん
まべコネたん_1
店長、第一話で言ってた「パスワードを保存してない」ってどういうことなの?
第一話って…ずいぶんメタ的じゃの。
まぁ、そのままの意味じゃマーベラスコネクトでは
どのサイトの
どのIDが
どのゲームの
どのゲームユーザーか…の情報を保存しておる。
つまり、
どのパスワードを使用したか…は保存しておらぬのじゃよ。
スマホじいじい_1
まべコネたん
まべコネたん_1
なんだか「どの」が多すぎで、世界の法則が乱れそうだよ
店長殿~! 

 

あれ?
でも、マーベラスコネクトでFacebookを選択した際にIDとパスワードどっちも入力したんだけど…
その後に、あの許可画面が出てきたような…。

ふふ、あのログイン画面と許可画面じゃが…あれは 

「マーベラスコネクト」の
サイトではない!!

スマホじいじい_1
まべコネたんまべコネたん_1

な、なんだって~~~ッ!?

あれはな、選択したOpenIDを管理しておるサイトに飛ばしておるのじゃ。
よく見てみい! 

まべコネ_連携_2

今回は「Facebook」のサイトじゃ。つまりお主は…

Facebookのサイト内でログインをし、
Facebookのサイト内でマーベラスコネクトへのアクセス許可を与えたんじゃ!

スマホじいじい_1
まべコネたんまべコネたん_1 ということは…マーベラスコネクトさんのおかげだと思っていたのは… 

全部Facebookさんのおかげだったってこと?

なんかそう言われるとあれじゃが、まぁ…そんなところじゃ。 スマホじいじい_1
まべコネたんまべコネたん_1 じゃあ、許可した後ってどうなるの?
許可したあとは、マーベラスコネクトに
「自分(まべコネたん)の情報にアクセス可能な鍵」とFacebookのユーザIDが送られてくるのじゃ。 

鍵はアクセストークンと呼ばれるたくさんの文字の羅列じゃ。
あと、アクセス可能とは言ってもあらかじめまべコネたんが許可を与えた範囲の情報になるぞい。

スマホじいじい_1
まべコネたんまべコネたん_1 ん? 

FacebookのユーザIDだけが送られてくるわけじゃないの?

うむ、ユーザIDだけ送られてきても、それが正しくFacebookから送られたものか判別できないからのぅ。 

それにIDだけじゃそのユーザの情報にアクセスできんのじゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 じゃあ、アクセストークンがあれば判別できて、アクセスもできるってこと?
うむ、まずは判別じゃが… 

アクセストークンとあらかじめマーベラスコネクトがFacebookからもらっている鍵を検証することで
そのIDと鍵が本当にFacebookから送られてきたものかどうかを判別できるのじゃ!

スマホじいじい_1
まべコネたんまべコネたん_1 おぉ~検証ってところで色々丸められてる気がするけど、
すごい(んだろうなぁ、たぶん)!!
次に、アクセス… 

アクセストークンは最初に言ったように「自分の情報にアクセス可能な鍵」じゃから、
それを使えば許可された情報…今回の場合は公開情報とメールアドレスじゃな…
Facebookにある情報にアクセスできるのじゃ。

 

アクセストークンがあれば必要な情報にアクセスすることができる、
つまり…パスワードは必要ないということになるのじゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 なるほど~。 

あ…ここに来てようやくパスワードの件を回収したっぽい?

 

どうしてTwitterがないの?

参考リンク

まべコネたん
まべコネたん_1
なんとなく、パスワードが保存されないってのは分かったけど… 

よくTwitterもこういう認証に使われている気がするんだけど、マーベラスコネクトにはなんでないの?

話せば長くなるがええかのぅ? スマホじいじい_1
まべコネたん
まべコネたん_1

え”っ!!

それなら別に…

うむ、では話すとしよう。
Twitterが何故選択肢にないのかを…それはじゃな、 

Twitterの仕組みではその人、本人かどうかが確認できないからじゃ!!

スマホじいじい_1
まべコネたんまべコネたん_1 えー…そうなの?
(あ、結局話すんだ…
うむ、TwitterでもFacebookと同じように「自分の情報にアクセス可能な鍵」、すなわちアクセストークンを発行する仕組みを使っておる。
この仕組みはOAuthといわれておるものじゃ。 

OAuthの仕組みで、まべコネたんがマーベラスコネクトで本人確認をさせようとする場合は…

Flow_OAuth

このような流れになるじゃろうな。

(あくまでも、もしもの話です、実際はマーベラスコネクトではTwitterによる認証はできません)

 

スマホじいじい_1
まべコネたんまべコネたん_1 あれ?
うまくいってるし!? 

本人確認できてるし!!

そう見えるじゃろ? 

じゃがそうはいかんのじゃ。
まず、この後にわしが別のサービスを提供して、それにまべコネたんが入るとしよう。

スマホじいじい_1
まべコネたんまべコネたん_1 え~~~? 

私、店長が提供するサービスなんかに入るかなぁ?

いや、例えじゃから。入ってお願い。 

…で、入るとして話を続けるぞ。

スマホじいじい_1
まべコネたんまべコネたん_1 結局、入っちゃうんだ… 

仕方ないなぁ。

入るとどうなるか… 

Flow_スマホじい1

…ふふふ

スマホじいじい_1
まべコネたんまべコネたん_1 なに、その不穏な笑い。 

というか、この店のクーポンとかいらないんだけど…

さて、その後にわしはちょっとしたイタズラを決行する。 

Flow_スマホじい2

引き継ぎをしたまべコネたんのゲーム画面には…

最弱アカウントが!!

スマホじいじい_1
まべコネたん 

まべコネたん_1




湿


!!

た、例えじゃ、例え。
うぷぷぷぷ。 

まぁ、OAuthはあくまで「サービスへのアクセス権限の許可を行う」仕組みじゃからな、
先ほどの例えは無理やりその仕組みで本人確認をさせようとした場合どうなるかというものじゃ。

さて、「暗黒面に落ちたわし」がまべコネたんのアカウントを悪用できないようにするためには、どうすればよいか分かるかの?

スマホじい 

じい_1

まべコネたんまべコネたん_1 いや、全然。
うむ、知ってた。
先ほどFacebookも同じ仕組みと言ったことも覚えておらんのも想定済みじゃ。
スマホじいじい_1
まべコネたんまべコネたん_1 そういえば… 

あれ?
Facebookも同じ仕組みだとすると…同じような結果になるんじゃ…。

まぁ、OAuthの仕組みだけではそうなるの。 

じゃが、Facebookでは先ほどのように悪用することができぬようdebug_tokenというAPIを用意しておる。
これを使うと「自分の情報にアクセス可能な鍵」が「マーベラスコネクト専用の自分の情報にアクセス可能な鍵」に進化するのじゃ!!

スマホじいじい_1
まべコネたんまべコネたん_1 進化とか、なんか急にゲームっぽくなってきた!?
少し前に「アクセストークンとあらかじめマーベラスコネクトがFacebookからもらっている鍵を検証する」と言ったじゃろ?
実は、その検証にはdebug_token APIを使っておるのじゃよ。 

そして、そのAPIで「IDと鍵が本当にFacebookから送られてきたものということを判別」だけではなく
「マーベラスコネクト専用の鍵かどうか」もチェックできるようになっておったのじゃ!!

スマホじいじい_1
まべコネたんまべコネたん_1 一石二鳥!! 

じゃあ、例えばその鍵がマーベラスコネクト専用じゃなかった場合はどうなるの?

送ってきた相手は死ぬ

スマホじいじい_1
まべコネたんまべコネたん_1

嘘!?

うむ、嘘じゃ。 

そもそも、マーベラスコネクトはマーベラスコネクト専用の鍵以外は使いこなすことができんようになっておるんじゃ。
専用でない鍵はエラーを返して、ぽいぽいぽーいじゃ!

選ばれたモノのみ扱え、それ以外には資格さえも与えぬ鍵をFacebookは生み出しておるのじゃ…。

スマホじいじい_1
まべコネたんまべコネたん_1 急に中二臭くなってきた…。 

そんな右腕が疼きそうな鍵を、
ほかのサイト…GoogleやYahoo! JAPANやmixiも生み出してるの?

実は、同じではないのじゃ。debug_token APIはFacebook独自のAPIじゃからの。 

GoogleやYahoo! JAPANそれにmixiは、
標準規格の
OpenID Connectというものを使っておるぞい!!

スマホじいじい_1
まべコネたんまべコネたん_1 わ、またなんか出てきた!!
OpenID ConnectはIDとパスワードを入力した際、従来のアクセストークンと一緒にIDトークンというものも一緒に返してくれるのじゃ。 

そのIDトークンにはどのサービスに対しての鍵かという情報が含まれておるのじゃ。
アクセストークンとIDトークン、2つをセットにしてマーベラスコネクトに渡せば、渡された鍵がマーベラスコネクト専用のものかどうかが分かるのじゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 なるほど。 

Facebookのdebug_token APIとOpenID Connectって仕組みは違うけど
やろうとしてることは同じってわけかぁ。

うむ、そういうことじゃ。
どちらもその鍵を扱うのがどのサービスかということを示しておる。 

そして、それができないためTwitterが選択肢にないという理由じゃ。

スマホじいじい_1
まべコネたんまべコネたん_1 うんうん。 

でも、正直…Twitterアカウントで認証したいけど。

…TwitterもOpenID Connectなどに対応してくれるのを気長に待つしかないのぅ。 スマホじいじい_1
今回のまとめ
ユーザの本人確認と情報へのアクセス許可を確認する画面は、
マーベラスコネクトではなく各IDを管理しているサイトなのじゃ。
スマホじいじい_1
まべコネたんまべコネたん_1 全部、各サイトさんのおかげ♪
各サイトのアクセストークンがあれば、各サイトからそのユーザの情報を取得できる。 スマホじいじい_1
まべコネたんまべコネたん_1 だからパスワードがマーベラスコネクトに保存されないんだね! 

あんしんあんしん♬

Twitterがマーベラスコネクトで使えないのは、
そのアクセストークンがマーベラスコネクト専用のものか判別できないからじゃ。 

 

標準規格のOpenID ConnectやFacebookのdebug_token APIを使えば
アクセストークンがマーベラスコネクト専用のものかが分かるぞい!

スマホじいじい_1
まべコネたんまべコネたん_1 便利な仕組みだね♫
以上じゃが、他になにか聞きたいことはあるかのう? スマホじいじい_1
まべコネたんまべコネたん_1 バイトの時間もう終わりだしあがります!
…お客さん一人も来なかったけど。   

 

てなわけで、次回!
~マーベラスコネクトのちょっと詳しい話2~

またよろしくね♪

そのタイトルからして次に何を話すか決まってない感が満載じゃな…。 スマホじいじい_1

Comments are closed.

Post Navigation