OpenID Connectとは
この記事は約 2 分で読めます
OpenID Connect (OIDC) とは、OAuth 2.0 の認可フレームワークの 上に認証レイヤーを追加したプロトコルです。2014 年に OpenID Foundation によって 策定され、「Google でログイン」「Apple でサインイン」といったソーシャルログインの 技術基盤として広く普及しています。OAuth 2.0 が「何にアクセスできるか (認可)」を 扱うのに対し、OIDC は「誰であるか (認証)」を標準化した点が最大の特徴です。
OAuth 2.0 (認可) と OIDC (認証) の違い
OAuth 2.0 と OIDC は混同されやすいですが、解決する問題が根本的に異なります。 OAuth 2.0 は「このアプリに写真フォルダへのアクセスを許可する」といった認可の仕組みであり、 ユーザーが誰であるかを証明する機能は持っていません。OIDC は OAuth 2.0 のフローに ID トークンという認証情報を追加することで、この欠落を補います。
| 観点 | OAuth 2.0 | OIDC |
|---|---|---|
| 目的 | 認可 (リソースへのアクセス許可) | 認証 (ユーザーの本人確認) |
| 発行するトークン | アクセストークン | ID トークン + アクセストークン |
| ユーザー情報 | 標準化されていない | UserInfo エンドポイントで標準化 |
| 例え | ホテルのルームキー (部屋に入れる) | パスポート (本人を証明する) |
OAuth の権限リスクの記事で、 認可と認証を混同した場合に生じるセキュリティ上の問題を詳しく解説しています。
ID トークン (JWT) の役割
OIDC の核心は ID トークンです。これはJWT (JSON Web Token) 形式で 発行され、ユーザーの識別情報 (サブジェクト)、発行者、有効期限、認証時刻などの クレームを含みます。SP (Relying Party) は ID トークンの署名を検証することで、 トークンが改ざんされていないことと、信頼できる IdP が発行したものであることを確認します。
Discovery エンドポイント
OIDC プロバイダーは .well-known/openid-configuration という 標準化された URL で設定情報を公開します。このエンドポイントには、認可エンドポイント、 トークンエンドポイント、公開鍵の取得先 (JWKS URI)、サポートするスコープなどが JSON 形式で記載されています。SP はこの情報を自動取得することで、手動設定なしに IdP と連携できます。
Google・Apple ログインでの利用
「Google でログイン」や「Apple でサインイン」は OIDC の代表的な実装例です。 ユーザーは Google や Apple のアカウントで認証するだけで、各サービスに 新たなパスワードを作成する必要がありません。Apple の場合は「メールを非公開」 オプションでプライバシーを保護する機能も提供されています。SNS アカウント保護の記事で、 ソーシャルログイン利用時のセキュリティ対策を解説しています。
SAML との比較
SAML は OIDC より前に 策定されたエンタープライズ向けの認証プロトコルです。両者は同じ問題 (フェデレーション認証) を 解決しますが、技術的なアプローチが大きく異なります。
| 観点 | OIDC | SAML |
|---|---|---|
| データ形式 | JSON / JWT | XML |
| 主な用途 | Web・モバイルアプリ | エンタープライズ SSO |
| 実装の複雑さ | 比較的シンプル | 複雑 (XML 署名処理) |
| モバイル対応 | ネイティブ対応 | ブラウザ依存 |
よくある誤解
「OIDC は OAuth 2.0 の代替」という誤解がありますが、OIDC は OAuth 2.0 を 置き換えるものではなく、その上に構築された拡張です。OAuth 2.0 のアクセストークンは 引き続きリソースアクセスに使用され、OIDC の ID トークンは認証にのみ使用されます。 両者は補完関係にあり、多くの実装では OAuth 2.0 と OIDC を同時に利用しています。プライバシー設定ガイドで、 OIDC を利用したサービス連携時のプライバシー管理についても確認してください。OAuth と認証の関連書籍 (Amazon)も参考になります。
現場での使用例
「自社 SaaS の認証基盤を独自実装から OIDC に移行しました。Google と Microsoft の IdP に対応したことで、エンタープライズ顧客の導入障壁が 大幅に下がり、トライアルからの契約率が 1.5 倍に向上しました。SSO 対応が B2B SaaS の必須要件になっていることを実感しています。」
この記事は役に立ちましたか?