Why It Fits
選ぶ理由
- OAuth に認証を標準化して追加
- ID トークン(JWT)で本人を検証
- ソーシャルログインの定番
Product Profile
認証プロトコル(OAuth 2.0 上)
OAuth 2.0 の上に「誰がログインしたか(認証)」を足した層。ID トークンで本人情報を安全に伝える、ソーシャルログインの実体。
Specifications
Introducing
Decision Guide
採用する理由と、事前に受け入れるべきトレードオフを分けて確認します。
Why It Fits
Trade-offs
Deep Dive
OpenID Connect(OIDC)は、OAuth 2.0 の上に「本人確認(認証)」を足した仕組みです。OAuth 2.0 だけでは「何にアクセスしてよいか」しか分かりませんが、OIDC は「誰がログインしたのか」をきちんと伝えられます。
「Google でログイン」「Apple でログイン」といったソーシャルログインの認証部分は、この OIDC が担っています。
認証が成功すると、認可サーバ(OIDC では IdP とも呼ばれる)はアクセストークンに加えて ID トークンを発行します。ID トークンは JWT 形式で、ログインしたユーザーの識別子や発行元などのクレームを含みます。
ID トークン(JWT)の中身の例(クレーム)
- iss: 発行者(誰が発行したか)
- sub: ユーザーの一意な識別子
- aud: 受け取るべきアプリ
- exp: 有効期限
アプリは ID トークンの署名と内容を検証し、「確かにこの IdP が認証したユーザーだ」と確認します。
OAuth 2.0 は認可(アクセス委譲)、OIDC は認証(本人確認)が主目的です。OIDC は OAuth 2.0 を土台にしているため、認証と認可を一貫した流れで扱えます。
自前で ID とパスワードを管理せず、外部 IdP に認証を任せたい場面に向きます。ソーシャルログインや、企業向けの SSO 基盤として広く使われます。
ID トークンは必ず署名と発行元(iss)、対象アプリ(aud)、有効期限(exp)を検証してから信頼します。検証を省くと、なりすましたトークンを受け入れてしまう恐れがあります。
Implementation View
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
ソーシャルログイン
種別: 認証プロトコル(OAuth 2.0 上) / 目的: 認証(本人確認) / トークン/形式: ID トークン(JWT)
ID トークン(JWT)で本人を検証
OAuth の理解が前提
Best Fit