インフラ用語集へ戻る

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

OIDCとは

OpenID Connect。OAuth 2.0を土台にユーザー認証情報を扱うための標準仕様です。

用語集内のカードを見る

詳細な図解

認証情報としてのIDトークン
利用者ログイン開始
RP/アプリ認証要求とnonce
IdPIDトークンを発行
セッション署名とclaim確認後にログイン
  • OAuthは認可、OIDCは認証を足す
  • iss/aud/exp/nonceを検証
  • JWKSキャッシュと鍵更新に注意

この記事で学べること

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

  1. OIDCを読むときの前提
  2. ID tokenとaccess tokenを分ける
  3. nonceとclaimを検証する
  4. JWKSとログアウトを運用に入れる
  5. 変更証跡と引き継ぎ

実務メモ

ID token、access token、claim mappingを分けて確認する

どこで効くか

OIDCはWebログイン、モバイルアプリ、クラウド認証、SSOで効きます。ログインループ、API認可失敗、IdP鍵更新、Claim不足の調査で確認します。

残す証跡

証跡にはissuer、client ID、redirect URI、scope、nonce、ID tokenのiss/aud/exp/sub、JWKS kid、claim mapping、ログアウト仕様、エラー全文を残します。

避けたい誤解

ID tokenは本人確認、access tokenはAPIアクセスに使います。ID tokenをAPI認可に流用したり、nonceやissuer/audienceを検証しないとSSO障害や認可ミスにつながります。

まず確認すること

  • ID tokenとaccess tokenの用途を分ける
  • nonceとiss/aud/expを確認する
  • JWKSキャッシュとkidを確認する

OIDCを読むときの前提

OIDC(OpenID Connect)は、OAuth 2.0を土台にユーザー認証情報を扱う標準仕様です。Webログイン、モバイルアプリ、クラウド認証、SSOで使われます。

実務では、issuer、client ID、redirect URI、scope、nonce、ID token、access token、JWKS、claim、セッション、ログアウト動作を確認します。

証跡には、issuer、client ID、redirect URI、scope、ID tokenのiss/aud/exp/nonce、JWKS kid、ログイン失敗理由、利用者識別子を残します。

ID tokenとaccess tokenを分ける

OIDCでは、ID tokenはログインした利用者の本人確認に使い、access tokenはAPIアクセスに使います。ID tokenをAPI認可の代わりに使う設計は避けます。

ログイン成功に見えても、API側のscopeやaudienceが違えばAPIは拒否すべきです。画面セッションとAPI認可を分けて確認します。

  • ID tokenの用途を本人確認に限定する。
  • access tokenのaudienceとscopeを見る。
  • 画面ログインとAPI許可を分ける。

nonceとclaimを検証する

OIDCログインでは、nonceにより認証応答の差し替えや再利用を検出します。ID tokenのiss、aud、exp、iat、nonce、subを検証してからセッションを作ります。

メールアドレスやグループなどのClaimは、IdPや設定により意味が変わります。認可に使う場合は、出所と更新タイミングを確認します。

  • nonce検証を確認する。
  • iss、aud、exp、subを確認する。
  • 認可に使うClaimの出所を見る。

JWKSとログアウトを運用に入れる

OIDCではJWKSで署名鍵を取得します。IdPの鍵更新、API側のキャッシュ、kid不一致はSSO障害の原因になります。

ログアウトはアプリのセッション、IdPセッション、他アプリのSSO状態が絡みます。期待するログアウト範囲を決め、利用者へ説明できるようにします。

  • JWKSキャッシュと鍵更新を確認する。
  • kid不一致時のログを確認する。
  • ログアウト範囲を明記する。

変更証跡と引き継ぎ

OIDC対応では、issuer、client設定、redirect URI、scope、claim mapping、JWKS、ログアウト仕様、障害時のエラーを残します。IdP、アプリ、APIで所有者が分かれやすいためです。

引き継ぎでは、IdP管理者、アプリ担当、API担当、関連語としてOAuth、JWT、Claim、SSOを残すと確認しやすくなります。

  • client設定の変更前後を保存する。
  • claim mappingの根拠を記録する。
  • SSO障害時の確認順を残す。

関連語

同じ主要カテゴリの用語

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

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

InfraEngKit内の関連機能