暗号技術・PKI・認証基盤 重要度:★★★出題: AM2・PM1
OAuth 2.0 / OpenID Connect (OIDC)
おーおーすにーてんぜろ / おーぷんあいでぃーこねくと / OAuth 2.0 / OpenID Connect
APIアクセスの権限委譲プロトコル(OAuth 2.0)と、その上にJWT形式のIDトークンによる利用者認証を拡張した標準規格(OIDC)。
3行速習ポイント
- OAuth 2.0は「認可(Authorization)」のプロトコルであり、リソースオーナーの同意のもとクライアントにアクセストークンを発行
- OIDCはOAuth 2.0を拡張した「認証(Authentication)」プロトコルであり、IdPが署名付きIDトークン(JWT)を発行
- 認可コードフローでは、CSRF対策のstateパラメータと、認可コード横取り攻撃対策のPKCE(Proof Key for Code Exchange)が必須
図解
図OAuth 2.0 / OIDC 認可コードフロー(PKCE・state・nonce検証)
11. 認可リクエスト送信
要求・事前対策state と code_challenge (PKCE) を付与
クライアントがCSRF防止用のstate、リプレイ防止用のnonce、認可コード横取り防止用のcode_challengeを送出
22. 利用者認証と認可コード発行
IdP検証リダイレクトURIの事前登録完全一致を検証
認可サーバ(IdP)が利用者を認証し、オープンリダイレクト悪用を防ぐため登録済みURIと完全一致確認後に認可コードを返却
33. トークンリクエスト (PKCE照合)
横取り阻止state一致確認と code_verifier による検証
クライアントがstateを照合後、バックチャネルでcode_verifierを送信。認可サーバがハッシュ計算して一致を確認
44. IDトークン検証・APIアクセス
認証・認可完了JWS署名・iss・aud・exp・nonceを厳格検証
発行されたIDトークン(JWT)の電子署名とクレームを検証してログインを完了し、アクセストークンでAPIを呼び出す
💡 OAuth 2.0は「認可(API権限委譲)」、OIDCは「認証(IDトークンによる本人確認)」。各検証パラメータの役割と攻撃対策の対応が最頻出
概要と本質
Webサービスやスマホアプリ間のAPI連携およびソーシャルログインの基盤技術です。OAuth 2.0単体を認証に流用するとアクセストークン差し替え攻撃などの脆弱性が生じるため、本人確認(ログイン)には必ずOpenID Connect(IDトークンの署名・aud・iss・nonce検証)を使用します。
重要ポイント・コア概念
- stateパラメータ:認可リクエスト時とコールバック時でランダム値を照合し、CSRF(アカウント紐付け強制攻撃)を防止
- PKCE(ピクシー:RFC 7636):code_verifierとcode_challenge(ハッシュ値)を用い、認可コードが傍受されてもトークン取得を阻止
- リダイレクトURIの完全一致検証:オープンリダイレクトを悪用した認可コード漏洩を防ぐため、事前登録URIと厳密一致確認
午後記述・情報セキュリティ対策での攻略ポイント
午後試験の最頻出テーマの一つ。認可コードフローのシーケンス図の穴埋め、state/nonce/PKCEそれぞれの役割、リダイレクトURI検証の不備を突いた攻撃手口と対策が繰り返し問われます。
午後記述で使える加点キーワード(クリックでコピー)
関連する重要用語
この用語が出題された過去問を解く(1分演習)
即時アウトプットで定着情報処理安全確保支援士 過去問演習で実践力を鍛える