TERM 024
OAuth
パスワードを渡さず、限定的な操作を委任する
OAuth 2.0は、利用者が自分のパスワードを第三者アプリへ渡さず、そのアプリへ限定されたアクセス権を委任するための認可フレームワークです。
パスワードを渡さずに限定的なアクセスを委任する仕組みの全体像。
CONTENTSこの記事の目次+
QUICK OVERVIEW
30秒でつかむ
権限を受けるアプリ
利用者の代理としてResource Serverへアクセスします。
委任する範囲
読み取り・書き込みなど、許可する操作を限定します。
期限付きの権限証
APIが範囲と有効性を確認するための情報です。
01 — DEFINITION
OAuthとは
何か
OAuth 2.0は、利用者が自分のパスワードを第三者アプリへ渡さず、そのアプリへ限定されたアクセス権を委任するための認可フレームワークです。
02 — HOW IT WORKS
仕組みを
3段階で見る
細部へ入る前に、入力から結果までの役割を順番に捉えます。
委任に同意
利用者がアプリと要求される範囲を確認する。
→権限を発行
認可サーバーが用途と期限を限定したトークンを渡す。
→APIを利用
アプリがトークンを提示し、許可範囲の操作だけ行う。
OAuthを理解するときの、最小の処理単位です。
03 — ESSENTIALS
押さえるべき
3つの要点
名前だけでなく、この3点の関係まで理解すると実装へつなげやすくなります。
権限を受けるアプリ
利用者の代理としてResource Serverへアクセスします。
委任する範囲
読み取り・書き込みなど、許可する操作を限定します。
期限付きの権限証
APIが範囲と有効性を確認するための情報です。
04 — REAL WORLD EXAMPLE
写真印刷アプリへ写真の読取を許可する
利用者は写真サービスのパスワードを印刷アプリへ渡したくありません。
- 01
写真サービス上で読取scopeへ同意する
- 02
印刷アプリがアクセストークンを受け取る
- 03
トークンで選択した写真だけ取得する
05 — WATCH OUT
理解するときの
注意点
便利な仕組みほど、守備範囲と失敗の前提を明確にします。
Redirect URIを厳密に照合する
認可結果を攻撃者のURLへ送らないよう、登録済みURIと完全一致させます。
最小scopeを要求する
便利だからと広い権限を求めず、機能に必要な範囲だけにします。
IN ONE SENTENCE
OAuthとは?
パスワードを渡さずに限定的なアクセスを委任する仕組み。
