用語比較
OAuthとOIDCの違い|トークン・選び方・失効の確認
一言でいうと
OAuth 2.0はAPIへのアクセスを認可する枠組みで、OIDCはOAuth 2.0の上に利用者の認証情報を伝える仕組みを加える。APIアクセスが目的ならOAuth、外部IdPの認証結果を受け取るログインならOIDCを検討し、業務上の認可はアプリ側でも確認する。
OAuthとOIDCは何が違い、API連携とログインにどう使う?IDトークン・アクセストークン・リフレッシュトークンの用途、PKCE、発行者と利用者の識別、ログアウトと権限取り消しの違いを整理。開発者・SaaS管理者向けの判断表と確認フローで、接続前の権限棚卸しとレビューへつなぎます。
- 難易度
- 中級
- 想定読者
- 開発者・SSO設計者・SaaS管理者
- 所要時間
- 約14分
- 最終確認
- 2026-10-29
- 1|目的を分ける
ログインで認証結果を受け取るのか、APIへ一定範囲のアクセスを許すのかを決める。
- 2|用途と受信先
IDトークン、API用、更新用を分け、発行者・受信先・検証の責任を揃える。
- 3|権限と失効
最小限の権限、同意、既存セッション、取り消しと反映を別に確認する。
OAuth 2.0とは
アプリへ、資源に対する一定範囲のアクセスを認可する枠組み。アクセストークンを使う。利用者に代わるアクセスだけでなく、アプリ自身のアクセスを扱う構成もある。
OIDCとは
OpenID Connect。OAuth 2.0の上で、認証を行った発行者が利用者についての情報をIDトークンとしてクライアントへ伝える仕組み。API権限や業務上の役割を自動的に保証するものではない。
違いの比較表
| 比較軸 | OAuth 2.0 | OIDC |
|---|---|---|
| 目的 | API・データへのアクセスを認可する。 | 認証した利用者についての情報をクライアントへ伝える。 |
| 使う場面 | カレンダー連携、ファイル連携、権限を限定したバックグラウンド処理。 | 外部IdPの認証結果を使うログイン。API連携には別に必要な権限を確認。 |
| 主な証拠 | アクセストークンは対象API向け。JWTに限らず、発行元とAPIの仕様で扱う。 | IDトークンはクライアント向けの認証結果。APIへのアクセス許可とは取り替えない。 |
| 利用者情報 | アクセストークンに利用者情報が含まれる実装もあるが、それを汎用のログイン証明にしない。 | IDトークン等で情報を伝える。利用者の識別には発行者とsubjectの組合せを用いる。 |
| 更新用 | リフレッシュトークンの発行は構成・ポリシー次第。APIに渡すものではない。 | OIDCでも更新用トークンが常に発行されるとは限らない。保管と失効を確認。 |
| 業務の認可 | トークンの権限と、対象・操作・必要なら利用者の権限を確認。 | ログイン後も、対象データ・操作・所属や役割に応じてアプリが判断。 |
| 終了・失効 | 同意・付与・更新用・発行済みトークンを区別し、反映範囲を確認。 | IdPのセッション、アプリのセッション、API権限を分ける。ログアウトだけで全失効とは扱わない。 |
連携を許可する前に、要求権限を確認する
アプリ、対象データ、利用者、承認者、取り消し後の確認を同じ条件で揃える。判断表で不足した条件を、次の記録へ引き継げます。
連携アプリの所有者・権限・反映を点検する使い分け
- API連携だけが必要なら、OAuthで対象API・操作・権限・利用者の有無を先に決める。ログイン用の認証結果が必要ならOIDCを検討する。
- ログインとデータ連携の両方があるなら、認証結果とAPIアクセスを同じトークンとして処理せず、それぞれの受信側と権限を確認する。
- 不審な同意に気づいた場合は、比較・調達を続ける前に管理者へ連絡し、既存の付与と活動の調査・停止を進める。
IDトークンとアクセストークンの違い:用途・検証・利用者の識別
IDトークンはクライアントが認証結果を確認し、アクセストークンは対象APIがアクセスを評価するためのもの。リフレッシュトークンは認可サーバーでの更新に使い、対象APIへ渡さない。名称やJWTの見た目だけで入れ替えない。
デコードは検証ではない。保守されるSDKと発行元の手順で、用途、発行者、対象者、期限、署名や許可した方式を確認する。IDトークンのaudはクライアントを含む必要があり、任意のAPIを使う根拠にはしない。
OIDCの利用者識別はissとsubの組合せを基準にする。メールアドレスは変更されることがあり、同じメールや表示名だけで別の発行者のアカウントを自動結合しない。具体的なアカウント連携は本人確認と製品の仕様を別に設計する。
2026年の導入・移行チェック:認可コード・PKCE・権限
2025年のRFC 9700はOAuth 2.0のセキュリティに関するBest Current Practiceで、2012年の基本仕様と区別して確認する。公開クライアントの認可コードフローではPKCEが必須、機密クライアントでも推奨される。PKCEを設定しただけで、リダイレクト先・要求との対応・IDトークンの検証・業務認可が不要になるわけではない。
利用者のパスワードを連携先アプリへ直接渡すResource Owner Password Credentials GrantはRFC 9700で使用禁止とされる。新規の接続では採用せず、既存連携に残る場合は公式の移行方法と業務影響を確認する。Implicitの古いサンプルを、そのまま新規設計へ流用しない。
接続前に、アプリと利用者の役割、対象API、読み取り・変更、同意の主体、登録済みの転送先、保管と失効の担当を記録する。Entraの委任アクセスはアプリと利用者の両方の許可が必要で、利用者不在のアプリ専用アクセスとは別に扱う。
ログアウトと権限取り消しの違い:変更後の確認方法
ログアウト、同意の取り消し、更新用トークンの失効、発行済みアクセストークンの失効、アプリ独自セッションの終了は同一操作ではない。RFC 7009も失効の伝播に遅延があり得ることを説明している。実際の停止範囲・反映は製品と対象APIの資料で確認する。
編集部作成の受入確認例は4状態。正常なログイン、許可していないデータへの拒否、権限取り消し後、既存セッションが残る状態で、期待した結果・実際・残件を比べる。許可されたテスト環境と合成データだけを使い、他社のIdPや本物の利用者へ試さない。
取り消し前に取得されたコピーまで回収できたとは扱わない。不審な同意があれば、記録の完成を待たず担当へ連絡し、停止と影響確認を並行する。単なるポリシー保存や一覧からの消失だけを対応完了の証拠にしない。
SSO・API連携の費用と運用を比較する条件
OAuthとOIDCは規格であり、その名称だけで固定の導入料金は決まらない。見積では対象アプリ・テナント・月間利用者の定義、必要な認証方式、監査・保持、接続や移行、問い合わせ対応、運用レビューの工数を揃える。これは編集部の見積確認項目で、特定製品の課金単位や無料枠を示すものではない。
価格だけで選ぶ前に、権限付与と取り消しの担当、障害時の正規の復旧、退職・契約終了時の停止確認を説明できるかを確認する。共通の棚卸し表を使えば、既存契約の機能で対応できるかと、追加の支援が必要かを区別しやすい。
よくある誤解
- OAuthとOIDCは安全な方式と危険な方式の二者択一ではない。目的と、現行の安全要件・実装・運用を分けて評価する。
- IDトークンが正しくても、APIアクセスや管理者権限を保証しない。アクセストークンがJWTであることも前提にしない。
- 正規のサインインや発行者表示だけで、同意先アプリの業務上の正当性を決めない。MFAを外す対策にはしない。
よくある質問
API連携と外部アカウントでのログインでは、OAuthとOIDCのどちらを選びますか?
APIへのアクセスを認可するならOAuthを検討し、外部IdPの認証結果を使うログインならOIDCを検討します。両方が必要なアプリでは、それぞれのトークンと受信側を分け、ログイン後の業務権限も確認します。
IDトークンをAPIのアクセストークンとして使えますか?
用途を入れ替えません。IDトークンはクライアント向けの認証結果で、アクセストークンは対象APIへのアクセスに使います。JWTをデコードできても検証成功ではなく、発行者・対象者・期限・用途・署名や許可した方式を仕様に沿って確認します。
ログアウトやパスワード変更でアプリ連携の権限も消えますか?
同じ操作とは扱いません。アプリへの既存の付与、トークン、IdPとアプリ独自のセッションを分け、取り消しと対象への反映を確認します。取得済みのデータまで回収できたことを保証するものではありません。
編集・確認情報
CyberLens編集部がIETFのOAuth・JWT・失効の仕様、OpenID Connect Core、Microsoftの権限モデルを照合。トークンの用途、導入条件、変更後の確認を改訂しました。実IdPとの接続試験、製品評価、専門家監修は実施していません。 最終確認日は 2026-10-29 です。
参考資料は用語・設計・機能例の確認先です。製品ごとの範囲は異なり、特定製品の推奨や比較全体の公式認定ではありません。資料の公開時点と現行の公式案内も合わせて確認してください。
新しい解説を見逃さない
CVE・KEVの初動対応や実務チェックリストは随時追加しています。使いやすい方法で更新を受け取れます。