OpenID Connect おーぷんあいでぃーこねくと
簡単に言うとこんな感じ!
「Googleアカウントでログイン」ってボタン、見たことあるよね?あれを実現する仕組みがOpenID Connectだよ。「あなたが誰か」を別のサービスに証明してもらう、いわば”デジタル身分証明書の仲介役”なんだ!
OpenID Connectとは
OpenID Connect(OIDC) は、インターネット上でユーザーの「本人確認(認証)」を安全に行うための標準プロトコルです。2014年にリリースされ、現在では世界中のWebサービスやアプリで広く使われています。「Googleでログイン」「Appleでサインイン」「Microsoftアカウントでログイン」といった機能は、すべてこのOpenID Connectをベースに実装されています。
OpenID Connectは、OAuth 2.0という「認可(何をしてよいか)」の仕組みの上に「認証(誰であるか)」の機能を追加したものです。OAuth 2.0だけでは「このユーザーが誰なのか」を厳密に確認する手段がなかったため、その不足を補う形で設計されました。結果として、「認証」と「認可」を一度の操作でまとめて扱える強力な仕組みになっています。
実務上は、社員が複数の業務システムに同じアカウントでログインできるシングルサインオン(SSO) の基盤として採用されるケースが多いです。一度の認証で複数システムを使えるため、パスワード管理の負担軽減やセキュリティ強化に直結します。
OpenID Connectの核心:登場人物と仕組み
OpenID Connectには3つの登場人物がいます。この関係を押さえると全体が見えてきます。
| 役割 | 英語名 | 具体例 |
|---|---|---|
| エンドユーザー | End User | ログインしようとしている人(あなた) |
| クライアント(RP) | Relying Party | ログインしたいアプリ・サービス |
| 認証サーバー(OP) | OpenID Provider | Google / Microsoft / 社内IdP など |
認証の流れ(シーケンス)
ユーザー クライアント(RP) 認証サーバー(OP)
| | |
|--「ログイン」--> | |
| |---認証リクエスト------> |
|<---------認証画面リダイレクト-------------|
|---ID/PW入力----------------------------> |
| |<---認可コード------------|
| |---コード + 秘密鍵------> |
| |<---IDトークン + アクセストークン--|
|<--ログイン完了---| |
IDトークン(JWT)が証明書の本体
認証が成功すると、認証サーバーは IDトークン を発行します。これは JWT(JSON Web Token) という形式の電子署名付き文書で、以下の情報が含まれます。
| フィールド名 | 内容 | 例 |
|---|---|---|
sub | ユーザーの一意ID | "1234567890" |
name | 氏名 | "山田 太郎" |
email | メールアドレス | "taro@example.com" |
iss | 発行者(認証サーバー) | "https://accounts.google.com" |
aud | 受取人(クライアント) | "my-app-client-id" |
exp | 有効期限(UNIXタイム) | 1712620800 |
覚え方:「認証はOIDC、認可はOAuth」
- OAuth 2.0 → 「何をしてよいか(権限)」を委任する → 認可
- OpenID Connect → 「誰であるか(身元)」を確認する → 認証
よく混同されますが、「OAuth だけではログインに使えない」という点が重要です。OIDCはOAuthの上にIDトークンという”顔写真付き身分証”を追加した、と覚えましょう。
歴史と背景
- 2005年 — OpenID 1.0 が登場。URLを使って身元証明する仕組みだったが、普及に課題あり
- 2007年 — OpenID 2.0 に改良。Blogや個人サイトでの利用が広がる
- 2012年 — OAuth 2.0 が RFC 6749 として標準化。「認可」専用の枠組みが確立
- 2014年2月 — OpenID Connect 1.0 が OpenID Foundation により正式リリース。OAuth 2.0 ベースに刷新され、モバイル・クラウド時代に対応
- 2015〜 — Google・Microsoft・Salesforce 等の大手が一斉に採用。事実上の業界標準に
- 2020年代 — ゼロトラストセキュリティの文脈でアイデンティティ管理の中核プロトコルとして再評価
OAuth 2.0 との関係と比較
OpenID ConnectとOAuth 2.0はよく混同されます。SVG図解で関係性を整理します。
主なOpenIDプロバイダー(OP)の比較
| プロバイダー | 特徴 | 主な用途 |
|---|---|---|
| 最も普及。Gmail/GWSと連携 | コンシューマー・SaaS | |
| Microsoft Entra ID | Active Directoryと統合 | 企業・Microsoft 365環境 |
| Apple | プライバシー重視。メール隠蔽機能あり | iOSアプリ |
| Okta / Auth0 | 専業IdP。カスタマイズ性が高い | エンタープライズSSO |
| Keycloak | オープンソース。自社構築向け | オンプレミス・プライベートクラウド |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 6749 | OAuth 2.0 認可フレームワーク(OIDCの土台) |
| RFC 7519 | JWT(JSON Web Token)の仕様 |
| RFC 7517 | JWK(JSON Web Key):署名検証用の公開鍵形式 |
| RFC 7636 | PKCE(Proof Key for Code Exchange):モバイル向けセキュリティ強化 |
| OpenID Connect Core 1.0 | OIDCの主要仕様(OpenID Foundation策定) |
| OpenID Connect Discovery 1.0 | プロバイダーの設定情報を自動取得する仕様 |
関連用語
- OAuth 2.0 — OpenID Connectの土台となる「認可」フレームワーク
- シングルサインオン(SSO) — 一度のログインで複数サービスを使える仕組み
- JWT(JSON Web Token) — IDトークンに使われる電子署名付きデータ形式
- SAML — 企業向けSSO標準。OIDCより古くXMLベース
- IdP(アイデンティティプロバイダー) — 認証情報を管理・提供するサービス
- ゼロトラスト — OIDCが中核を担う現代的なセキュリティモデル