一番すっと理解できるOAuth2.0とOpenIdConnect①

IT技術 Web

この記事の目標とするところは、

  • OAuth2.0
    アクセストークンのやり取りに関する規定、認可のみ
  • OpenIdConnect
    IDトークンのやり取りに関する規定、認証できる

であることと、

  • OpenIdConnectは、認証と認可を兼ね、ID連携として使われる

ということを、なんとなーく理解することです。

まずはOAuth2.0やOpenIdConnectの本題から入らず、例をもとに考えていきたいと思います。

スポンサードサーチ

他人に車を貸すことを考える

OAuth2.0やOpenIdConnectを考える前に、こんなシチュエーションを思い浮かべてみましょう。
あなたが自動車を所有していて、その自動車を友達に貸すとします。そのためには友達に車の鍵を渡さなければなりません。

しかしながら、車のカギを渡してしまうと、ダッシュボードやトランクも開けることができてしまいます。
ここに貴重品などの大事なものを入れてたとすると、かなりまずいですよね。でも、車を使ってくれる分には問題ない…。

そんなときに、制限付きキーというのが役に立ちます。
つまり、『車のエンジンをかける』こと『ドアを開けること』はできるが、トランクやダッシュボードを開けることはできないというカギです。
このような制限付きのキーを、バレット・キーとも呼ぶそうです。

自分の所有している車に乗るときは、フルのマスターキーを使いますが、他人に車を貸す場合は制限機能付きのバレットキーを貸します。
この考え方は、OAuth2.0やOpenIdConnectにも似たようなところがあるので覚えておきましょう。

バレットキーの貸出人を考える

『他人(友達、知り合い)に車を貸すときは、バレットキーを渡す』
これをユーザー本人が行うのではなく、専門の貸し出し所が行うとします。

現実でいえば、あなたが車を持っているとして、『名簿渡しておくから、この名簿の人が車を貸してほしいと言ったら、バレットキーを渡してくれ』、と誰かに頼むわけですね。図にすると以下のようになります。

ユーザーの許可に応じて、バレットキーの貸し出しをします。

OAuth2.0はこうなる

さて、以上の説明を踏まえたうえで、OAuth2.0の規格についてざっと見ていきます。
図にすると以下のようになります。

今まで見ていた車の貸し出しの図と似ていますね。
そして、バレットキーの貸出のやり取り、図では、バレットキーがアクセストークンとなっていますが、この『アクセストークンのやり取りの規定をOAuth2.0』と呼呼ぶわけです。
詳しくは、次回:一番すっと理解できるOAuth2.0とOpenIdConnect②で説明していきます。