[OAUTH-WG] New I-D: draft-carleton-workload-authz-grant (Workload Authorization Grant)

Paul Carleton <paulc@anthropic.com> Mon, 03 August 2026 18:05 UTC

Return-Path: <paulc@anthropic.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 8808F122DEFA3 for <oauth@mail2.ietf.org>; Mon, 3 Aug 2026 11:05:43 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1785780343; bh=8iG9+KDCTEs54tZLEaCQR7e84vmv8tw0RwOff36Uv/c=; h=From:Date:Subject:To; b=W8fM3djBgJ6qEfABDEaDTobOyC/rfxnAnJpVgp3IWxf5q0+/KNP6JrRUu2pNAZgFF 1skJ1o1Reg2GLtZ3aeZssGkUIkz2Yh7oPAWns6ULcm2sVXnpaf5s3jPJDNasMJET8i Dvftl9XkW0sYHXrh4c6dC27juz3BzwkmjAfQ5FT8=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.097
X-Spam-Level:
X-Spam-Status: No, score=-2.097 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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=anthropic.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 JrwZS9rLapCY for <oauth@mail2.ietf.org>; Mon, 3 Aug 2026 11:05:43 -0700 (PDT)
Received: from mail-oo2-x03.google.com (mail-oo2-x03.google.com [IPv6:2607:f8b0:4864:31::3]) (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 04C78122DEF9B for <oauth@ietf.org>; Mon, 3 Aug 2026 11:05:43 -0700 (PDT)
Received: by mail-oo2-x03.google.com with SMTP id 46e09a7af769-7e9e0d8ee2cso1046187a34.1 for <oauth@ietf.org>; Mon, 03 Aug 2026 11:05:42 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1785780335; cv=none; d=google.com; s=arc-20260327; b=fElphdsIh5zeZyqyIgnYzBo6aPNxZVGzET+j3YYeMLSd6h7P6JZkrD1AyluVKzVCcR bbzZL+rywP6lgNmtW3OOKcfsuK9/jk2K0I2GG1PSYE00REsMH1fhAQ6maqGF+F+CTVnq R1E7HS8ibdB/zIgcgca/QjUyhd2qXT9i82k/ZZrX95YgL3vzubOLt+k1R6rzUFJZq/Ny 9yVbntz7vTyEzRvC6dyzqrKItuqz3aQPTSr1N0c+f4Wm+mhS1MtMUOUzno8i7fPP3Qi6 HjJr26C2mMIk1FAlKNGoIG6PQ+tObW19EomMrAXH4yW/0vJA3uCFsC21m5Eo+WiSjZPA A0Kw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=8iG9+KDCTEs54tZLEaCQR7e84vmv8tw0RwOff36Uv/c=; fh=HRwJNtTTtPgtfgvXyPaPq+Te1JrkxlJZMfmgN30AIzQ=; b=R6XtWxtQEpTTbKj9Zk4qzpPgqWfHKbkG2phg5M0SDyfCo0qQ7f9M0iNw6N43oRShNG Zs+HxF51ZT0c9CzKwe7oXHRWMTC/sPaElGO8LB0TJzrky6PNNIc9BHEkcjRydX77p8vD ilddxNSGYPJmGeh0LXxoj9tzlKFPgi8aDn+a01plMzhPCjAT73Qs4IXR2FMafA3KcbEc FUK+dQMeenX6pMWb981ubGSKFBTQLRuT7+W4ku2GSFubNN8ucubyIPv/T3uBhJOJXXDH EL2Cz85v/OW8t41yxzqVJTml5bUaxU0PmMshFOqQlLxn7arjJ8hHGw+5FBxym6saPKlX GdXg==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=anthropic.com; s=google; t=1785780335; x=1786385135; darn=ietf.org; h=content-type:to:subject:message-id:date:from:mime-version:from:to :cc:subject:date:message-id:reply-to:content-type; bh=8iG9+KDCTEs54tZLEaCQR7e84vmv8tw0RwOff36Uv/c=; b=Ugfg1kUiNwJovOAe+6yoDV8BO1x0AXJnARaasRVIlZeVoRgfmcdNyA2CrHlkEZuA0P QyI1iGhBnMYI5zINMUE1ldaIWW+3QZMWgUuRbZj8L8HYQTqYgsdk3Dd3dPxFPYCMh4u8 PsYLDRgb6lE+MJoZE8J5eHRi0JsWtBwsTekUYRFQ8uqehcuCjCK6Gzd032pVKRWkARXX VFCcGq5bkWEVsYJMgC2yAjtbF9ju/KZEerykgXTsHJJVhluF5KuhnFBntP3VL7bq2+1e jPTf+KcUge8dpWl33R7Ul71RFprZQANM5pfhmQFHxcE+jh0ZfTERSETau3ikcy48Od6m +B1A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785780335; x=1786385135; h=content-type:to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=8iG9+KDCTEs54tZLEaCQR7e84vmv8tw0RwOff36Uv/c=; b=sZSM+5gRGM55SXC4mq+U2/Z7I1ycNNTm1Kv2ClgrXuN7qU97LrFyCNDPcmpmGAqfqH J8F4zInrxixlq2ehJHe+K9z1UzCZoKdHFVQ+ggQvn0r8WgyoeBKkO4mw4QygpeXUkhU+ +89zq1qonvy2c//b4as/d09xr2d57Jwm/iEPhdrlyp9QCrC8zob70hcKT/PT1MMFuytO y087VEE0IlLbzv5iDnSC4bom35KnGSpG9dIe3DjAHnZfAa4QYiEl9TXSSA6vHlUrkU9P cRP6Mr3HiK3iL+lBUumgMxROSgJs3vaqqSi6PvZ1sIEw/19KnJf/SlZxi+iavd+NYFj9 W9nQ==
X-Gm-Message-State: AOJu0YzbhGz6vjvKwDU0wyOoj5H5u72BEIcOkv8MzLMVUiQByyDlOvnF Ywt8tShC7WSMFdMdocXaBcjkZOtkQTqBwA2UlA7HbGSK+uLvh0kylWmhvw+9YOO7JDao1/Dv/yD HC5cDHh3Zsff/U9cqUOr6bDxcekbgS3uJQ2mAGJGhpnzrQHOAAr0cdLj4rWJJ352Ypg==
X-Gm-Gg: AR+sD12GobViFWniER3krXzcCKZSjtwR+Flx9Hh1Ar1eQFdREXltVmCFwFHohHH7cYP uFsEUMD1LHFba3B/W8ce8kk7ObDfWszdR6ehLstJwIvY5bMOSTKVV4BpZxdiWeOm6r69v4Y4S41 pQaavnDtkdFtzq1xnPG+1SVwFttTI9UhSAM4fddv+n395mMuabkO6RgK5CQOUcLI7K8f0aKTjkn gKBYh4wzMYg7hmohFJHJGDEZFshTFMF7TEm+3+1U4v3ASyP/LEaCelRVDtwrm+n4HMgP3HeYjQw of4RUyC1KO0kZ9XoQSbLx8Uue3m88igPcrGXZloGUvGh
X-Received: by 2002:a05:6808:23cb:b0:479:ead7:2a5b with SMTP id 5614622812f47-4af5e3cfe3dmr18350461b6e.16.1785780335397; Mon, 03 Aug 2026 11:05:35 -0700 (PDT)
MIME-Version: 1.0
From: Paul Carleton <paulc@anthropic.com>
Date: Mon, 03 Aug 2026 19:05:23 +0100
X-Gm-Features: AUfX_mxeZzFIjimHhqMmRM3gEtuuIdrrxfK-X9cgeK11yUawc5pcN7pd-WgYYr4
Message-ID: <CABfBPV=+-6JVw=EG-smbm1egLGweFuNq-KBFQ07hbuHZe20wgg@mail.gmail.com>
To: oauth@ietf.org
Content-Type: multipart/alternative; boundary="0000000000008a0157065828623d"
Message-ID-Hash: IOGX26DFAWD65FDABZRZ5TW4U44DCNGG
X-Message-ID-Hash: IOGX26DFAWD65FDABZRZ5TW4U44DCNGG
X-MailFrom: paulc@anthropic.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
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] New I-D: draft-carleton-workload-authz-grant (Workload Authorization Grant)
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/BW4wZOi3UbacAWZoHuBsMDnu4SM>
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>

