ざっくり OAuth2.0 を理解する
概要
OAuth はサードパーティアプリケーションによる HTTPサービスへの限定的なアクセスを可能にする認可フレームワークである。
※実際は認可エンドポイント、リダイレクトURI、トークンエンドポイントなどが絡み、もっと複雑なシーケンスだが、ざっくり理解する分には上図で問題ない
メリット
OAuth を使わない場合、サードパーティアプリに HTTPサービスのユーザー名、パスワード(ユーザー情報)を教える必要がある。 その場合、下記のリスクが発生する。
OAuth はアクセストークンを利用するため、ユーザー情報を教える必要がない。
OAuth のアクセストークンはBearerトークンであるため、漏洩した場合は不正アクセスのリスクがあるものの、アクセストークンには有効期限があり、かつ、限定した権限しかないため、影響は局所的に抑えられる。
OAuth はあくまで認可フレームワークなので、認証に関しては仕様上触れていない。
よくあるパターンとしては、認可フローの中で HTTPサービスのログインページにリダイレクトさせ、ユーザーにログインさせることで認証を実現している。