OpenID Connect(OIDC) は、OAuth 2.0 の上に「認証(ログインしているのは誰か)」のレイヤーを追加した標準仕様です。2014 年に OpenID Foundation により策定され、いまや Google・Microsoft・Apple をはじめ、ほぼすべての「◯◯でログイン」の裏側で使われています。

OAuth 2.0 と OpenID Connect の違い

混同されがちですが、役割が異なります。

OAuth 2.0 OpenID Connect
目的 認可(リソースへのアクセス許可) 認証(ユーザー本人の確認)
主な発行物 アクセストークン IDトークン(+アクセストークン)
「あなたの写真フォルダへのアクセスを許可」 「あなたが田中さんであることを証明」

OAuth 2.0 は「鍵を渡す」仕組み、OpenID Connect は「身分証を見せる」仕組み、と考えるとわかりやすいでしょう。

IDトークンとは

OIDC の中心は IDトークンです。これは JWT(JSON Web Token) 形式で署名された、ユーザーに関する主張(クレーム)の集合です。

代表的なクレーム:

  • iss — トークンの発行者(IdP)
  • sub — ユーザーの一意な識別子
  • aud — このトークンの受け手(アプリ)
  • exp — 有効期限
  • email / name — ユーザー情報(スコープ次第)

アプリは IdP の公開鍵で署名を検証することで、「この情報は確かにあの IdP が発行したものだ」と信頼できます。

主要なフロー

  1. Authorization Code Flow — 最も推奨される標準フロー。Webアプリ・モバイルで使う。PKCE と組み合わせるのが現在のベストプラクティス。
  2. Implicit Flow — 旧来の SPA 向けフロー。セキュリティ上の理由から非推奨になりつつある。
  3. Client Credentials — ユーザーが介在しないサーバー間通信(厳密には OAuth 側)。

主要なエンドポイント

OIDC の IdP(OpenID Provider)は、おおむね次のエンドポイントを公開します。/.well-known/openid-configuration(Discovery)から自動取得できます。

エンドポイント 役割
Authorization 認可リクエストの受け口(ログイン画面へ)
Token 認可コードをトークンに交換
UserInfo アクセストークンでユーザー属性を取得
JWKS IDトークン署名検証用の公開鍵を配布
Discovery 上記の所在やサポート機能を JSON で公開

スコープとクレーム

スコープで「取得する情報の範囲」を指定します。openid は必須で、これがあると OIDC として扱われます。

  • openid — 必須。IDトークンの発行を要求
  • profile — 氏名・表示名など
  • email — メールアドレスと検証状態
  • offline_access — リフレッシュトークンを要求

必要最小限のスコープに絞るのが原則です(過剰取得は避ける)。

なぜ OIDC が標準になったのか

  • JSON / REST ベースで実装が容易(XML の SAML に比べ軽量)
  • モバイル・SPA・サーバーサイドのすべてに対応
  • ソーシャルログインからエンタープライズ SSO まで同じ仕組みで賄える
  • Discovery / JWKS により鍵更新や設定変更に追従しやすい

よくある誤解

  • 「OAuth でログインできるから OAuth は認証だ」 → OAuth は認可。ユーザー識別の保証は OIDC(IDトークン)が担う。
  • 「アクセストークンでユーザーを識別すればよい」 → アクセストークンは API 用。本人確認には IDトークンを使う。
  • 「IDトークンを API のアクセスに使う」 → 用途が逆。IDトークンはクライアントが本人確認に使うもの。

エンタープライズ利用の勘所

  • IdP(Entra ID・Okta ほか)が OIDC をサポートしていれば、SaaS 連携も自社アプリも同じ仕組みで統一できる
  • 高セキュリティ用途では FAPI プロファイルや mTLS を併用する
  • セッション失効の横展開には Shared Signals(CAEP/RISC) が利用できる

実装の具体例は GoでOpenID Connectログインを実装する、検証の注意は JWT検証の落とし穴 を参照してください。次は、エンタープライズで根強く使われる SAML との比較 を見てみましょう。全体設計は 企業SSO完全ガイド にまとめています。