はじめに
こんにちは。Engawaです。
最近の業務でOAuthについて触れる機会がありました。
それまでの業務では担当経験はなく全く仕組みを理解できていなかったため、これを機に仕組みについてちょっと学習してみました!
参考にした書籍は以下になります。
https://www.amazon.co.jp/dp/484437818Xwww.amazon.co.jp
OAuthとは
OAuthとは「サードパーティアプリケーションによるHTTPサービスへの限定的なアクセスを可能にする認可フレームワーク」です。
上記だけだと意味が分からないので、画像編集アプリを例にします。
画像編集アプリでGoogle Photo上の画像を編集する際、ログインアカウントにはGoogleアカウントを使いたい場合を考えてみましょう。
- サードパーティアプリ→画像編集アプリ
- HTTPサービス→Google Photo
- 限定的なアクセス:ユーザーが許されている操作は画像のダウンロードのみで、それ以外の操作をしようとした場合は、HTTPサービスはアクセスを拒否しなくてはならない
- 認可フレームワーク:アクセストークン発効方法のルール(全てのアクセスに対して、許可していいアクセスかどうかをアクセストークンを用いて判断する。)
上記の例を踏まえてOAuthの「サードパーティアプリケーションによるHTTPサービスへの限定的なアクセスを可能にする認可フレームワーク」を言い換えると
『画像編集アプリによるGoogle Photoへの限定的なアクセスを可能にするための「アクセストークン発効方法のルール」』となります。
各役割の関係性
各役割
OAuthの基本的な役は大体以下の4つになります。
- リソースオーナー
- リソースの所有者。サードパーティアプリにリソースへのアクセス権限を委譲しており、決められた権限の範囲内でリソースへのアクセスが可能になります。
- クライアント
- 保護されたリソースにアクセスしようとするアプリケーション。
- リソースサーバー
- 認可サーバー
それぞれの関係
続いてそれぞれの関係についてざっくりまとめます。
① 認可サーバに対して「リソースへのアクセス権」を要求する
② 認可サーバーは「クライアントへのアクセス権の委譲」についてリソースオーナーに確認を行う
③ リソースオーナーはアクセス権の委譲に対して同意をする
④ 認可サーバーはアクセス権が委譲された証であるアクセストークンをクライアントに発行する
⑤ クライアントはアクセストークンをもってリソースへのアクセスを実施する
終わりに
今回はOAuthについて、学習を行った内容を簡単に書かせていただきました。
まだまだ理解できないことがたくさんあるので引き続き学習を行なっていき、OAuthに関する記事の作成を行なっていければなぁと思います。