Open3
OAuth 勉強の記録
OAuth2 = 委譲プロトコル
OAuth2 ≠ 認証プロトコル
委譲:
リソースオーナーに代わってリソースへアクセスを許可する。
-
保護対象リソース
- データを操作できるAPI
- 例:ファイル管理システムのAPI
-
リソース所有者
- 保護対象リソースが持つAPIへのアクセス権を持つ
- API へのアクセス権を委譲することができる
- 例:人間
-
クライアント
- API を利用するソフトウェア
- 例:ファイル管理システムのAPIを利用するソフトウェア
-
認可サーバー
- リソース所有者がクライアントへ権限を付与するとき、認可サーバーを経由する
- 認可サーバーは、リソース所有者によって許可された場合、クライアントへアクセストークンを送る
- クライアントはアクセストークンがあるため保護対象リソースへアクセスできる
認可コードフロー
- リソース所有者は、自身の代わりに振る舞ってほしい旨をクライアントへ伝える
- クライアントは、認可エンドポイントへアクセスするようリソースオーナーへ伝える
- クライアントは、認可サーバーの認可エンドポイントへアクセスする
- リソース所有者は、認可サーバーに対して自身を認証する
- リソース所有者は、クライアントは自身の代わりに振る舞ってほしいということを、認可サーバーへ伝える(委譲)
- 認可サーバーは、リソース所有者へ認可コードを渡しつつ、クライアントへアクセスするよう伝える
- リソース所有者は、クライアントへ認可コードを渡しつつ、クライアントへトークンエンドポイントへアクセスするよう伝える
- クライアントは認可コードを持って認可サーバーのトークンエンドポイントへアクセスする
- 認可サーバーはクライアントへアクエストークンを送る
- クライアントはアクセストークンを持ってリソースへアクセスする
- 保護対象リソースはクライアントによって操作されるようになる(データの編集など)