Hi all,

Good to meet many of you in Vienna!

I've posted an early individual draft based on some discussions had over
that week. The draft profiles RFC 7523 for agent platforms: an agent
obtains access tokens by presenting a platform-signed JWT authorization
grant at the resource's authorization server. I've also posted this to
wimse@, since the identity in the grant is a WIMSE workload identity
produced by ordinary WIMSE issuance and cross-domain federation; this draft
covers the OAuth-facing hop where an existing AS consumes it.

This defines no new grant type, no new token format, and no change to
RS-to-AS trust. A service with an existing OAuth deployment changes only
its token endpoint. Trust is one admin-level entry per customer tenancy
with keys resolved by reference, and the AS accepts previously-unseen
subjects under a trusted issuer just in time; there is no client
registration step.

Relative to adjacent work: same JWT-authorization-grant shape as ID-JAG and
draft-ietf-oauth-identity-chaining, but the subject is the agent workload
itself rather than a chained user identity. The agent-as-client alternative
(spiffe-client-auth, attestation-based-client-auth, CIMD) is addressed in
question 1 below.

Datatracker:
https://datatracker.ietf.org/doc/draft-carleton-workload-authz-grant/
Editor's copy:
https://pcarleton.github.io/draft-carleton-workload-authz-grant/draft-carleton-workload-authz-grant.html
Repo: https://github.com/pcarleton/draft-carleton-workload-authz-grant

Feedback I'm most looking for:

1. The draft treats the agent as the grant subject, not a new client ID
per-instance, and I think that's the right shape; thank you Brian Campbell
for nudging me in that direction. It's one concrete stance in the ongoing
client-instance discussion: consistent with the adopted stack (ATTEST,
spiffe-client-auth, and the McGuinness drafts all keep one logical
client_id and surface the instance elsewhere), and it keeps the adoption
floor at "jwt-bearer, which already ships everywhere." Additional support
for that framing would be helpful, or for concrete scenarios where
subject-not-client breaks down.

2. Claim naming for platform-asserted attributes: reuse the RFC 9068
roles/groups/entitlements registrations, or register new names? (Related
question posed to wimse@ about whether the AIMS work wants to own this
vocabulary.)

3. Input on Audience handling relative to rfc7523bis.

Requested cluster: Cross-Domain Chaining. Related: Client Authentication.

Most sections are deliberately TODO. Feedback here or on the repo is
welcome.

Paul