[Web-bot-auth] Re: Interest in the human-principal layer above bot authentication

Blake <blake@truealter.com> Sun, 12 July 2026 03:34 UTC

Return-Path: <blake@truealter.com>
X-Original-To: web-bot-auth@mail2.ietf.org
Delivered-To: web-bot-auth@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 31A4D115409B0 for <web-bot-auth@mail2.ietf.org>; Sat, 11 Jul 2026 20:34:52 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1783827292; bh=U+6aLLISL6oEbFrmFuIVurJpZ/FBMkOMsvXeEVYT014=; h=Date:To:From:Cc:Subject:In-Reply-To:References; b=FI2GmiE4ZMkp4HChZlogHU7onPYzNJgcDy55YCbUlQegYXnsVMGgyMCAkxPg/Qzd0 P+qbNYjKFQmQoI/xz2ylN5ezFXsTxCPhW/6d6NmHcbdO77l6XorQWMA4cEuYKIEL3d RFXE8I0rCtz6M4NF2XwpF00NLpD3YkN5JH1Zt+Xk=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -2.797
X-Spam-Level:
X-Spam-Status: No, score=-2.797 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, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=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=truealter.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 hgFeVHZZu5ev for <web-bot-auth@mail2.ietf.org>; Sat, 11 Jul 2026 20:34:51 -0700 (PDT)
Received: from mail-244117.protonmail.ch (mail-244117.protonmail.ch [109.224.244.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id EDF1A115409AB for <web-bot-auth@ietf.org>; Sat, 11 Jul 2026 20:34:50 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=truealter.com; s=protonmail; t=1783827283; x=1784086483; bh=U+6aLLISL6oEbFrmFuIVurJpZ/FBMkOMsvXeEVYT014=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=IX0eb3L+6ieXkuoZM9Ethf4yCtfG+qYVrwKvCmit4ZVtu8vXAyQ9RkW0XWfBVu3bq n9M00V6YpccZ2lxxK1I0/q0dNOWSm3RMJxrIMJ4SJrOnprPILx2nL9HOaBZIlJM7eK Uajqa88+z76O/uox9J7hocnLR0P6ofF9m7tOkRxTMlUQxm2Gr8IyfWaNg06fjyp4/I PPuCpQNJL6KcyriNchOU6p6gD4ttRN3oe2TG003MK046ZXSB7GauvFWRX6fRw3EE6+ Ay3Jtvth44VfoazHUA8mWogoJeewbMKHuAuIOAwvrP9/DZo7Y2uSUop89VtQtVLBCQ 8LxDwgmydGvZg==
Date: Sun, 12 Jul 2026 03:34:39 +0000
To: "web-bot-auth@ietf.org" <web-bot-auth@ietf.org>
From: Blake <blake@truealter.com>
Message-ID: <VQPbDcCmipzSlW2HQNk0sERDrXvGJQ9-Gy5b_k1DJG2bDYXc6QlsQSGElbNNmpfIwQOI3oA74Wh01IGscgHZANRWZIGH5GFNgwottApiHTc=@truealter.com>
In-Reply-To: <CAD9ie-sp-pB7wsMP0TXTZe1S+JDQ5s9T3o_3ujLaCGR_p+n3AA@mail.gmail.com>
References: <9NfVj76IAWXePMt_ecu6nZev0qj-LLusr-b7YWkDU8jgH_Olfoo1XIf9eYpv0GdU0Xu7WgT_bGNO40Tl1mhMeSL1MqqyoRzdi_j2Vtw8VOw=@truealter.com> <dIvGGbJdzy-BVRnBw8nLIsmM2r2wYYRUzTmxCI6SoQXRISHoqzdkEZI-GI1yJiPsTVQlbHsX0K6iGhgkCViSgZmuJWRyTOFZhNOsBDffyyg=@thibault.uk> <UpKJYjJs4fvD01t3bVdRWJKZgwWtqesQTHV4hbuuNtcWVr9uD5Ih_U3r5WoUYB9HmDY39NAP2tp18eS-KRHdYJepXNNSfUGscn05sVQqE8c=@truealter.com> <CAD9ie-tyB_6KTWvAAXJnsqzXHQQuNew-YYhbGGDS9v-xT6sanA@mail.gmail.com> <jOUAfsUowQptZO4Tcn2jZds5oYV6jccNaYUHpzzKqf7T1sf71ZOKJWWKq_wLXaFioK5DuwWNI0Q5XY_aa9LvV-uruBCb_xuc2DDJVfoE898=@truealter.com> <CAD9ie-sp-pB7wsMP0TXTZe1S+JDQ5s9T3o_3ujLaCGR_p+n3AA@mail.gmail.com>
Feedback-ID: 187617253:user:proton
X-Pm-Message-ID: 987be1c2ee4f46e9ab23f351ab987713c0755eca
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Message-ID-Hash: WYBZONHN6US7CFRXCW6WS7D6O2WRRGU7
X-Message-ID-Hash: WYBZONHN6US7CFRXCW6WS7D6O2WRRGU7
X-MailFrom: blake@truealter.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "drew@truealter.com" <drew@truealter.com>, Dick.Hardt@gmail.com
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Web-bot-auth] Re: Interest in the human-principal layer above bot authentication
List-Id: Authentication of non-human users to human-oriented Web sites <web-bot-auth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/web-bot-auth/_xUHv5SrPbkx-T2IPXQ2ZpnJpss>
List-Archive: <https://mailarchive.ietf.org/arch/browse/web-bot-auth>
List-Help: <mailto:web-bot-auth-request@ietf.org?subject=help>
List-Owner: <mailto:web-bot-auth-owner@ietf.org>
List-Post: <mailto:web-bot-auth@ietf.org>
List-Subscribe: <mailto:web-bot-auth-join@ietf.org>
List-Unsubscribe: <mailto:web-bot-auth-leave@ietf.org>

Hi Dick,

Yes, that makes sense and you're right about the Mission - if it guides
the person running the agent, it can't carry a grant issued by someone
else. UMA rhymes too.

It turns on who signs. A pre-configured AS token carries no subject
signature, so the verifier trusts a server to have applied the owner's
policy rather than checking what the subject signed.

Can an AAuth AS issue an auth token on a grant it didn't author,
verifying a third party's signed authority rather than originating the
decision?

Best,
Blake


On Friday, 10 July 2026 at 01:53, Dick Hardt <dick.hardt@gmail.com> wrote:

> Hi Blake, thanks for the clarification.
>
> Some of what you describes rhymes with the User Managed Access (UMA)[1] work that Eve Maler and others worked on a while ago
>
> To answer your question, the mission is guiding the person running the agent, so I don't think it is where your subject's consent would be captured.
> If I understand the scenario correctly, the AS for the resource would be where an auth token could be issued that would grant the agent access to the request on behalf of your subject.
> This is the 4 party model in AAuth where the resource delegates access decisions to its AS, independent of the PS.
>
> Does that framing make sense?
>
> /Dick
>
> [1] https://docs.kantarainitiative.org/uma/wg/rec-oauth-uma-grant-2.0.html
>
> On Thu, Jul 9, 2026 at 3:12 PM ~blake <blake@truealter.com> wrote:
>
> > Hi Dick,
> >
> > Yes, but with one correction.
> >
> > The endpoint isn't a third party holding data about the subject. The
> > subject is the resource owner, and the endpoint serves their attributes
> > on their behalf, so the stranger in the picture is the requesting
> > client. You're right in that it needn't be an agent; nothing in the
> > mechanism is agent-specific.
> >
> > The consent isn't collected at request time either. The subject signs a
> > grant with their own key ahead of any particular read, naming which
> > clients it covers (a named client, a class of clients, or any), which
> > attributes, which tiers, when it starts and expires, and a revocation
> > commitment they can burn later by publishing the preimage. The client
> > never holds that consent. It echoes the grant's content address in its
> > payment payload, and the server verifies scope and revocation status
> > before it discloses anything.
> >
> > So on the UX flow, in the common case the agent never gets the subject
> > involved (deliberate, not an omission). Once an agent can drive a
> > browser, a click inside its execution context isn't evidence of a
> > human decision. The subject decides once, out of band, with a key the
> > agent can't reach, rather than being interrupted mid-request by
> > whoever happens to be querying.
> >
> > What starts it is the read. The client resolves the subject's
> > identifier and asks; the endpoint answers 402 - advertising the subject
> > - an opaque attribute reference, the disclosure tier, that consent is
> > required, and optionally a hint for where a grant may be requested.
> > With a grant in scope the client pays, the server discloses and the
> > subject is settled a share at disclosure time. Without one, that hint
> > is the only path that reaches the subject and it reaches the subject
> > directly rather than through a consent screen in the agent's session.
> >
> > Which leaves the question I put to you. Can a Mission carry a grant
> > issued by someone who isn't the agent's Person, or does that sit as a
> > layer beside AAuth?
> >
> > Cheers,
> > Blake
> >
> >
> > On Thursday, 9 July 2026 at 23:58, Dick Hardt <dick.hardt@gmail.com> wrote:
> >
> > > Hi Blake
> > >
> > > Let me restate the scenario you are wanting to support so I can connect all the dots.
> > >
> > > An agent (but really could be just any client) is calling an endpoint that has data about a particular person, and you want that person to provide consent for the agent / client to get that data (PII) about the person being served by the endpoint?
> > >
> > > To support your scenario, the agent would get consent from the person first, and then present that consent to the endpoint?
> > >
> > > From a UX flow -- how are you thinking that the agent gets the person / subject involved? What starts this scenario?
> > >
> > > /Dick
> > >
> > > On Thu, Jul 9, 2026 at 2:49 AM ~blake <blake=40truealter.com@dmarc.ietf.org> wrote:
> > >
> > > > Hi Dick,
> > > >
> > > > Thank you, that was the pointer I needed. Having now read
> > > > draft-hardt-oauth-aauth-protocol-09 and aauth.dev, signed requests
> > > > over RFC 9421 instead of bearer tokens, and OAuth being the wrong
> > > > shape for MCP, both match what I kept running into.
> > > >
> > > > AAuth already carries a human principal in the Person and Missions,
> > > > well beyond Web Bot Auth's key-only model. My consent-settlement work
> > > > is about a different human role; not the accountable operator behind
> > > > the agent, but the data subject an identity attribute is about, who
> > > > issues a scoped, revocable consent grant for a specific read of their
> > > > own attributes and takes a share of what the reader pays. That
> > > > subject is usually a third party to the agent.
> > > >
> > > > Specifically, can AAuth's Person and Mission machinery carry a consent
> > > > grant issued by someone who is not the agent's Person, or does
> > > > subject-side consent and settlement sit as a separate layer beside
> > > > AAuth? As I read AAuth-09 it establishes authorisation but does not
> > > > price or settle a read, which is the piece I have written up in
> > > > draft-morrison-consent-settlement.
> > > >
> > > > Thibault, yes, Section 6.2 is
> > > > draft-meunier-webbotauth-httpsig-protocol, and the
> > > > transport-versus-payload split is the seam. The signature
> > > > authenticates the agent and stays person-agnostic, while subject
> > > > identity and settlement bind at the payload layer, as UCP does with
> > > > buyer identity. Consent-settlement lives at that payload layer. Of
> > > > your pointers, crawl-payment and draft-klrc-aiagent-auth are closest
> > > > to what I am doing, so I will follow those first; the case I care
> > > > about is the cross-domain read of a third party's attributes, which
> > > > is why it sits beside the established-trust-domain work rather than
> > > > inside it. A pointer to the crawl-payment thread would be welcome.
> > > >
> > > > Cheers,
> > > >
> > > > Blake
> > > >
> > > > _______________________________________________
> > > > Web-bot-auth mailing list -- web-bot-auth@ietf.org
> > > > To unsubscribe send an email to web-bot-auth-leave@ietf.org