OpenID Connect おーぷんあいでぃーこねくと
OpenID ConnectOIDC認証IDトークンOAuth2フェデレーション
OpenID Connectについて教えて
OpenID Connectとは
OpenID Connect(OIDC) は、OAuth 2.0の上に認証(Authentication)レイヤーを追加したプロトコルです。OAuth 2.0が「認可(あなたは何をしていいか)」のプロトコルであるのに対し、OIDCは「認証(あなたは誰か)」を追加します。
OIDCではIDトークン(ID Token)という新しい概念を追加します。IDトークンはJWT形式で、ユーザーの識別子(sub)・発行者(iss)・有効期限(exp)などを含み、認証サーバーのデジタル署名で保護されています。
実務での使われ方:
- 「Googleアカウントで〇〇にログイン」
- 「Microsoftアカウントでサインイン」
- 社内のIDプロバイダー(IdP)とSaaSサービスの連携
OIDCの主なトークン
| トークン | 内容 | 使用目的 |
|---|---|---|
| IDトークン | ユーザーの認証情報(JWT形式) | 「誰がログインしたか」の確認 |
| アクセストークン | APIへのアクセス権(OAuth 2.0由来) | リソースAPIの呼び出し |
| リフレッシュトークン | 新しいアクセストークンの取得 | トークン有効期限延長 |
IDトークンのペイロード例
{
"iss": "https://accounts.google.com",
"sub": "1234567890",
"aud": "myapp.example.com",
"exp": 1753516800,
"iat": 1753513200,
"email": "user@example.com",
"name": "山田 太郎"
}
歴史と背景
- 2005年:OpenID 1.0が発表(OIDCの前身)
- 2007年:OpenID 2.0が公開
- 2011年〜:OAuth 2.0の普及を受けて、OpenIDとOAuthを統合する設計が始まる
- 2014年:OpenID Connect 1.0がOpenID Foundation により公開
- 2015年〜:Google・Microsoft・Appleが採用し急速に普及
- 現在:SaaSとIdP連携のデファクトスタンダードとして定着
OAuth 2.0とOIDCの違い
| 比較項目 | OAuth 2.0 | OpenID Connect |
|---|---|---|
| 目的 | 認可(権限委任) | 認証(身元確認) + 認可 |
| 主なトークン | アクセストークン | IDトークン + アクセストークン |
| ユーザー情報の取得 | 別途APIが必要 | IDトークンに含まれる |
| 使用例 | APIアクセス権の委任 | ソーシャルログイン・SSO |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| OpenID Connect Core 1.0 | OIDCのコア仕様(OpenID Foundation) |
| OpenID Connect Discovery 1.0 | OIDCのメタデータエンドポイント仕様 |
| RFC 7519 | JSON Web Token(IDトークンの形式) |
| RFC 6749 | OAuth 2.0(OIDCのベース) |