インフラ用語集へ戻る

セキュリティ・認証 / 認可

OAuthとは

Open Authorization。パスワードを渡さず、アクセス権限を委任するための仕組みです。

用語集内のカードを見る

詳細な図解

認可コードフローの登場人物
利用者ログインと同意
クライアント認可コードを受け取る
認可サーバートークンへ交換
APIscope範囲でAPI利用
  • リダイレクトURIを固定する
  • PKCEとstateを検証する
  • scopeは最小限にする

この記事で学べること

OAuthを、定義だけで終わらせず、現場で出てくる場面、確認材料、見落としやすい点、関連語とのつながりまで順に確認できます。

  1. OAuthを読むときの前提
  2. 認証ではなく権限委任として見る
  3. redirect URI、state、PKCEを固定する
  4. refresh tokenと取り消しを見る
  5. 変更証跡と引き継ぎ

実務メモ

認可コードフローはredirect URI、state、PKCEをセットで見る

どこで効くか

OAuthはSaaS連携、外部API利用、モバイルアプリ、CLI認証、管理自動化で効きます。scope過多、認可失敗、連携解除、token漏えい調査で確認します。

残す証跡

証跡にはclient ID、redirect URI、scope、state検証、PKCE有無、token期限、refresh token保管先、同意者、連携先API、取り消し手順を残します。

避けたい誤解

OAuthをログインそのものと誤解しないようにします。redirect URIのワイルドカード、state未検証、PKCEなし、scope過多、refresh tokenの平文保管は事故につながります。

まず確認すること

  • redirect URIを完全一致で確認する
  • stateとPKCEを確認する
  • scopeと取り消し手順を確認する

OAuthを読むときの前提

OAuthは、パスワードを渡さずにアクセス権限を委任するための仕組みです。外部SaaS連携、API利用、モバイルアプリ、CLI認証、管理自動化で使われます。

実務では、認可コードフロー、PKCE、state、redirect URI、scope、access token、refresh token、client secret、同意画面、取り消し手順を確認します。

証跡には、client ID、redirect URI、scope、認可サーバー、トークン期限、refresh token保管先、同意者、取り消し手順、連携先APIを残します。

認証ではなく権限委任として見る

OAuthは「ログインの仕組み」と説明されがちですが、本質は権限委任です。ユーザーのパスワードを渡さず、特定scopeの範囲でAPIを使わせます。

ログイン用途で本人確認まで扱う場合はOIDCを使います。OAuthのaccess tokenだけを見て、ユーザー認証が完了したと判断しないようにします。

  • scopeが業務用途に対して過剰でないか確認する。
  • OIDCとの役割差を説明する。
  • 同意画面の表示内容を確認する。

redirect URI、state、PKCEを固定する

認可コードフローでは、redirect URIの固定、stateによるCSRF対策、PKCEによるコード横取り対策が重要です。ワイルドカードや曖昧なredirect URIは危険です。

モバイルアプリやSPAでは、client secretを安全に保管できない前提でPKCEを使います。認可コードとtoken交換のログを分けて確認します。

  • redirect URIを完全一致で登録する。
  • state検証を確認する。
  • PKCEのcode verifier/challengeを確認する。

refresh tokenと取り消しを見る

refresh tokenは長く効くことが多く、漏えい時の影響が大きくなります。保管場所、暗号化、ローテーション、失効、利用ログを確認します。

連携解除や退職、SaaS利用停止時にtokenを取り消せるかが運用上重要です。同意を消しても既存tokenが残る場合があります。

  • refresh tokenの保管先を確認する。
  • 取り消し手順を確認する。
  • 連携棚卸しで未使用tokenを削除する。

変更証跡と引き継ぎ

OAuth対応では、client、scope、redirect URI、token期限、同意者、取り消し方法、連携先APIを残します。連携先の権限変更は業務影響と漏えい影響の両方に関係します。

引き継ぎでは、認証基盤担当、API担当、SaaS管理者、関連語としてOIDC、JWT、Token、Claimを残すと確認しやすくなります。

  • scope変更の理由を記録する。
  • client secretの保管先を残す。
  • 連携解除時のtoken失効を確認する。

関連語

同じ主要カテゴリの用語

セキュリティ・認証の学習順

同じ主要カテゴリの用語をまとめて確認できます。現在の用語を起点に、前後の用語へ進むと文脈を保ったまま読み進められます。

InfraEngKit内の関連機能