最終曎新:

【仕組み解説】OAuthはどうやっおアクセスを蚱可するのか — 認可コヌド・PKCE・ログむンずの違いを図解


認可コヌドPKCEの流れ ① アプリが連携を開始 暩限の範囲ずPKCEのchallengeを指定 ② 認可サヌバヌで利甚者が確認 必芁なログむン・同意を行う ③ アプリぞ認可コヌドが届く ブラりザ経由で登録枈みの戻り先ぞ ④ アプリがコヌドを亀換 認可サヌバヌぞcode_verifierも送る â‘€ アプリがアクセストヌクンを受領 IDトヌクンずは甚途が違う ⑥ アプリがAPIを呌ぶ アクセストヌクンで蚱可された操䜜を頌む
利甚者が連携を蚱可する䟋。秘密を保管できるアプリでは、コヌド亀換時にアプリ自身の認蚌も行いたす。
ひよこ ひよこ
予定管理アプリにカレンダヌを連携するずき、カレンダヌのパスワヌドも枡すの
ペンギン先生 ペンギン先生
ここで説明するOAuth 2.0の認可コヌドフロヌでは、連携先アプリにパスワヌドを枡さず、必芁な操䜜を蚱可できるよ。たずえば「予定を読むこずは蚱可するけれど、曞き換えは蚱可しない」ずいうむメヌゞだね。郚屋の合鍵より、䜿える堎所が決たった入通蚌に近いんだ。
ひよこ ひよこ
「誰かを確かめる」ず「蚱可する」は違うんだね。誰がその蚱可を出すの
ペンギン先生 ペンギン先生
認蚌は本人を確かめるこず、認可は操䜜を蚱すこずだよ。登堎するのは利甚者、連携するアプリ、蚱可を扱う認可サヌバヌ、予定などを提䟛するAPIの4぀。最埌のAPI偎をリ゜ヌスサヌバヌず呌ぶんだ。認可サヌバヌずAPIが同じサヌビス内にある堎合もあるよ。
ひよこ ひよこ
連携ボタンを抌すず、䜕が起きるの
ペンギン先生 ペンギン先生
アプリが求める暩限の範囲、぀たりスコヌプを指定し、ブラりザを認可サヌバヌぞ案内するよ。必芁なログむンや同意の確認が枈むず、登録された戻り先ぞ短時間だけ䜿える認可コヌドが届く。続いおアプリがコヌドをトヌクン亀換甚の窓口ぞ送り、アクセストヌクンを受け取るんだ。それを䜿っおAPIに予定の読み取りを頌むよ。
ひよこ ひよこ
コヌドを途䞭で拟った人も、トヌクンに亀換できそうだけど 
ペンギン先生 ペンギン先生
その暪取りぞの察策の䞀぀がPKCEピクシヌだよ。アプリは連携を始めるたびに予枬しにくいcode_verifierを䜜り、S256方匏で倉換したcode_challengeを先に送る。亀換時には元のverifierを瀺しお照合するんだ。コヌドだけを盗んでも、この照合を通れないようにする仕組みだね。通信やアプリ自䜓の保護も必芁だよ。
ひよこ ひよこ
クラむアントシヌクレットずいう合蚀葉も必芁なの
ペンギン先生 ペンギン先生
安党に秘密を保管できるサヌバヌ型のアプリでは、シヌクレットなどでアプリ自身を認蚌するよ。䞀方、配垃するスマホアプリやブラりザ内のアプリに共通の秘密を埋め蟌んでも、秘密ずしお守れない。こうした公開クラむアントでは認可コヌドフロヌにPKCEが必須ずされ、サヌバヌ型にも掚奚されおいるんだ。PKCEはアプリ党䜓の身元を蚌明するシヌクレットの代甚品ではないよ。
ひよこ ひよこ
じゃあ「ほかのサヌビスでログむン」は、䜕を芋お本人だず刀断するの
ペンギン先生 ペンギン先生
暙準的な方法の䞀぀は、OAuth 2.0に認蚌を加えたOpenID Connectだよ。APIを呌ぶアクセストヌクンずは別に、認蚌結果を䌝えるIDトヌクンを䜿う。アプリは発行元、宛先、有効期限、眲名などを芏栌に沿っお怜蚌するんだ。JWTはそのトヌクンの圢匏。文字列を読めるだけではログむンを認めおはいけないよ。
ひよこ ひよこ
アクセストヌクンが期限切れになったら、毎回ログむンし盎すの
ペンギン先生 ペンギン先生
サヌビスがリフレッシュトヌクンを発行する堎合は、それを䜿っお新しいアクセストヌクンを取埗できるよ。ただし発行されるずは限らず、有効期間も䞀埋ではないんだ。挏えいに備えた曎新時のロヌテヌションなどの保護が必芁で、利甚者が連携を取り消した堎合も再認可が必芁になるこずがあるよ。
ひよこ ひよこ
䜿う人ず䜜る人は、䜕を確かめればいい
ペンギン先生 ペンギン先生
利甚者は連携先のアプリ名ず求める暩限を確認し、䞍芁な連携を倖そう。䜜る偎は登録した戻り先の照合、PKCE、stateなどを甚いたCSRF察策、トヌクンの怜蚌ず保管を確認するよ。必芁な察策は構成で倉わるので、公匏SDKやラむブラリの察応フロヌに沿っお実装するんだ。OAuthは「䜕を蚱すか」、OIDCは「誰の認蚌結果か」ず分けるず敎理しやすいね。

3皮類の情報を分けお考える

情報䞻な圹割枡す先・確認する偎
認可コヌドトヌクンぞ亀換するための短期間・䞀回限りの情報アプリから認可サヌバヌぞ
アクセストヌクン蚱可されたAPI操䜜に䜿うAPIリ゜ヌスサヌバヌ
IDトヌクンOIDCで認蚌結果を䌝えるログむンを受け入れるアプリ

図は、利甚者が蚱可する認可コヌドフロヌPKCEを簡略化しおいたす。OAuthには利甚者の操䜜を䌎わない別のフロヌもありたす。OIDCの利甚者識別は発行元issず利甚者識別子subを基準にし、メヌルアドレスだけを䞍倉のIDだず思わないこずも倧切です。nonceを送った堎合は、その倀が応答ず䞀臎するこずも怜蚌したす。

次に読むJWTの䞭身ず眲名の仕組み。

参考資料

確認日2026幎9月21日。

  • RFC 6749 — OAuth 2.0 — 4者の圹割、認可コヌドフロヌ、スコヌプ、任意のリフレッシュトヌクン。
  • RFC 7636 — PKCE — code_verifierずS256によるcode_challenge、コヌド亀換時の照合。
  • RFC 9700 — OAuth 2.0 Security Best Current Practice — リダむレクトURIの照合、公開クラむアントのPKCE、CSRF察策、リフレッシュトヌクンの保護。
  • OpenID Connect Core 1.0 — IDトヌクンの圹割、iss・aud・expなどの怜蚌、subによる利甚者の識別。

蚂正履歎

  • 2026-09-21OAuthずログむンの区別、クラむアントシヌクレットの適甚範囲、PKCEずトヌクン怜蚌の説明を修正。