OAuth2.0について
2023年8月25日 おじさん
目次
・概要
・必要な理由
・登場人物
・通信の流れ
・まとめ
概要
OAuth2.0:
認可を行うプロトコル
あらかじめ、リソースを利用するクライアントにアクセストークンを渡しておき、
アクセストークンを持つ場合だけ、リソースへのアクセスを許可する仕組みを定義
クライアント(アプリ等)にユーザIDやパスワードを持たせなくて済む
認可:
安全性を確認してアクセス権限を与えること
アクセストークン:
アクセスを認められたという証明書のようなもの
アクセス対象や誰がアクセスするか等の情報が含まれてる
必要な理由
悪意あるクライアントからリソースを守るため
クライアントがユーザID等を管理する場合:
・リソースすべてにアクセス
・自由に操作
・ユーザに知られずになんでもできる
OAuthを使う場合:
・ユーザID等を管理
・リソースへのアクセスにユーザの認証が必要
・クライアントはユーザが操作する時だけアクセス
登場人物
ユーザ:
クライアントを使う人
クライアント:
サーバが管理してるデータを使うアプリ等
サーバ:
・認可サーバ
アクセストークンを出す
・リソースサーバ
データを管理
登場人物
リソースサーバ
認可サーバ
クライアント
ユーザ
通信の流れ
クライアント
ユーザ
プロフィール画像
見たい
1.操作
通信の流れ
リソースサーバ
認可サーバ
クライアント
ユーザ
許可して
2.アクセストークン要求
通信の流れ
認可サーバ
ユーザ
同意して
3.ユーザの許可を取る
アプリに操作を
許可しますか
はい いいえ
ユーザID:****
パス:****
通信の流れ
アプリに操作を
許可しますか
はい いいえ
ユーザID:****
パス:****
認可サーバ
ユーザ
OK
同意して
4.許可
通信の流れ
リソースサーバ
認可サーバ
クライアント
ユーザ
許可して
OK
5.アクセストークン発行
アクセス
トークン
通信の流れ
リソースサーバ
認可サーバ
クライアント
ユーザ
画像ちょうだい
アクセス
トークン
6.リソース要求
通信の流れ
リソースサーバ
認可サーバ
クライアント
ユーザ
画像ちょうだい
アクセス
トークン
・・・
(検証中)
通信の流れ
リソースサーバ
認可サーバ
クライアント
ユーザ
OK
画像
7.検
証
後
に
ア
ク
セ
ス
許
可
通信の流れ
リソースサーバ
認可サーバ
クライアント
ユーザ
画像
表示
通信の流れ
アクセストークンの取得:
・ユーザの利用するクライアントが認可サーバにアクセストークンを要求
・認可サーバがユーザに認可画面を表示、
クライアントに権限を与えていいかを尋ねる
・許可された場合、クライアントにアクセストークンが発行される
リソースへのアクセス:
・クライアントはリソースを要求をアクセストークンと一緒に、
リソースサーバに送信
・リソースサーバは、アクセストークンからクライアントが
アクセス権限を持ってるかを検証
・検証結果が大丈夫なら、クライアントはリソースにアクセス
通信の流れ
アクセストークンの取得:
・ユーザの利用するクライアントが認可サーバにアクセストークンを要求
・認可サーバがユーザに認可画面を表示、
クライアントに権限を与えていいかを尋ねる
・許可された場合、クライアントにアクセストークンが発行される
リソースへのアクセス:
・クライアントはリソースを要求をアクセストークンと一緒に、
リソースサーバに送信
・リソースサーバは、アクセストークンからクライアントが
アクセス権限を持ってるかを検証
・検証結果が大丈夫なら、クライアントはリソースにアクセス
ここを標準化
まとめ
・OAuth2.0について
・認可をおこなうプロトコル
・悪意あるクライアントからリソースを守る
・クライアントはアクセストークンを使いリソースへアクセス
・OAuth2.0はアクセストークンの発行を標準化したもの

OAuth2.0について