OAuth 2.0 ・ はじめの一歩

アプリに渡すのは、
範囲を絞った「許可証」

自分のデータを、別のアプリに使わせる仕組みです。[1]

図書館で、友だちに「予約した本だけ受け取れる券」を渡すイメージ。

例:写真アプリに、写真置き場を連携する

1

アプリが、許可をもらいに案内する

写真アプリ使いたい側
写真置き場許可を出す窓口

あなたのブラウザで、写真置き場の画面へ。

2

あなたが、写真置き場で許可する

あなた
「写真を読む」この範囲を許可

必要なら写真置き場にログイン。
そのパスワードを写真アプリには渡しません。

3

アプリが「引換券」を「許可証」に替える

認可コード
一度だけ使う引換券
アクセストークン
APIへ見せる許可証

窓口がコードを返し、アプリが窓口で交換します。

PKCE(ピクシー)は、この交換を始めたアプリか確かめ、コードの横取りに備える仕組みです。[2]

4

アプリが、許可証を見せて写真を読む

写真アプリトークンを送る
写真のAPIデータを渡す窓口

APIがトークンの有効性と権限を確認します。

○ 写真を読む× 読み取り権限だけで写真を削除

代表的な「認可コード方式」の概念図です。許可画面が毎回出るとは限りません。許可する操作の範囲を「スコープ」と呼びます。[1]

OAuth:何をしてよい?

アプリに操作を許す「認可」。
アクセストークンを使います。[1]

OpenID Connect:あなたは誰?

OAuthの上に本人確認を加える「認証」。
IDトークンで本人情報を伝えます。[3]

OAuthは、自分の代わりにできることを絞って、アプリへ任せる仕組みです。