TL;DR
認可フレームワークである OAuth 2.0 で、認証を扱うための拡張プロトコル。OpenID Foundation が策定した。
仕組み
OpenID Connect Core 1.0 によると、OIDC は OAuth 2.0 の上に載るシンプルなアイデンティティレイヤである。クライアントは、認可サーバが行った認証に基づいて、エンドユーザの身元を確かめられる。
クライアントは、認可リクエストに openid スコープを含めることで、この拡張を要求できる。
大まかな流れは次のとおりである。
- クライアント(Relying Party、RP)が OpenID Provider(OP)に認証リクエストを送る
- OP がエンドユーザを認証し、認可を得る
- OP が ID トークンと、通常はアクセストークンを返す
- RP はアクセストークンを付けて UserInfo エンドポイントにリクエストを送る
- UserInfo エンドポイントが、エンドユーザに関するクレームを返す
ID トークンは、OIDC が OAuth 2.0 に足した主な拡張で、認証に関するクレームを持つ JWT である。発行者を表す iss、発行者の中でエンドユーザを一意に識別する sub、受け取り手(RP の client_id)を表す aud、有効期限の exp、発行時刻の iat は必須のクレームである。