auth
[cloud-only] Dynamic Client Registration (RFC 7591)
[cloud-only] Public, unauthenticated, insert-only RFC 7591 §3.1 client registration. Used by MCP-spec-compliant clients to self-register a public OAuth client without operator involvement.
Policy:
- Public clients only — token_endpoint_auth_method is forced to none. Confidential-client registration is out of scope this phase.
- Server-owned resource_grants. Caller-supplied scope or resource_grants is rejected as invalid_client_metadata (would be a privilege-escalation surface). Dynamic clients receive the same scopes the active resource publishes.
- Application-type-aware redirect URI policy. application_type=native accepts loopback (127.0.0.1, ::1, localhost) and reverse-DNS-shaped custom schemes; application_type=web accepts HTTPS to hosts in an operator-controlled allowlist only. application_type is REQUIRED on the request — missing or empty rejects with invalid_client_metadata.
- Anti-impersonation: reserved client names are rejected from third parties via NFKC-folded compare.
- Generated client_id carries a stable prefix to distinguish dynamic from seeded clients in audit logs.
- Cache-Control: no-store on every 201 and 400 response (the response carries fresh credentials and rejection reasons).
post/oauth/register
Request body
Response
Registered. Body echoes the metadata RFC 7591 §3.2.1 requires.