OpenID Connect(OIDC)は、OAuth 2.0 を土台にして「認証(誰がログインしたか)」を扱えるようにした規格です。 OpenID Foundation が策定し、OpenID Connect 1.0 は 2014 年に最終化されました(仕様は openid.net で公開)。「Googleでログイン」「Appleでサインイン」といったソーシャルログインの実体は、ほぼこの OIDC です。
OAuth 2.0 との関係(最大の混乱ポイント)
OIDC では、この認証情報が ID トークン(JWT 形式)としてアプリへ渡ります。「OAuth でログイン」という言い方をよく見ますが、厳密には OAuth 2.0 単体は認証の仕組みを定めておらず、ログインに使えているのは OIDC が上に乗っているからです。
SAML との違い
SAML が XML ベースで企業向け SaaS に強いのに対し、OIDC は JSON ベースでモバイルアプリや SPA と相性がよく、新規開発では OIDC が選ばれることが多いです。詳しい対比表は SAML の用語ページに置いています。
実務の定番事故
- ID トークンの検証省略 … 署名・発行者(issuer)・宛先(audience)を検証せずに受け入れると、なりすましが成立する
- アクセストークンを ID トークン代わりに使う … 用途が違うトークンの混用は脆弱性の定番
- リダイレクト URI の管理不備 … 許可 URI が緩いと、認可コードを攻撃者へ横取りされる
ライブラリの標準機能で検証するのが原則で、自前実装は避けるのが安全です。
近い用語との違い
- OAuth 2.0 … 土台。認可のみで認証は扱わない
- SAML … 同じ「認証結果を渡す」目的の先行規格
- IdP … OIDC の文脈では OpenID Provider(OP)とも呼ばれる認証の中心
両者の切り分けは OAuth 2.0 と OpenID Connect (OIDC) の違い で詳しく扱っています。