A few scattered thoughts:
- The latest spec
<https://modelcontextprotocol.io/specification/draft/basic/authorization/client-registration#dynamic-client-registration>
of
MCP has deprecated DCR in favor of CIMD. It is only included for backward
compatibility now.
- I would appreciate concrete examples of how AB-DCR compares to CIMD, and
where AB-DCR might be more appropriate to use. Off the top of my head -
this would be primarily for clients unable to host a CIMD URL? So primarily
native applications or CLI tools that are not associated with a website or
domain?
- I would be interested in exploring mechanisms that combine the approval
of the client with an authorization grant, so that the user doesn't need to
click through multiple flows back-to-back.

Niel wrote:

> clients are not tied to one particular user, so this seems dangerous if
any user can approve a client for everyone

I think this is an issue the AS is already equipped to solve. The AS must
already have a policy defining which user or developer can register a
client manually, and that same policy should extend to which user can
approve a client registration. If the AS allows any developer to self-serve
sign up and create a client, then that same policy should govern client
approval. If the AS requires developers to be onboarded in some manner,
those developers should be onboarded before making the client globally
available. Additionally, several ASs currently have concepts of
organization-bound or user-bound clients, which can only be used with a
subset of users as determined by AS policy.

On Mon, Jul 20, 2026 at 10:55 AM Neil Madden <[email protected]>
wrote:

> It would be good to understand exactly what approval you are expecting to
> happen during this flow? The draft says “an explicit approval step
> performed by an approving party, typically the user running the client”.
> But clients are not tied to one particular user, so this seems dangerous if
> any user can approve a client for everyone.
>
> Dynamic client registration always has the problem of what exactly the AS
> or an approver is supposed to base their decision on, when all they have is
> client-asserted values. Software statements improve this somewhat, where
> supported. The only approval steps I can think of that make sense are
> things like reviewing policy/privacy documents etc for compliance. But
> that’s not something that can be completed in a few minutes while the
> client sits around polling for a response.
>
> On 20 Jul 2026, at 05:41, Dellaert, Philippe <pdellaer=
> [email protected]> wrote:
>
> 
> Hi all,
>
> As you might have noticed, I’ve submitted a new Internet-Draft:
> Approval-Based Dynamic Client Registration:
> https://datatracker.ietf.org/doc/draft-dellaert-oauth-approval-based-dcr/
>
> Dynamic Client Registration provides a way for new clients to register
> themselves using an open registration mechanism, or registering using an
> Initial Access Token for extra security. For certain clients like native
> applications, CLI tools, or applications at scale, providing an IAT is not
> always an option and open registration is something many operators prefer
> to avoid.
>
> I propose an approval-based registration using the existing DCR
> registration endpoint where the client opts-in for this new mode. If the
> authorization server’s policy supports and requires an approval before the
> client is registered, it returns a registration code, a verification code
> and a verification URI. The client polls the registration endpoint while an
> approver approves or denies the registration request out of band using the
> verification code and the verification URI. Once approved, on the next
> poll, the client receives a normal DCR response.
>
> A lot of this is inspired by the Device Authorization Grant (RFC 8628) and
> the Deferred Token Response draft. I do diverge from these proposals by
> using specific HTTP response codes instead of using error responses.
> Registration success remains 201, a pending registration waiting for
> approval returns 202, both for initial request and polling, and 429 with a
> Retry-After response header is used to indicate to the client to slow down
> the requests. 400 is still used for errors.
>
> I’d welcome feedback from the group, and especially from the authors of
> Dynamic Client Registration as this is an addition to DCR, and from the
> authors of Device Authorization Grant and Deferred Token Response as they
> are a source of inspiration. I have cc’d the DCR and DTR authors out of
> courtesy, not out of any expectation.
>
> Regards,
> Philippe
> _______________________________________________
> OAuth mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>
> _______________________________________________
> OAuth mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
>
_______________________________________________
OAuth mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to