ざっくり OAuth2.0 を理解する

概要

OAuth はサードパーティアプリケーションによる HTTPサービスへの限定的なアクセスを可能にする認可フレームワークである。

※実際は認可エンドポイント、リダイレクトURIトークンエンドポイントなどが絡み、もっと複雑なシーケンスだが、ざっくり理解する分には上図で問題ない

メリット

OAuth を使わない場合、サードパーティアプリに HTTPサービスのユーザー名、パスワード(ユーザー情報)を教える必要がある。 その場合、下記のリスクが発生する。

OAuth はアクセストークンを利用するため、ユーザー情報を教える必要がない。

OAuth のアクセストークンはBearerトークンであるため、漏洩した場合は不正アクセスのリスクがあるものの、アクセストークンには有効期限があり、かつ、限定した権限しかないため、影響は局所的に抑えられる。

OAuth はあくまで認可フレームワークなので、認証に関しては仕様上触れていない。

よくあるパターンとしては、認可フローの中で HTTPサービスのログインページにリダイレクトさせ、ユーザーにログインさせることで認証を実現している。