Open3

OAuth 勉強の記録

sutoneasutonea

OAuth2 = 委譲プロトコル
OAuth2 ≠ 認証プロトコル

委譲:
リソースオーナーに代わってリソースへアクセスを許可する。

sutoneasutonea
  • 保護対象リソース

    • データを操作できるAPI
    • 例:ファイル管理システムのAPI
  • リソース所有者

    • 保護対象リソースが持つAPIへのアクセス権を持つ
    • API へのアクセス権を委譲することができる
    • 例:人間
  • クライアント

    • API を利用するソフトウェア
    • 例:ファイル管理システムのAPIを利用するソフトウェア
  • 認可サーバー

    • リソース所有者がクライアントへ権限を付与するとき、認可サーバーを経由する
    • 認可サーバーは、リソース所有者によって許可された場合、クライアントへアクセストークンを送る
    • クライアントはアクセストークンがあるため保護対象リソースへアクセスできる
sutoneasutonea

認可コードフロー

  1. リソース所有者は、自身の代わりに振る舞ってほしい旨をクライアントへ伝える
  2. クライアントは、認可エンドポイントへアクセスするようリソースオーナーへ伝える
  3. クライアントは、認可サーバーの認可エンドポイントへアクセスする
  4. リソース所有者は、認可サーバーに対して自身を認証する
  5. リソース所有者は、クライアントは自身の代わりに振る舞ってほしいということを、認可サーバーへ伝える(委譲)
  6. 認可サーバーは、リソース所有者へ認可コードを渡しつつ、クライアントへアクセスするよう伝える
  7. リソース所有者は、クライアントへ認可コードを渡しつつ、クライアントへトークンエンドポイントへアクセスするよう伝える
  8. クライアントは認可コードを持って認可サーバーのトークンエンドポイントへアクセスする
  9. 認可サーバーはクライアントへアクエストークンを送る
  10. クライアントはアクセストークンを持ってリソースへアクセスする
  11. 保護対象リソースはクライアントによって操作されるようになる(データの編集など)