採用に向く条件
選ぶ理由
- OAuth に認証を標準化して追加
- ID トークン(JWT)で本人を検証
- ソーシャルログインの定番
製品プロフィール
認証プロトコル(OAuth 2.0 上)
OAuth 2.0 の上に「誰がログインしたか(認証)」を足した層。ID トークンで本人情報を安全に伝える、ソーシャルログインの実体。
基本情報
選定ガイド
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
採用に向く条件
事前に確認する条件
詳しい解説
OpenID Connect(OIDC)は、OAuth 2.0 の上に「本人確認(認証)」を足した仕組みです。OAuth 2.0 だけでは「何にアクセスしてよいか」しか分かりませんが、OIDC は「誰がログインしたのか」をきちんと伝えられます。
「Google でログイン」「Apple でログイン」といったソーシャルログインの認証部分は、この OIDC が担っています。
横にスクロール
認証が成功すると、認可サーバー(OIDC では IdP:Identity Provider とも呼ぶ)はアクセストークンに加えて ID トークンを発行します。ID トークンは JWT 形式で、ログインしたユーザーの識別子や発行元などのクレームを含みます。
ID トークン(JWT)の主なクレーム
- iss: 発行者(どの IdP か)
- sub: ユーザーの一意な識別子
- aud: 受け取るべきアプリ(クライアント ID)
- exp: 有効期限
- nonce: リプレイ防止用の値
アプリは ID トークンの署名と内容を検証し、「確かにこの IdP が認証したユーザーだ」と確認します。ユーザーの追加属性は UserInfo エンドポイントから取得でき、openid に加えて profile・email などのスコープで取得範囲を指定します。IdP の設定は ディスカバリ(.well-known/openid-configuration) と公開鍵(JWKS)で自動取得できるのも特徴です。
OAuth 2.0 は認可(アクセス委譲)、OIDC は認証(本人確認)が主目的です。OIDC は OAuth 2.0 を土台にしているため、認証と認可を一貫した流れで扱えます。
| 観点 | OIDC | SAML |
|---|---|---|
| 形式 | JSON / JWT | XML |
| 世代・相性 | モバイル・SPA・API に好適 | 歴史が長く企業 SaaS に浸透 |
| 土台 | OAuth 2.0 上の認証層 | 独立したフェデレーション仕様 |
| 取得情報 | ID トークン+UserInfo | SAML アサーション |
自前で ID とパスワードを管理せず、外部 IdP に認証を任せたい場面に向きます。ソーシャルログインや、企業向けの SSO 基盤として広く使われます。
ID トークンは、署名(IdP の公開鍵)に加えて発行元(iss)、対象アプリ(aud)、有効期限(exp)、そして nonce を検証してから信頼します。検証を省くと、なりすましたトークンやリプレイを受け入れてしまう恐れがあります。フローは認可コード+PKCE を用い、アクセストークン(認可用)と ID トークン(認証用)の役割を混同しないことが重要です。
総じて OIDC は、OAuth 2.0 の上に標準化された認証層を載せることで、外部 IdP への認証委譲とシングルサインオンを安全に実現する現代的な方式です。
実装・運用の視点
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
ソーシャルログイン
種別: 認証プロトコル(OAuth 2.0 上) / 目的: 認証(本人確認) / トークン/形式: ID トークン(JWT)
ID トークン(JWT)で本人を検証
OAuth の理解が前提
向いている用途