[OAUTH-WG] Re: [WIMSE] Re: Binding OAuth-authorized calls to specific tool-call arguments in agentic/MCP flows

Sangam Das <info@sangamdas.com> Wed, 02 September 2026 05:33 UTC

Return-Path: <info@sangamdas.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 DD5ED13392332 for <oauth@mail2.ietf.org>; Tue, 1 Sep 2026 22:33:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1788327225; bh=ndjFMw2ct4c/YYCPOHXmjV6v71c1ZOZNeb/VVT98x7c=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=st6kzTWIpD8D6hTOcgzmgyJIEPBD0cyVkBNa+uAWQAj8jlSuJ1J8YZ4zXFBCsfX/a NoJd0RlrL36RUz4mMMI7BjzSumtB18XNjHvnCeDzR4ff1CsLhRE2qOMDD9zjYLVHyl BGliLRCWPkwavszozkzNgtwgtmatsmSH9aBFJd28=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=sangamdas-com.20251104.gappssmtp.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 m9iyd2EelKKJ for <oauth@mail2.ietf.org>; Tue, 1 Sep 2026 22:33:44 -0700 (PDT)
Received: from mail-yw1-x1129.google.com (mail-yw1-x1129.google.com [IPv6:2607:f8b0:4864:20::1129]) (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 0897713392323 for <oauth@ietf.org>; Tue, 1 Sep 2026 22:33:44 -0700 (PDT)
Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-861f30636f9so10682777b3.0 for <oauth@ietf.org>; Tue, 01 Sep 2026 22:33:43 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1788327217; cv=none; d=google.com; s=arc-20260327; b=YEwbNXUoEGuFQWxdobdgrdM3cOfXcJxuwFNNrlMPE7+P52jCOMHnUMlbZaadDV56NM KWNrYhVwLfL5P1DKcDlVQP/mqwBSjitL2U2u5hRuOy05Hs07FM2jC2CG3iFnCPmV8OMk QpwFXuO/p6mnr02iI6Vfxh6Kw0OEaovsGWxeM3kS2oI09B8nWq/ggkT8PlkRFP4rzohJ 1h5menK92HH8wc+F/SUVeG013mrGOam+SzpormIZeUMhSe4usnsc3YFmrwQHQPek1+2Q J38vefo+WcFkRvLDMvT6qbmkqa36zpC7i8XLhjDdtC4cJej/GEjCuondPvRvThWrkoaN T3tg==
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=E7rs3KAtuLSyYM/l/bjz+Xhpth5889eszr9cVkHF1WM=; fh=eWsnfFJ7dz1esxKi2hPt3T5JvFGQJb7HybiFqaK77kw=; b=faocc4ACg3N0Spf2EFtYv8oDJC3jPkMnl5K/X0+dTvJ5Ep/sfbvlumyVAWMu8ER2ii AOm0tNWe5TtJ1q9y+ZEildmwqJCOodo8QkMRa+FoMynwG9nIxRpmy9ltEj/moUD8Wboc KnitRQMJLoDrtv3SdlNEW7sAzcws45OU51ptja/itRwicHH/wYqKfdlo5S+7TuRJbr12 nMgSU27WnLUCF4kigzoEwP0pfW1gq5FikzYn6Z5Y/qUMrWBTKAYHZXtbs5Ci4XH5Wooa WhVdNVUHPZ2S9hZwanrXFop999+Alh1mX6u5Uw7cy8eUAdMEVS0KwKJ8wCHA5LQymM6J cGfQ==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sangamdas-com.20251104.gappssmtp.com; s=20251104; t=1788327217; x=1788932017; 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=E7rs3KAtuLSyYM/l/bjz+Xhpth5889eszr9cVkHF1WM=; b=Ag5u+jtlMxnXzmk2pc6RgDjIPI+AOncphBX1BjT0mDPLd3XWZKIF8ZnS5ccbwtGAsw MzBkWaJiWyiR4fcxjxlLllAF9bfqzA8Ky+2SJTJ8ZpZmQ5KJKYC+pV0TYM3/Zbm6u9nY vigZsUL28le1JEm2RtzmOEUof+t7RCrrn//8WOLSpZ4nmLBQrKZMzXPQmPMD3v4X5rcr MBugGWvmmR+duiKfqzJ0iJvRdWlxH4h5kLWuoh2byadp6K2X7UO85HDbIj5Qo608Vo8S yjBpq0fnT8PChrVvS691oDa9e4wKCY5cTtO/q++znFtSPAZDxiO2Xyo+1ywTv8ZOz/rg DpFQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788327217; x=1788932017; 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=E7rs3KAtuLSyYM/l/bjz+Xhpth5889eszr9cVkHF1WM=; b=hVnVb2LE9PeB1/vm0CWX+92T/+jLEzblFvFbMlTWSWNjGDZHP++2s8yUWH1v8gtVw8 iRgsOWBzEgBgZkQTy85U7LReNTWBoNwxB3Fg/IJY70VY4oFznnIrm2KJabK2sPbWPd03 RMwjz8agb6Fmv4OmrP0Q6gkUbnKdR3tPSK1XrbHowEBjX0RVeZRyZ0fW5lD7MaHkbzmy jxvflMBiUAZExhBNQ3xG7GwXuh0JBCJzNAjK0qS/VLUPlFiX2jgK3FPtIYBKZUE6Db90 QU9Im0qQ3hq0E+81ixVjm5o/1icyyO6+19sw/FAcIqiyvZzJ3thpIP8e8DzIRB7nGyTl bJdg==
X-Forwarded-Encrypted: i=1; AKwUvBwB3/c3mhQ6mZt9Wb/OLpSLT8MqdirS8ulu5539fLQayiJN7HtrUD6v0oqsxr8VXtBlALIpJw==@ietf.org
X-Gm-Message-State: AFuF++k0teaNy4SykYyZ+eg+tbM2ADniFtftcDQ4Omw/TSq1BZkwj/I5 7BcD1thDre3ZD4oQQZd0XfoThAYw53xLxUJgVz6P/IbYfesbYPxjYiJ8JPp4GaF+tRPZUzE4n/z oPHfOqCatc/flH/WxEwoFPuUYKja/0I93qYcWdxJvxCllD99lzEjYEO2/ySnJBA==
X-Gm-Gg: AYBFou3OLK17zXD3FhOkTVicgU3//pt/ekfKmGIYLM17MqpG+9LrFj+WMNJcNB4yX8f zdfPTNMrXCDDUD2QHJQufrdX9b0RO8En368qRn3M8dN03oisnft0rSvIZE5AUDBB3hljwrYDRHV QTy5IYivUxS6Kji4bzMvKyhjtsFzQdxfwXwDiFlCeLkkwm1dk+sF4qMY5d+RUj0lxlhHIf/XOPn hBklqldR00GcM3BmoFVqWl2OzD3i4atuDxTtotI8Qy4IaCrjP5QGXVvPp3sSClvWkqLNvec0XEy BujcyWZzuoSp7R+8bVObHOHJGGuX2XBWrpkrgxAcy6dEDfgZ5jH5aeSuCv/URxqvtwF/C71zber X3A==
X-Received: by 2002:a05:690c:d8e:b0:821:e0a:6cd9 with SMTP id 00721157ae682-86c522194f5mr11098737b3.17.1788327217142; Tue, 01 Sep 2026 22:33:37 -0700 (PDT)
MIME-Version: 1.0
References: <tencent_6C2AB3EC5E0D97B60B1829FC@qq.com>
In-Reply-To: <tencent_6C2AB3EC5E0D97B60B1829FC@qq.com>
From: Sangam Das <info@sangamdas.com>
Date: Wed, 02 Sep 2026 11:03:26 +0530
X-Gm-Features: AcwNN1W3f3EQzFmo3x16jybbSihtGlwvbuFyz4nEE1AiNUSAOD1hPF4EUhrFHfI
Message-ID: <CAHCJH6GtKhKb5_ZdHJqH2ArrSZk4QAV0WC6n8tjGw2-CY5c72g@mail.gmail.com>
To: Jijie Wei <pki@varwof.com>
Content-Type: multipart/alternative; boundary="000000000000852ebf065a7960f6"
Message-ID-Hash: 4E2ENQMQG5K5HXW7VTKXFE3A4SQDDNH7
X-Message-ID-Hash: 4E2ENQMQG5K5HXW7VTKXFE3A4SQDDNH7
X-MailFrom: info@sangamdas.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: wimse <wimse@ietf.org>, oauth <oauth@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: [WIMSE] Re: Binding OAuth-authorized calls to specific tool-call arguments in agentic/MCP flows
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/rJOva_DB9NWrFa6bn68A8FNOWj0>
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>

Dear Jijie,

Thank you for the pointer to the demo repo, and for stating the boundary so
clearly.

Your three points match what I see in aic-capability-demo:

   1. Bounds come from the principal (and role intersection at the CA), not
   from the model’s emitted arguments.
   2. The HTTP/MCP gateway checks the concrete parameters against those
   bounds per request and fails closed.
   3. That enforcement is at the gateway / MCP endpoint, not inside the
   host’s first local dispatch.

That is a real answer for every call that actually crosses gateway-http.
The wallet / database / deploy / MCP matrices in the README are the right
kind of evidence for this thread.

I agree AIC composes with RAR and mission-bound authorization rather than
replacing them: the certificate is the offline-verifiable assertion; an
online decision can still narrow it.

The remaining case is the one you already named — the in-process function
table (or any other path that never presents the AIC-JWT to the gateway).
On that path the host would need to invoke the same bound-check before
invoke(), or it is an alternate route around the sink you implemented.

I do not read that as a defect in AIC. It is a placement question: gateway
for networked MCP/HTTP, host wrap for local dispatch.

I will look through the repo in more detail. Happy to map a single MCP
tools/call against your std/mcp-v1 allowlist if that is useful.

Thanks again,
Sangam

On Wed, 2 Sept 2026 at 10:56, Jijie Wei <pki@varwof.com> wrote:

> Sangam, you asked whether this gap is already solved somewhere. We have
> implemented an answer in the AIC work and it is running; details and test
> matrices are in the public demo repo below.
>
> The pattern, in the vocabulary this thread has converged on:
>
> 1. The policy assertion is certificate-bound and independent of the model
>    output. A principal signs a DelegationAuthorization carrying capability
>    declarations with precise parameters (database: tables, columns,
>    row_filter, limit; wallet: assets, per-transaction amount, recipient
>    allowlist; MCP: tool allowlist). These are encoded in an X.509 agent
>    certificate and its JWT carrier. The authorized bounds come from the
>    principal (optionally intersected with the operator role's policy at
>    issuance) -- never from the model's emitted arguments.
>
> 2. Enforcement happens at the sink boundary. An AIC-aware gateway verifies
>    the presented credential, then checks per request that the concrete
>    operation parameters fall within the certificate's declared bounds
>    before forwarding. For MCP, a tools/call must reference an allowlisted
>    tool; the structured operation (table, amount, recipient, environment,
>    tool) is matched against the bound parameters. Unknown or out-of-bounds
>    operations are denied (fail-closed).
>
> 3. One boundary I want to state explicitly: this enforces at the network
>    gateway / MCP endpoint, not inside the host process's first dispatch
>    (the function table). In-process enforcement would require the host to
>    invoke the same verifier at that earlier point; that is a different
>    layer.
>
> The credential is transport-identity anchored (X.509 presented over mTLS,
> or a short-lived JWT issued from the same CA). This composes with, rather
> than replaces, RAR / mission-bound dynamic authorization: the certificate
> supplies offline-verifiable bounds, and an online policy decision can
> further narrow them.
>
> Running implementation (capability schemes, gateway plugins, test
> matrices): https://github.com/varwof/aic-capability-demo
>
> Happy to map the details if useful.
>
> Best,
> Jijie Wei
> --
> WIMSE mailing list -- wimse@ietf.org
> To unsubscribe send an email to wimse-leave@ietf.org
>