学習背景
実務でgoogle apiを使用するにあたり、OAuthという用語を見かける機会があり、どいういう意味だったのか過去にも書籍やネットで調べてみましたが、腑に落ちなかった記憶があり、改めて学習し直しました。以下の山浦清透さんが出されている解説動画がとてもわかり易かったため、解説動画を見て、自身の知識を整理するためにも記事を書きました。
OAuthとは
サービスにログインする際にID・パスワードを使用せずに以下の赤枠で囲ったボタンを押すことによって、サービスにログインできるようになりました。その際に利用している仕組みがOAuth(オーオース)です。
このOAuthを使うと何が嬉しいのかと言いますと、
まずID・パスワードを使用せずにログインすることができるため、それらの管理が不要であることや変更する手間がいらないことです。 また、セキュリティ的にも安全であることです。
例えば、googleスプレッドシートに書いてあるデータをグラフ化するサービス(サードパーティアプリ(※))があったとします。そのサービスを利用するために、OAuthを使用しなかった場合、そのサービスからスプレッドシートにアクセスするために、googleのID・パスワードをサードパーティアプリに保存しなければいけません。そのため、サードパーティアプリからID・パスワードが外部に漏れる可能性もございます。しかし、OAuthを使用すると、サードパーティアプリでは、googleのID・パスワードの管理が不要になるため、セキュリティ的にも安全です。
他にもサードパーティアプリからサービスへ限定的にアクセスさせることができるため、セキュリティ的に安全になります。例えば、上記のサードパーティアプリがスプレッドシート以外にもgoogleメールのようなサービスを操作できてしまうと、個人情報が外部に漏れてしまったり、データが消されてしまったりする可能性があります。OAuthを使用すると、サービスを限定的にアクセスさせるようにできるため、上記のような事態を防ぐこともできます。
※そもそもサードパーティアプリとは、ある特定アプリの非純正の関連アプリのことです。
OAuthをまとめると以下です。
認可(※)のフレームワーク
サードパーティアプリがHTTPサービスへ限定的にアクセスできるようにする。
ID・パスワードなしでサービスをアクセスできる。
※認可とは認証されて、利用権限があるサービスを使用して良いという許可されていること。例えばGoogleのメールだけ使用権限がある場合はメールを使用できるが、スプレッドシートの権限がない場合は許可がないため、使用できない。