👮

【認証認可】OAuth2.0とは

2024/08/04に公開

概要

認可にあたる技術として、OAuth2.0(以降はOAuthと呼ぶ)の仕組みを概要レベルで解説する。

認証認可とは

認証認可とは、端的に述べると以下のようなものであり、OAuthは認可にあたる仕組みのことである。

認証:本人であることを確認・特定すること
認可:許可や権限を与えること

認証認可の詳細については、以下、参照。

https://zenn.dev/noi2024/articles/e7c670bf178250

OAuthとは

OAuthは認可にあたる仕組みのことであり、複数のWebサービス間で利用されるものである。

通常、複数のWebサービスを利用する場合、それぞれのサービスにログインして利用することになるが、OAuthを利用することで、最初に認可の設定を行えば、以降は、あるサービスから別のサービスをログインすることなく利用することが可能となる。

例えば、Aさんがブログを作成し、これをSNSでお知らせする場合で考えると、

OAuthを用いない場合は、Aさんはブログサイトにログインしてブログを作成し、次に、SNSにログインしてブログを作成したことをお知らせすることになる。

一方、OAuthを用いる場合は、Aさんはブログサイトにログインしてブログを作成すると、あからじめOAuthによる認可設定がなされているSNSに、自動でお知らせすることが可能となる。

OAuthの要素

では、OAuthによる認可はどのように行うのか。

OAuthはアクセスを許可する認可情報(アクセストークン)を使ってサーバー間の連携を実現しているが、下表にある要素により成立している。

OAuthの認可フロー

ここでは、先ほどのAさんの例を用いて、OAuthの認可フローのイメージをみていくことにする。

①クライアントであるブログが、SNSの認可サーバーにアクセストークンの発行を要求する。
②認可サーバーが、SNSのリソースオーナーであるAさんに、アクセストークンの発行を許可するか確認する。
③リソースオーナーであるAさんが、アクセストークンの発行を許可する。
④認可サーバーが、クライアントであるブログにアクセストークンを発行する。
⑤クライアントであるブログが、リソースサーバーであるSNSに、アクセストークンとともにお知らせを渡す。
⑥SNSにお知らせが投稿される。

以上が、OAuthの認可フローのイメージであり、これにより、個々のサービスにログインすることなく、あるサービスから別のサービスの呼び出しと利用が可能となる。

以上、OAuthを概要レベルで解説させていただきました。
なお、上記を動画にて解説したものは以下となります。
こちらもご参考にしていただけると幸いです。

https://youtu.be/9sHOEDrHceo

Discussion