OIDC Discovery & Dynamic Registration
概要
OpenID Connect(OIDC)を本格的に運用する場合、「Discovery」と「Dynamic Registration」は欠かせません。
この2つの仕組みにより、IdP(IDプロバイダー)とクライアント(サービス)が自動で連携できる環境が実現します。
1. Discovery(ディスカバリー)
できること
- IdPの「エンドポイント情報」「公開鍵」「対応機能」などを自動取得できる
- クライアントは事前に仕様書を読む必要がなく、URLにアクセスするだけで必要な情報を取得可能
- 公式仕様:OIDC Discovery Spec
主なエンドポイント
/.well-known/openid-configuration- このエンドポイントにアクセスすることで、authorize/token/userinfo/jwks/registrationなどのURLや、サポートされているスコープ・認証方式などを一括で取得できます
返却されるJSON例
{
"issuer": "https://example.com",
"authorization_endpoint": "https://example.com/oauth2/authorize",
"token_endpoint": "https://example.com/oauth2/token",
"userinfo_endpoint": "https://example.com/oauth2/userinfo",
"jwks_uri": "https://example.com/.well-known/jwks.json",
"registration_endpoint": "https://example.com/oauth2/register",
"scopes_supported": ["openid", "profile", "email", "offline_access"],
"response_types_supported": ["code", "id_token", "token id_token"]
}
実運用時のポイント
- クライアント実装ではまずこのURLにアクセスして「自動設定」するのが基本
- 公開鍵(JWKS)もここから取得できるため、署名検証が容易
- IdPの仕様変更があっても、クライアント側は設定を都度変更する必要がなくなります