Dynamic Client Registration
Dynamic Client Registration 由 RFC 7591 定義,提供了以動態或程式化方式向 Authorization Server 註冊 Client 的機制。此規範是從 OpenID Connect Dynamic Client Registration 泛化而來的,將註冊機制從 OIDC 擴展到一般的 OAuth 2.0 場景。
解決什麼問題
Section titled “解決什麼問題”傳統的 Client 註冊需要開發者手動到 Authorization Server 的管理介面填寫資訊、取得 client_id 和 client_secret。這在以下場景會成為瓶頸:
- 大量 Client 的自動化部署——無法逐一手動註冊
- Client 和 Server 事先沒有關係——例如 MCP 的場景,AI 助理可能隨時連接全新的 Server
- 開放平台——希望第三方開發者能自助註冊
RFC 7591 讓 Client 透過標準的 HTTP API 自動完成註冊,不需要人工介入。
完整的註冊流程、Client Metadata 欄位與安全考量,請參考 OIDC Dynamic Client Registration,兩者的核心機制相同。本頁聚焦在 RFC 7591 相對於 OIDC 版本的差異。
與 OIDC DCR 的差異
Section titled “與 OIDC DCR 的差異”RFC 7591 從 OIDC DCR 中抽取了通用的部分:
- 移除 OIDC 特有欄位——不包含
id_token_signed_response_alg、userinfo_signed_response_alg等 OIDC 相關的 metadata - 新增
software_statement——允許使用 JWT 格式的軟體聲明,由受信任的第三方(如產業聯盟或認證機構)簽發,用來證明 Client 的身分。主要應用於 Open Banking 等需要事先審核 Client 身分的受監管場景 - 更通用的 metadata 定義——
grant_types與response_types等欄位不限於 OIDC 的流程
應用場景:MCP Authorization
Section titled “應用場景:MCP Authorization”MCP(Model Context Protocol)的授權機制是 Dynamic Client Registration 的典型應用場景。MCP Client(如 AI 助理)可能隨時連接全新的 MCP Server,無法事先逐一手動註冊。透過 Dynamic Client Registration,Client 在首次連接時自動註冊取得 client_id,隨即進入 PKCE 授權流程。
詳細的 MCP 授權流程請參考 MCP Authorization 與 OAuth 2.1。