一番すっと理解できるOAuth2.0とOpenIdConnect②
前回の記事:一番すっと理解できるOAuth2.0とOpenIdConnect①の続きです。
まだ読んでない方は①をお読みください。
スポンサードサーチ
前回:OAuth2.0はこうなる
さて、前回の最後では、OAuth2.0の規格はこうなると言いました。
このまま説明を続けていっても良いのですが、いまいちピンとこないと思うので、以下のように書き換えます。
さて、次から細かい用語を説明していきましょう。
OAuth2.0を理解する
図で引っかかりそうなところをあげてみました。
- 認可サーバー:アクセストークンを発行してくれるところ
- アクセストークンがあると、『ユーザーが所有するアプリ』を一部動かせる
- 認可サーバーとユーザーが所有するアプリは、同じアプリ側のもの。
ex)Twitterのアプリに、twitterの認可サーバー
要するに、アクセストークンを持っておくと、ユーザーが所有するアプリの一部の機能が使うことができます。正確には、『その機能を使う事を許可された』ということで、認可として使えると言われます。
たとえば、Twitterを例を挙げてみましょう。アクセストークンがあると、Twitterのツイートだけできる権利を持つことができます。そして、OAuth2.0とは『認可サーバーと、所有するアプリとのやり取りの規定』と考えていただければ結構です。
スポンサードサーチ
OpenIdConnectとは?
ようやく次のステップに進みます。OpenIdConnectについてです。
OpenIdConnectは、OAuth2.0でアクセストークンと呼んでいたものが、IDトークンとなります。そして、IDトークンのやり取りの際に、暗号化した形で取り扱うため、認証として使うことができます。
認証とは、『この人であることを証明するもの』です。
現実世界では、自身を証明するのに免許証を出しますね。その免許証が偽装された者でないかどうかは、免許証の中に埋め込まれたチップを専用の機械で読み取ることで、本人かどうかを証明できますね。(ここでは、免許証が盗まれているケースは除きます)。
そして、OpenIdConnectの概念を図示すると、以下のようになります。。。が、実は、これでは終わりません。
上図のように終われば分かり良いのですが、そうはいきません。
ややこしいのは、IDプロバイダーがOAuth2.0の認可サーバーも兼ねるという事です。そのため、OpenIdConnectは、認証・認可としても使える規格になります。
ID連携について
最後に、OpenIdConnectを使ったID連携の仕組みを見ていきましょう。
シチュエーションは、Twitterのアカウントを作る際に、『Twitterのアカウントを作ってログインするのではなく、Googleアカウントを使ってログインする』というものです。このように、『他のアプリのアカウント使ってログインする仕組み』は、シングルサインオンと呼ばれています。
この仕組みを使う事で、アプリごとにアカウントを作る必要がなくなるため、ユーザーにとってかなり便利です(もちろん、一定のリテラシーは要求されますが)。
一部のユーザー情報を使用すること(認可)を使うことで、外部アプリのアカウント情報でログインするということがまず一点。これは、認可サーバーのアクセストークンによるものです。
そして、その情報が本当に正しいのかどうかを保証するのが、IDトークンであるということです。これが偽装されたものではないことが保証されていると、IDトークンを使いまわすことができます。
これら二つを合わせることで、結果としてID連携としての役割を果たすことができます。
スポンサードサーチ
まとめ
今回は、OAuth2.0とOpenIdConnectについて説明しました。
そして、以下の内容が分かったと思います。
- OAuth2.0
アクセストークンのやり取りに関する規定&認可のみ - OpenIdConnect
IDトークンのやり取りに関する規定&認証できる
そして、
- OpenIdConnectは、認証と認可を兼ね、ID連携として使われる
ということが何となく分かったともいます。