[OAUTH-WG] Re: New Internet-Draft: Approval-Based Dynamic Client Registration

Mike Kuredjian <michael.kuredjian@gmail.com> Mon, 03 August 2026 22:12 UTC

Return-Path: <michael.kuredjian@gmail.com>
X-Original-To: oauth@mail2.ietf.org
Delivered-To: oauth@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 384D512303979 for <oauth@mail2.ietf.org>; Mon, 3 Aug 2026 15:12:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785795148; bh=qpI1Gamr0iruJY5OCN/s4kp2J39Az6YQRILmpCXfy+w=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=sH79mAT8TnvMobaqblxInwXIQk5rk8lspnyr8KLyJNjsryaj6IGD/vqkDGINXKP46 KvdDTOxpNNRRiR5o0aGyOnrQMIAJVuE+KvMgFtEEbV8WwMCAKyxRZTl32u9Xd/SB72 6qfpqcdl3ROa/l56UAlUb7/xby47wAOUGitcGhC4=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ff7F94CJPYiZ for <oauth@mail2.ietf.org>; Mon, 3 Aug 2026 15:12:27 -0700 (PDT)
Received: from mail-lf1-x12b.google.com (mail-lf1-x12b.google.com [IPv6:2a00:1450:4864:20::12b]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 3F61F12303972 for <oauth@ietf.org>; Mon, 3 Aug 2026 15:12:27 -0700 (PDT)
Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-5aeafa51b5cso474424e87.1 for <oauth@ietf.org>; Mon, 03 Aug 2026 15:12:27 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1785795140; cv=none; d=google.com; s=arc-20260327; b=SXqyt51xjPXLrdsLzel55GM9cBunkiO6C+d8YEdEvdsHWlBDYnpUF7SCChuQxOrt8g A0f0oe2BruuF6HCcpd1y+5cCng6iEvgkGwUTLaPCBrxxgBUdw79bogsYmSnNqAQQ3eF+ VtHKruJ/mBL4Yi7ElfGtW0QAWst+NnNVkNwbokUKM6zrgTsrtAPnfBc/RN0HKxpopmu1 eIzf5MSYnoe0fAnBJol3shbttQVHXQTtLxw5Vq+BwBci7LHVEsjsSTQ5/UMrSS3bm7Eg FZ/T0LxtSXKUnFQMFAUd61DymP0a4M2BZidtSu4d+HsG/d573km0FVtHMuuSYwMT1ZNW xGDg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=7fzUjB+XDgwdwy4wx0LLWnUFF40YZWaxK1SbXIbQR5s=; fh=0vFGzO9iexElD54+Q/WCFcIY7zaJkDGxBLm8Z2oFnac=; b=sSb/+k7svwEe/yjcPv2RYIW/dXJWzmXw0InaumML6nD5t4p3wXBa8n1stfsUmsbRFi 55aYVwVAQCDYquSDerx/Z0qWX9WxXEuUprDcV+EkT4wx+zCF1nrEv5higtoH0VSkPkfz eajTxU1zofYXgxw/3a5wNeXs8HSBQzjutvw1uhVX9QMTMLoKBB7nO/Z9gcp2EEycKFeg xYXN/QT0y0PjaN/bd6lyuwtYmXf1SvTM0+fe8HOIkJf5GAJZADOeeDL2WQ22edlEthlK kR+F8uXuRYK34KrMWk4WKGhhw7Of64XeMSPWSncr4lefrrvoWQbfzq5r51pL8EJMk3ZC lx7g==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785795140; x=1786399940; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=7fzUjB+XDgwdwy4wx0LLWnUFF40YZWaxK1SbXIbQR5s=; b=pnv6lcNQOP7VJ4gPbTdRys0LJ88H/D0V08ROFAoJMyIgQ2k73WoL57RDAT9dVZCTdq lQ5wC0DmGTbOPgleIKqebR/ukp9XH7xfY3w4yQ8cpyzWp8R4gbhLmD69uUDFRuiGaW1a KNVJ+ISUhtYrZTBp+rKrwurtWlEgjHK5zXXU1HONBBkBlPe69TRog1HpnRDee2gj+sjS 25WsmMPn0Gt2yuz8z1djR6aqMqZQFB0met71PS4XORCFjEL0n/PP47RPsVBMoLGgvqnd UZcR//A5pH2136kkp7wraB9LUUu0AOfacaXLHJf8Pd4E/ZYGxD9Hj/oN8ZlJk1mmTj4d Zk8A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785795140; x=1786399940; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=7fzUjB+XDgwdwy4wx0LLWnUFF40YZWaxK1SbXIbQR5s=; b=BFtG53diHI5wZs8GYlRzLnx35Y/lWTOMr7ow7stGMQGkml6P+XDFLeOFXsmWFeAkXH bT+IfBRJVig1pb25RnvpL6wdYt0ErDFQ5gqEDT0J0rR1FjODkxQviJfcyAFzLaNVs2lR HZpT+QbqjT4R5JjSuk9r+7a1gDXrgxz9Cs0GuNjGFejZcZ2BmPPcBu0MyJ7y8LG+w3/d 7Y7pU8NnNosaOdRdmxnuwpfs5wT13PhjdUVQdHDkGcAhicKzHhjBs+w6kc/eZOEy1Vu+ YKYcPK5pfYX0UPtgDCH5AJ5ITCiAijk8lgmYr0DJ6ptt7XdGseVLK9u4YyN/JxR0hO4T /CVw==
X-Forwarded-Encrypted: i=1; AHgh+RpnZFFX0bZWK6+GlKDaHgFgKdS6Xu51A3OYzwxgfBpEBXRvOF5GT85+S/fwmoRYjuAfATUh4w==@ietf.org
X-Gm-Message-State: AOJu0YxqUIS+sCg9J/t4jT+/D+V7hZ7/KC342WA2mWA4QQHgRjIh8q8i Fy0wO7zqu0OAH88+jhqUrv9Q3GDzM2wkpgstPgtRdUgwFZDUwbaGHSc92hdRbH4bdB5g2xEwh9v rmSLckXUG/j+ctH36LBGH6RYcYNfnSlg=
X-Gm-Gg: AR+sD1020GJQDQGvGlGsBhKMqzBA/bUHZ6OmNUc1vPHTTgu3zlBY0FTtbyhAAP9z+g8 Kdi95xMe2AJqtkftb+AWjeDmunQLzAHE9IFzNQPnMx3ktH9lIfOIOQcTw9y9WuwvOsj1wcMfr+2 V4bK7TiGZSztDjDjW8/L3HMpTsk0hzzbJ11SlouqOFgmPuuJZ8umNiCKyXDXUh4rmaOnFETpMBM 4nTxmyxuDiJX9a82D/Mh43+rta/yIFPPIoum1iTYHpsZuxXXpIiMPgRR/SiruwQbit5gxugQQua mTdIbHHesvnOQNp32jS1Gsu9nOBWYYUUrHPvolxiqMpJeGpJeyQGjGNbbmbg4mzxpHxhwOm5GcU nauXhsmvfvSmbOQiXmg==
X-Received: by 2002:a05:6512:a8a:b0:5b2:b724:2d55 with SMTP id 2adb3069b0e04-5b2e4dda622mr1990212e87.0.1785795139662; Mon, 03 Aug 2026 15:12:19 -0700 (PDT)
MIME-Version: 1.0
References: <PH5PR18MB927672B870A8187F205B048373A4C32@PH5PR18MB927672.namprd18.prod.outlook.com> <IA0PR01MB82772B0AB25C1762525BDD6FBDC32@IA0PR01MB8277.prod.exchangelabs.com> <CAGGo3OdpN+JvhAy7TH12u4PhvPz_zqaT8+YbkzfkFJ+3z4sbtA@mail.gmail.com> <DS3PR18MB9276654F6DD32C3D00D0BE3F1FA4D52@DS3PR18MB927665.namprd18.prod.outlook.com>
In-Reply-To: <DS3PR18MB9276654F6DD32C3D00D0BE3F1FA4D52@DS3PR18MB927665.namprd18.prod.outlook.com>
From: Mike Kuredjian <michael.kuredjian@gmail.com>
Date: Mon, 03 Aug 2026 15:12:07 -0700
X-Gm-Features: AUfX_mwbUmcObuOs_9lDUOX1pB9-ruOIShG-YdOK2KeJp-RSYAWlzJwtYJdjgXs
Message-ID: <CAGGo3Ofj6S56DoRvGLyUpKU733f9gKjxKOhRC6NNjSraEJEeVA@mail.gmail.com>
To: "Dellaert, Philippe" <pdellaer@amazon.com>
Content-Type: multipart/alternative; boundary="000000000000f0f77a06582bd45c"
Message-ID-Hash: KNDWDJ7UVPQGNWUXT5F44YU6YKGAN75H
X-Message-ID-Hash: KNDWDJ7UVPQGNWUXT5F44YU6YKGAN75H
X-MailFrom: michael.kuredjian@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-oauth.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "oauth@ietf.org" <oauth@ietf.org>, "maciej.machulak@cloudidentity.co.uk" <maciej.machulak@cloudidentity.co.uk>, "phil.hunt@oracle.com" <phil.hunt@oracle.com>, "frederik.krogsdal@idura.eu" <frederik.krogsdal@idura.eu>, "guilherme.niero@itau-unibanco.com.br" <guilherme.niero@itau-unibanco.com.br>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: New Internet-Draft: Approval-Based Dynamic Client Registration
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/SCUeYsIF4pYhsOpYkzs-OQJZYdo>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Owner: <mailto:oauth-owner@ietf.org>
List-Post: <mailto:oauth@ietf.org>
List-Subscribe: <mailto:oauth-join@ietf.org>
List-Unsubscribe: <mailto:oauth-leave@ietf.org>

Makes sense - I often forget about the management spec, to the point
that one of our internal developers messing around with Claw hit a
roadblock with their agentic code because our DCR implementation didn't
have the presumed management APIs, but it's good to keep it in mind as
something to formally support :D

On Mon, Aug 3, 2026 at 2:20 PM Dellaert, Philippe <pdellaer@amazon.com>
wrote:

> Hi Mike,
>
> Thanks for your feedback. Your use case is aligned with what some others
> have pinged me on and what I’ve seen, glad there’s multiple of us facing
> these problems and there’s a use for this type of protocol.
>
> I think it’s better not to put a requirement on the client_id format and
> let the AS decide. The draft does not put any requirements or restrictions
> on this.  If an AS wants to use the registration code as the client_id,
> it’s their choice.  If the AS wants to use a preferred format for their
> client_ids, or use a CIMD client_id (if the AS wants to host metadata for
> all registered clients), they should have that freedom.
>
> On extending the management spec, I need to dig deeper what the most
> appropriate approach is. I think Justin feedback is good, so I’ll work on
> this idea more.
>
> Regards,
> Philippe
>
> *From: *Mike Kuredjian <michael.kuredjian@gmail.com>
> *Date: *Monday, August 3, 2026 at 1:07 PM
> *To: *Justin Richer <jricher@mit.edu>
> *Cc: *Dellaert, Philippe <pdellaer@amazon.com>; oauth@ietf.org <
> oauth@ietf.org>; maciej.machulak@cloudidentity.co.uk <
> maciej.machulak@cloudidentity.co.uk>; phil.hunt@oracle.com <
> phil.hunt@oracle.com>; frederik.krogsdal@idura.eu <
> frederik.krogsdal@idura.eu>; guilherme.niero@itau-unibanco.com.br <
> guilherme.niero@itau-unibanco.com.br>
> *Subject: *RE: [EXTERNAL] [OAUTH-WG] Re: New Internet-Draft:
> Approval-Based Dynamic Client Registration
>
> *CAUTION*: This email originated from outside of the organization. Do not
> click links or open attachments unless you can confirm the sender and know
> the content is safe.
>
> Justin & Philipe,
>
> Replying to echo that it's an interesting spec and I can think of one
> clear niche where it would apply: MCPs wherein the tools being offered are
> of a 2LO access nature and/or sensitive. In our particular case at
> Atlassian, we're looking to offer org administrators an MCP with tools
> geared around such use-cases (site admin, user admin, etc), and one could
> imagine wanting such a protection against fully dynamic client registration
> that we otherwise see with pure DCR agents. Of course CIMD + whitelist can
> be used to solve to this, but as we know, not all agents are able to host a
> TLS endpoint, so by providing an OOB approval option, you can offer DCR for
> these more sensitive use-cases, knowing activation will be gated.
>
> Extending the management spec is also appealing... I wonder if there's a
> case to be made for the registration token to be a client_id itself (albeit
> in a disabled state)?
>
> Best,
>
> Michael
>
>
> On Sun, Jul 19, 2026 at 11:36 PM Justin Richer <jricher@mit.edu> wrote:
>
> Phillipe, thanks for sending this out - this is an interesting idea. I had
> a couple questions upon first skimming that I was wondering if you'd
> already worked through or not, so I'd love to hear your thoughts. Most of
> them center around how this new functionality layers in with the existing
> DynReg spec, both for clients and servers.
>
> You've got a registration mode flag here — but is it important in this
> model that the client opts in? Because I'm wondering if a client could just
> make a normal request and get back a "pending" response instead of the
> standard one. It seems like it'd be the AS's choice to support an immediate
> registration or not, based on some policy or something about the client's
> request, and not the client's stance on the matter. It's an error to the
> naive client if the AS doesn't do immediate mode anyway. Is there a
> difference here I might be missing?
>
> Second, I'm wondering if the additional code and round-trip management
> protocol is necessary here. If the client gets back a "pending" response,
> instead of using a new protocol just to manage pending registrations, we
> could perhaps extend the DynReg Management spec (RFC7592) for this case. So
> the client gets its registration access token and to poll for updates does
> a GET on the management endpoint. If it's still pending, we can respond
> with the 202 pending request just like in the initial registration. To
> cancel it can do a DELETE on that endpoint, instead of having a special
> flag. I've not thought deeply about this, but am I missing something that a
> separate protocol and endpoint bring to the party here?
>
> Overall, I think this semi-synchronous mode is an interesting one that
> could layer in with DynReg for (what seems to me) a niche set of use cases,
> but I can definitely see it in an enterprise type environment, for
> instance, where policy controls registration more strictly than on the open
> web.
>
>  -- Justin
> ------------------------------
> *From:* Dellaert, Philippe <pdellaer=40amazon.com@dmarc.ietf.org>
> *Sent:* Monday, July 20, 2026 12:40 AM
> *To:* oauth@ietf.org <oauth@ietf.org>
> *Cc:* ietf@justin.richer.org <ietf@justin.richer.org>;
> maciej.machulak@cloudidentity.co.uk <maciej.machulak@cloudidentity.co.uk>;
> phil.hunt@oracle.com <phil.hunt@oracle.com>; frederik.krogsdal@idura.eu <
> frederik.krogsdal@idura.eu>; guilherme.niero@itau-unibanco.com.br <
> guilherme.niero@itau-unibanco.com.br>
> *Subject:* [OAUTH-WG] New Internet-Draft: Approval-Based Dynamic Client
> Registration
>
> 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 -- oauth@ietf.org
> To unsubscribe send an email to oauth-leave@ietf.org
>
>