アプリケーション 2026-07-10 ⏱ 約 6 分

OpenID ConnectのDiscoveryとメタデータとは?自動設定と鍵取得の仕組み

OpenID ConnectのID Tokenの役割と、Discovery(OpenID Connect Discovery / RFC 8414 AS Metadata)による自動設定・公開鍵取得の仕組みを解説する。jwks_uriによる鍵ローテーションまで整理する。

Read in: en
OpenID ConnectのDiscoveryとメタデータとは?自動設定と鍵取得の仕組み

概要

OpenID Connect(OIDC)を実装するとき、認可エンドポイントやトークンエンドポイント、公開鍵の場所などを一つひとつ手で設定するのは手間がかかり、設定ミスの温床にもなる。これを自動化するのがDiscoveryメタデータの仕組みである。

この記事では、まずOIDCのID Tokenの役割を確認する。そのうえで、OpenID Connect DiscoveryとRFC 8414(OAuth 2.0 Authorization Server Metadata)による自動設定・鍵取得の仕組みを整理する。

関連する仕様は以下の通り。

OAuth と OIDC の違い

まず前提を整理する。

ID Token の中身

ID Tokenは「このユーザーがいつ・どうやって認証されたか」を表すJWTである。主なクレームは以下の通り。

クレーム 意味
iss 発行者(Issuer)。ASの識別子
sub ユーザーの一意な識別子
aud このトークンの宛先(クライアントID)
nonce リプレイ対策。認可リクエストの値と一致するか検証する
auth_time 認証が行われた時刻
exp / iat 有効期限 / 発行時刻

クライアントはこれらのクレームを検証することで、「正規のASが発行した、自分宛の、改ざんされていないID Token」であることを確認する。

Discovery とは

Discoveryは、クライアントがASの設定情報を自動的に取得するための仕組みである。エンドポイントのURLや対応する機能、公開鍵の場所などを、ASが公開するメタデータ文書から読み取る。

手で設定しないことには、次の利点がある。

OpenID Connect Discovery

OIDCでは、/.well-known/openid-configurationにメタデータ文書が公開される。

sequenceDiagram participant C as クライアント participant AS as 認可サーバー C->>AS: GET /.well-known/openid-configuration AS-->>C: メタデータ(各エンドポイント, jwks_uri, 対応機能) C->>AS: jwks_uri から公開鍵(JWKS)を取得 Note over C: 以降、取得した設定でフローを実行

メタデータには、authorization_endpointtoken_endpointuserinfo_endpointjwks_uri、対応するスコープや署名アルゴリズムなどが含まれる。

RFC 8414:AS Metadata

OpenID Connect DiscoveryはOIDC向けだが、それをOAuth 2.0全般へ広げたのが**RFC 8414(OAuth 2.0 Authorization Server Metadata)**である。/.well-known/oauth-authorization-serverにメタデータを公開する。

RFC 9700(Security BCP)も、AS Metadataの公開・利用を推奨している。たとえばcode_challenge_methods_supportedを公開すれば、クライアントはASがPKCEに対応しているかを検出できる。

jwks_uri と鍵ローテーション

メタデータの中でも特に重要なのがjwks_uriである。これはASの公開鍵(JWK Set)を配布するURLで、クライアントやリソースサーバーはここから鍵を取得してJWS署名を検証する。

graph LR AS[認可サーバー] -->|jwks_uri で公開| JWKS[(JWK Set<br/>複数の公開鍵)] RS[リソースサーバー] -->|鍵を取得| JWKS RS -->|kid で該当鍵を選び署名検証| Verify[JWT検証]

鍵にはkid(Key ID)が付いており、JWTのヘッダのkidと突き合わせて該当する鍵を選ぶ。この仕組みにより、ASは古い鍵と新しい鍵を並行して公開しながら、無停止で鍵をローテーションできる。JWK/JWKSの詳細は「JOSEとは?JWT・JWS・JWE・JWK・JWAの全体像」を参照。

メタデータのセキュリティ上の利点

RFC 8414は、メタデータ利用の利点として次を挙げている。

まとめ

参考リンク

Tags: OpenIDConnect OAuth
Share: 𝕏 Post Facebook Hatena
✏️ View source / Discuss on GitHub
☕ サポート

このブログを応援していただける方は、以下からサポートをお願いします。いただいたサポートはブログ運営・技術研鑽に活用します。


関連記事