一番すっと理解できるOAuth2.0とOpenIdConnect①
この記事の目標とするところは、
- OAuth2.0
アクセストークンのやり取りに関する規定、認可のみ - OpenIdConnect
IDトークンのやり取りに関する規定、認証できる
であることと、
- OpenIdConnectは、認証と認可を兼ね、ID連携として使われる
ということを、なんとなーく理解することです。
まずはOAuth2.0やOpenIdConnectの本題から入らず、例をもとに考えていきたいと思います。
スポンサードサーチ
他人に車を貸すことを考える
OAuth2.0やOpenIdConnectを考える前に、こんなシチュエーションを思い浮かべてみましょう。
あなたが自動車を所有していて、その自動車を友達に貸すとします。そのためには友達に車の鍵を渡さなければなりません。
しかしながら、車のカギを渡してしまうと、ダッシュボードやトランクも開けることができてしまいます。
ここに貴重品などの大事なものを入れてたとすると、かなりまずいですよね。でも、車を使ってくれる分には問題ない…。
そんなときに、制限付きキーというのが役に立ちます。
つまり、『車のエンジンをかける』こと『ドアを開けること』はできるが、トランクやダッシュボードを開けることはできないというカギです。
このような制限付きのキーを、バレット・キーとも呼ぶそうです。
自分の所有している車に乗るときは、フルのマスターキーを使いますが、他人に車を貸す場合は制限機能付きのバレットキーを貸します。
この考え方は、OAuth2.0やOpenIdConnectにも似たようなところがあるので覚えておきましょう。
バレットキーの貸出人を考える
『他人(友達、知り合い)に車を貸すときは、バレットキーを渡す』
これをユーザー本人が行うのではなく、専門の貸し出し所が行うとします。
現実でいえば、あなたが車を持っているとして、『名簿渡しておくから、この名簿の人が車を貸してほしいと言ったら、バレットキーを渡してくれ』、と誰かに頼むわけですね。図にすると以下のようになります。
ユーザーの許可に応じて、バレットキーの貸し出しをします。
OAuth2.0はこうなる
さて、以上の説明を踏まえたうえで、OAuth2.0の規格についてざっと見ていきます。
図にすると以下のようになります。
今まで見ていた車の貸し出しの図と似ていますね。
そして、バレットキーの貸出のやり取り、図では、バレットキーがアクセストークンとなっていますが、この『アクセストークンのやり取りの規定をOAuth2.0』と呼呼ぶわけです。
詳しくは、次回:一番すっと理解できるOAuth2.0とOpenIdConnect②で説明していきます。