What changed in identity standards this week, where each spec stands, and how the drafts fit together.

This week

The changes worth five minutes, most important first.

  1. Substantive changeOAuth WG

    RFC 10070 is published: it updates RFCs 7521, 7522, 7523 and 9126 on audience values in assertion-based client authentication and grants.

    RFC 10070 fixes a vulnerability in the earlier audience rules for JWT client assertions and assertion grants. Anyone validating aud for private_key_jwt or the JWT bearer grant should recheck their code. The announcement omits the new values, so read the RFC.

    Read the explanation

  2. DiscussionOAuth WG

    Delegation-chain drafts to be compared at a 16 Nov side meeting; the lowest del_max_depth on the path is the effective limit.

    The Cred -02 author agrees the lowest del_max_depth on a path is the effective limit. Whether a leaf at exactly the root maximum is valid is still open between AAT and Asor, so test vectors will change before the 16 November side meeting.

    Read the explanation

  3. DiscussionIETF WIMSE

    The AIMS/MBA thread settles on an at-or-past (exclusive) expiry rule and on allowing a transcribed delegated-subject value across trust domains.

    AIMS threads settled on treating state or a permit exactly at its limit as expired, so boundary test vectors change. A delegated-subject value may also be transcribed across trust domains if the transcribing server audits it.

    Read the explanation

  4. DiscussionIETF WIMSE

    Independent test vectors for http-signature-08 were posted; the chair says verifiers should reject sender-side MUST NOT parameters.

    The chair's view that a recipient should reject a MUST NOT parameter such as keyid or alg settles verifier behaviour the draft text left open. Anyone implementing http-signature, which is with the IESG, can test against the independent vectors, though a few may still need fixes.

    Read the explanation

  5. Substantive changeOpenID

    OpenID4VCI's S2S work renames its identifiers and switches all JSON properties to snake_case.

    Wallet and issuer implementers face breaking wire-level renames: session_id becomes wallet_id, credential_instance_id becomes credential_id, and all JSON properties go to snake_case. Only commit titles are visible, so check the spec diff for the affected messages.

    Read the explanation

Where the specs stand

IETF drafts by Datatracker state. Highlighted ones changed in the last seven days. OpenID Foundation specifications follow their own process and are tracked by repository activity on the OpenID page.

  1. Individual drafts20

    +12 more
  2. Working group15

    +7 more
  3. WG last call and write-up3

  4. With the IESG3

  5. RFC Editor3

Topics

How the drafts and repositories group, and which topics build on each other.

Map of related topics
flowchart LR
  t_workload_credentials["Workload credentials and proof of possession"]
  t_client_metadata["Client identification and metadata"]
  t_agent_delegation["Agent delegation and attenuation"]
  t_agent_authorization_oauth["Agent authorization in OAuth"]
  t_agent_evidence_audit["Agent identity, context and audit evidence"]
  t_cross_domain_grants["Cross-domain grants and token exchange"]
  t_oauth_core_bcp["OAuth core and security BCPs"]
  t_verifiable_credentials["Verifiable credentials and SD-JWT"]
  t_identity_assurance["Identity assurance and proofing"]
  t_authorization_apis["Authorization APIs and decision semantics"]
  t_openid_connect_federation["OpenID Connect, federation and client libraries"]
  t_enterprise_profiles["Enterprise profiles and security events"]
  t_agent_delegation --- t_workload_credentials
  t_agent_evidence_audit --- t_workload_credentials
  t_client_metadata --- t_workload_credentials
  t_client_metadata --- t_oauth_core_bcp
  t_client_metadata --- t_cross_domain_grants
  t_agent_delegation --- t_cross_domain_grants
  t_agent_delegation --- t_verifiable_credentials
  t_agent_delegation --- t_agent_evidence_audit
  t_agent_authorization_oauth --- t_agent_delegation
  t_agent_authorization_oauth --- t_cross_domain_grants
  t_agent_authorization_oauth --- t_agent_evidence_audit
  t_agent_evidence_audit --- t_authorization_apis
  t_cross_domain_grants --- t_oauth_core_bcp
  t_oauth_core_bcp --- t_openid_connect_federation
  t_authorization_apis --- t_oauth_core_bcp
  t_identity_assurance --- t_verifiable_credentials
  t_openid_connect_federation --- t_verifiable_credentials
  t_identity_assurance --- t_openid_connect_federation
  t_agent_delegation --- t_authorization_apis
  t_enterprise_profiles --- t_openid_connect_federation
  t_enterprise_profiles --- t_oauth_core_bcp
  t_agent_evidence_audit --- t_enterprise_profiles

Workload credentials and proof of possession

WIMSE's base stack: identifiers, WIT/WIC, WPT, HTTP signatures and mTLS. http-signature is with the IESG; test vectors fixed an @query error. Reviews of identifier (one nit), mutual-tls (WGLC seen as possible after edits), workload-creds and wpt (jti replay only RECOMMENDED) were logged. Issue #416 proposes name-constrained CAs for shared trust anchors.

Related: Agent delegation and attenuation, Agent identity, context and audit evidence, Client identification and metadata

Client identification and metadata

How an authorization server learns who a client is. The CIMD draft closed 11 issues in the weekly digest and gained #131, which questions the response_types intersection. A SPIFFE client auth PR fixed an example whose metadata would have been rejected. Attestation-based client auth is a WG document with consensus, waiting for write-up.

Related: Workload credentials and proof of possession, OAuth core and security BCPs, Cross-domain grants and token exchange

Agent delegation and attenuation

How authority narrows between agents. AAT, the Asor chain format, Cred's Delegation Server and Delegate SD-JWT overlap. Authors agree the lowest del_max_depth on a path is the limit but differ on a leaf at the root maximum; a comparison is due before IETF 127. Cred -03 will cover cumulative budgets (single writer) and status for user-issued grants.

Related: Cross-domain grants and token exchange, Verifiable credentials and SD-JWT, Agent identity, context and audit evidence, Agent authorization in OAuth

Agent authorization in OAuth

Proposals for authorizing AI agents with OAuth, mostly new individual drafts: Proof-of-Intent Core -00 (open to carrying a PSEA token), Agent Passports -00 and authorization-evidence -02, where the list debates an approver-side signature. OpenID's AAuth repository is setting up working-group files. Transaction tokens await write-up.

Related: Agent delegation and attenuation, Cross-domain grants and token exchange, Agent identity, context and audit evidence

Agent identity, context and audit evidence

Identity, context and audit for AI agent actions. AIMS is a WG document; its threads settled on an at-or-past expiry rule and on transcribing the delegated subject across domains. Evidence-binding will narrow a suspended-actor claim to fit RFC 8693. AER-1 will use not_evaluated when an input is unknown. The AUDIT BoF asks OAuth about reusable record formats.

Related: Agent delegation and attenuation, Workload credentials and proof of possession, Authorization APIs and decision semantics, Agent authorization in OAuth

Cross-domain grants and token exchange

Carrying identity and authorization across trust domains. Identity chaining is in the RFC Editor queue (blocked); transaction tokens await write-up, and PR #374 registers the missing req_wl claim. ID-JAG has two new issues (#159, #160). A competing cross-domain transaction token draft may ask questions at the IETF 127 joint session but not co-present.

Related: Agent delegation and attenuation, OAuth core and security BCPs, Client identification and metadata, Agent authorization in OAuth

OAuth core and security BCPs

OAuth 2.1 and the BCPs around it. RFC 10070 (from rfc7523bis) was published, changing audience handling for JWT client assertions and assertion grants. rfc8725bis is in the RFC Editor queue but blocked; first-party apps awaits write-up. OAuth 2.1 PR #268 drew comments, and PR #283 proposes an author-list change.

Related: Cross-domain grants and token exchange, Client identification and metadata, OpenID Connect, federation and client libraries, Authorization APIs and decision semantics

Verifiable credentials and SD-JWT

SD-JWT VC is in IESG Evaluation. -25 and -26 act on Vyncke's ballot, Secdir rated -26 Ready, and PR #457 drops extends-based type matching. Token Status List is in the RFC Editor queue. OpenID4VCI renamed identifiers and moved to snake_case; dchp had 23 commits, including credential_types as an array.

Related: Agent delegation and attenuation, Identity assurance and proofing, OpenID Connect, federation and client libraries

Identity assurance and proofing

Verified identity data in OpenID: eKYC-IDA with its authority profile, the identity proofing extension, and government and national trust profiles. None of these repositories merged a PR in the last 30 days. Last pushes: cg-australian-digital-trust 10 days ago, Identity-Proofing-Extension and igov 30, eKYC-IDA 50, eKYC-IDA-Authority 57.

Related: Verifiable credentials and SD-JWT, OpenID Connect, federation and client libraries

Authorization APIs and decision semantics

Externalised authorization decisions. AuthZEN merged 6 PRs in 30 days, has 22 open and was pushed today; its recent merge #801 (branch iana-rfc) has no visible content. The evaluation draft and AIMS touch verifier-side evaluation and policy decision points.

Related: Agent delegation and attenuation, Agent identity, context and audit evidence, OAuth core and security BCPs

OpenID Connect, federation and client libraries

OpenID Connect core and extensions, native SSO, OpenID Federation extensions and AppAuth. In 30 days federation-entity-collection merged 5 PRs, claims-aggregation 4 (a trust model, an RFC 9207 mix-up defense), federation-wallet 4 and AppAuth-iOS 7. Connect core, native SSO and AppAuth-JS merged none.

Related: OAuth core and security BCPs, Verifiable credentials and SD-JWT, Enterprise profiles and security events

Enterprise profiles and security events

Enterprise profiles and lifecycle signalling: IPSIE and its profiles, Shared Signals and its WISE profile, Provider Commands, enterprise Connect extensions and FAPI. sharedsignals created 1.1 drafts from 1.0 and has 12 open PRs. ipsie-openid-sl1 was pushed 1 day ago, but no IPSIE repo merged a PR in 30 days; ipsie itself was last pushed 177 days ago.

Related: OpenID Connect, federation and client libraries, OAuth core and security BCPs, Agent identity, context and audit evidence

Everything else from the last few days

Friday 13 November

New proposalOAuth WG

Agent Passport author spells out -01 rules for cumulative limits, RAR grants and per-constraint attenuation of delegation receipts.

New draft: Agent Passports and Delegation Receipts (draft-le-agent-passport-00) (2 new messages)

Read the explanation

In reply to Kieran Sweeney, Ben Le says -01 will require a receipt with a cumulative limit to name exactly one relying party, which alone counts for the receipt and all its children. A limit without a single named party will be invalid. Sharing a total across relying parties is out of scope, and whether another party in the call path could keep the total is left open. He will define an RFC 9396 authorization_details type for grants so an authorization server that supports RAR can issue root receipts directly, while Token Exchange remains the path for an agent that obtains a receipt using its passport as actor token. He also gives a per-constraint subsumption table (host, port, methods, paths, tools, max_body_bytes, max_calls, max_spend, exp, aud). A child attenuates its parent only if every rule holds, unknown members are rejected, and anything not comparable is rejected. -01 has only a fixed limit of 8 receipts per chain and no depth claim. He plans to join Niki's comparison side meeting on 16 November and hold his own on 17 November, ahead of IETF 127.

  • An authorization server that already supports RAR could issue root delegation receipts for agents using a new authorization_details type.
  • A relying party enforcing a cumulative spend or call cap on an agent chain must be the one named counter in the receipt.
  • Implementers of several agent delegation drafts can use the per-constraint attenuation table as a basis for shared test vectors.
  • Related in IETF WIMSE: draft-asor-wimse-agent-delegation-chain. Named in the thread as having its own subsumption rule to compare against.
  • Related in IETF WIMSE: draft-hulea-wimse-agent-mandate. Named in the thread (as Hulea) among the drafts whose attenuation rules are to be compared.
  • Related in IETF WIMSE: draft-sweeney-wimse-credential-delegation. Kieran Sweeney, who replies in the thread, authors this credential delegation draft. This is an inference from the author name only.
DiscussionIETF WIMSE

The evidence-binding authors will narrow a claim about suspended prior actors so it no longer conflicts with RFC 8693 Section 4.1.

New I-D: draft-thaha-wimse-agent-evidence-binding-00 (evidence binding for AIMS audit)

Read the explanation

Shameer accepts Mikhail's two corrections. The statement that a Serving Party cannot refuse a call because a prior actor is suspended was too broad, because RFC 8693 Section 4.1 only rules out using nested act claims for that decision, not separately verified delegation tokens. The wording becomes: cannot refuse a call on the basis of the nested act claims because a prior actor has since been suspended. The phrase about history being neither complete nor evidence is replaced with: does not by itself establish that it is complete, or that any hop held or narrowed authority. Both edits will go into the next revisions of the SCITT draft and the Evidence Binding draft. No draft text was posted in this message.

  • A Serving Party deciding whether it may deny a call based on a suspended prior actor, using verified delegation tokens rather than nested act claims.
  • Related in OAuth WG: draft-ietf-oauth-transaction-tokens. Weak link only: both deal with carrying delegation context across hops, but the material does not reference it.
DiscussionIETF WIMSE

An IETF 127 hackathon plan for WIMSE agent call chains drew proposed negative test scenarios centred on revocation and fail-closed checks.

IETF 127 Hackathon: WIMSE interop scenarios for agent call chains (5 new messages)

Read the explanation

Alexander Pelov will run interop scenarios across independent implementations (SPIRE with experimental WIT-SVID, go-spiffe, Cofide's PoC and a Python implementation). The scenarios use workload-creds-03, wpt-02, http-signature-08, identifier-04, Txn-Tokens and identity chaining across two trust domains, with a shared transaction ID in logs. The normal path binds a Txn-Token to each hop's proof, and the Txn-Token never leaves its domain. Replies from Ben Le (draft-le-agent-passport) and Iman add cases: unreachable status list, revocation after delegation, widening delegation, cumulative limits across two services, request rewritten by a proxy and tool-description digest changes. Iman asks that logs distinguish confirmed revocation, expired status cache and unavailable status service, and that a revoked authorization blocks the operation before effect.

sequenceDiagram
 participant A as Agent A (domain A)
 participant B as Agent B
 participant R as Receiving hop
 A->>B: delegate
 B->>R: first call
 R-->>B: accepted
 Note over A: A is revoked
 B->>R: next call
 R-->>B: rejected (fail closed)
  • An implementer of WIT/WPT or Txn-Tokens wanting shared negative test cases to compare against other implementations.
  • A deployer defining fail-closed policy when a status list is unreachable or a delegating agent is revoked mid-chain.
  • Related in OAuth WG: draft-ietf-oauth-transaction-tokens. The scenario binds a Txn-Token to each hop's proof and keeps it inside its domain.
  • Related in OAuth WG: draft-ietf-oauth-identity-chaining. Crossing to trust domain B uses identity chaining.
EditorialOAuth WG

A PR proposes moving Dick and Torsten from authors to the acknowledgements in OAuth 2.1.

oauth-wg/oauth-v2-1#283: move Dick and Torsten to the acknowledgements

Read the explanation

The PR body argues that Aaron has contributed far more to the document than anyone else, so the attribution should reflect that. It includes a screenshot as an imperfect example measure. No spec text or protocol behaviour changes. The material gives no discussion or outcome.

Thursday 12 November

DiscussionIETF WIMSE

Credential-delegation -03 will cover cumulative-budget tally limits and a status location for user-issued grants.

draft-sweeney-wimse-credential-delegation-02

Read the explanation

Caleb accepts Kieran's review points 1, 4 and 6 and the jti-as-root shape for composing a user-issued root with the chain format. For -03 he agrees a tally held at each verifier bounds the total per verifier, not across verifiers, so a cumulative budget needs a single writer that sees every exercise. He also accepts the status gap: since a user cannot run a status endpoint, the grant must name where its status lives, and he will bring text. Quoted earlier, Rob suggests keeping who minted the root separate from evidence that a person approved it, and asks Section 7 to say what verifiers see for actions during a suspension and whether a restored delegation is the same grant; Kieran notes -02 Section 7 covers revocation only.

  • Building a delegated-credential service that enforces a cumulative spending or call budget across several verifiers.
  • Issuing a delegation root directly from a user, where there is no server to host a status endpoint.
DiscussionOAuth WG

AAT-02 thread: compare leaves that carry an action binding apart from leaves that cite a separate approval proof, and record shared replay state.

AAT -02 announcement (2 new messages)

Read the explanation

Mohamad Yossif argues that a chain leaf need not express the binding to one exact request itself. It can carry the digest of, or cite by jti, a separate proof. He describes draft-yossif-psea-03 as a proof signed by the approver's enrolled device over the SHA-256 of the request in RFC 8785 form, which a verifier refuses on replay. He suggests the comparison list "not expressible in the token" and "expressible by reference" as two entries. Iman agrees, would keep the action identifier, approval jti and proof reference distinct, and notes that conformance case DR-C7 only checks a second presentation to the same verifier. Iman proposes a new test presenting one proof through two leaves at two enforcement points and checking that at most one finalization succeeds, which separate local replay caches would not show. The thread contains no draft text change.

  • Authors of an agent authorization token who must decide whether per-request approval is carried in the token or referenced from an external proof.
  • Deployers running several enforcement points in one verification domain who must decide whether replay state has to be shared across them.
DiscussionIETF WIMSE

Thread on multi-hop delegation settles on an exclusive at-or-past rule for state age and permit expiry.

Subject: AIMS-00: multi-hop delegation context across agent, tool and resource boundaries

Read the explanation

Mikhail agrees to change his 23 October example to exclusive limits: state whose age equals S is stale, and a permit is unusable at or after its expiry; issuance needs a permit deadline later than issuance time. With S enforced at final issuance and permit lifetime bounded by L, new admissions are bounded strictly before original as-of + S + L (assuming zero skew and grace), though completion of already-admitted work is not bounded. Re-running the harness against MBA at commit ea1a149 gives 15 of 22 cases agreeing and 7 differing, where MBA compares inclusively at equality; he calls these differences from the convention, not defects. In the quoted message Marc asks Kieran to confirm that a transcribed delegated-subject value across a trust domain is acceptable if the transcription (old value, new value, server identity) is in the server's tamper-evident audit record, and proposes two changes on PR #176.

  • Implementing permit or mission-bound authorization expiry checks, where the boundary instant (equal to expiry) must be treated as expired.
  • Writing test vectors for staleness and expiry so that independent implementations agree at equality.
  • Deciding how a server records a subject identifier it rewrites when a request crosses a trust domain.
DiscussionIETF WIMSE

Mikhail asks the evidence-binding authors to reword claims that a serving party cannot refuse a call over a suspended prior actor.

New I-D: draft-thaha-wimse-agent-evidence-binding-00 (evidence binding for AIMS audit)

Read the explanation

Kieran has accepted that RFC 8693 Section 4.1 keeps prior actors in nested act claims out of access-control decisions, and the authors will take that reading in -02. Mikhail notes the SCITT -02 text still says a Serving Party cannot refuse a call because a prior actor was suspended. He points out that separately verified delegation tokens give another basis: a chain in the draft-asor-wimse-agent-delegation-chain-03 format is verified hop by hop, and step 7 denies when an accepted status answer marks any token revoked, within the status list freshness window. He suggests wording limited to refusal on the basis of nested act claims, and rewording the phrase that history is neither complete nor evidence.

flowchart LR
A[Token with nested act claims] --> B[Serving party reads top-level claims and current actor only]
C[Delegation chain tokens] --> D[Verify each hop]
D --> E[Check status list answer]
E -->|any token revoked| F[Deny]
  • Designing an audit or serving-party policy for multi-hop agent calls where an upstream actor is later suspended.
  • Choosing whether per-hop authority is checked from act claims (attribution only) or from separately verified delegation tokens with status references.
  • Related in OAuth WG: draft-ietf-oauth-status-list. The delegation-chain draft's status references and freshness window are checked against a status list answer.

Wednesday 11 November

DiscussionIETF WIMSE

AIMS cross-domain gap text: agreed to add bounding sentences that issuer trust does not decide authorization and that determinations expire.

AIMS -01: upstream authorities for Workload Identity Certificates (trust between trust domains) (6 new messages)

Read the explanation

The thread continues David Croston's proposal to record in AIMS a gap about trust between trust domains, with a mechanism-neutral property list (verifier trusts another domain's issuer without bilateral setup, issuer speaks only for its names, verifier chooses domains, bounded withdrawal). Jiahui Miao adds a bounding property: accepting another domain's issuer does not by itself establish authorization for an action. ShaoBao Li adds a time half, that a determination holds at the time of observation and not after the evidence expires. Cliff agrees to put one sentence in the gap text and the rest, including recording "not determined" rather than "not permitted", in Section 10.4. Sriram Shankarlingam agrees and notes his DNS-link link token grants nothing. Several messages cite the authors' own drafts and conformance suites.

  • Federating agents across organizations where no bilateral trust bundle exchange exists.
  • Auditors needing to tell apart refused because authority could not be determined and refused because the operation is not permitted.
  • Related in OAuth WG: draft-ietf-oauth-spiffe-client-auth. Related only loosely (workload identity to OAuth client binding); the material does not cite it.
DiscussionOAuth WG

Kieran replies on draft-le-agent-passport-00: shared limits need one counter, and RAR could carry root receipts.

New draft: Agent Passports and Delegation Receipts (draft-le-agent-passport-00)

Read the explanation

The message is a reply to Ben on two open items of the new Agent Passports and Delegation Receipts draft; only Kieran's reply is in the material, not the draft itself. On shared limit accounting between relying parties, he says a cumulative limit needs a single writer that sees every exercise. Separate RPs cannot hold the total, so either the receipt names one RP or a party in the call path keeps the running total. On RAR, he agrees authorization_details can be used for grants, so an AS that already does RAR can issue root receipts. He suggests first lining up the subsumption rule per constraint type, since asor, AAT and Hulea each have their own, and says Niki has offered to compare them before IETF 127.

  • An AS that already supports RAR and wants to issue root delegation receipts using authorization_details.
  • A designer of a multi-RP agent system who must decide where a shared spending or call limit is counted.
  • Related in IETF WIMSE: draft-hulea-wimse-agent-mandate. Named as one of the drafts with its own subsumption rule.
  • Related in IETF WIMSE: draft-asor-wimse-agent-delegation-chain. Named as one of the drafts with its own subsumption rule.
DiscussionOAuth WG

The list is discussing what an optional approver-side signature in authorization-evidence should have to prove, before any mechanism is picked.

draft-liu-oauth-authorization-evidence-02: an approver-side signature for 9.4

Read the explanation

Mohamad Khalil Yossif argued that the as_signature in Section 9.4 only proves the AS recorded an approval, not that the approver made it. They proposed draft-yossif-psea (an EAT profile in RATS, signing the SHA-256 of RFC 8785 bytes after user verification) as one way to produce the approver's signature, carried in an optional member of authorization_evidence. They noted it would not close 9.5, since trusted display stays out of scope. The author, Dapeng, replied that the draft deliberately leaves the mechanism open and could add requirements or reference existing IETF work, but that the priority is WG convergence on the problem statement and evidence model. Iman then listed what a signed approver statement should cover: purpose, decision, exact disclosure bytes or canonical digest, approved authority bounds and the approval occurrence. They also asked for a trusted approver-to-credential binding, audience and freshness checks, and an explicit signed-byte boundary to avoid a circular dependency with the AS-signed record. They suggested test cases and said a valid signature with unestablished display provenance should be reported as a separate result. No draft text changed.

sequenceDiagram
 participant A as Approver device
 participant AS as Authorization server
 participant V as Verifier
 AS->>A: Show disclosure and bounds
 A->>A: User verification, sign digest of canonical bytes
 A->>AS: Approver proof
 AS->>V: authorization_evidence with as_signature and optional proof
 V->>V: Compare digest, check binding, audience, freshness
  • An AS that records user approvals for agent actions and needs a way to show the approval came from the person, not only from the AS's own record.
  • A verifier that must distinguish a valid approver signature from proof of what the person actually saw on screen.
  • Related in IETF WIMSE: draft-munoz-wimse-authorization-evidence. Also about signed authorization-evidence records for agent actions, but the mail does not reference it, so the link is by topic.
DiscussionOAuth WG

A contributor proposes a mechanism-free requirements list for an approver-side signature in section 9.4 of draft-liu-oauth-authorization-evidence-02.

draft-liu-oauth-authorization-evidence-02: an approver-side signature for 9.4

Read the explanation

Mohamad asks to be added to the GitHub repository (account MohamadKhalilYossif) and agrees that requirements should come first. For 9.4 he proposes a short normative list that any approver-side signature must meet, naming no mechanism: it covers the exact disclosure bytes or their digest, it is made by a credential bound to the approver at enrollment, and it identifies the approval it belongs to. Existing work, PSEA included, would then be an informative reference. He will send this as a pull request rather than on the list. This is a proposal in a message, not yet text in the draft.

  • An implementer of human-approval flows for agent actions who wants to know what an approver signature must cover.
  • A reviewer who wants to follow or contribute to the draft's requirements via pull request.
  • Related in IETF WIMSE: draft-munoz-wimse-authorization-evidence. Similar topic of signed authorization evidence, but the material does not link the two, so this is only a pointer to compare.
DiscussionIETF WIMSE

One short reply: act is attribution, not a policy input, and the evidence-binding authors will take that in -02.

New I-D: draft-thaha-wimse-agent-evidence-binding-00 (evidence binding for AIMS audit)

Read the explanation

Despite the subject line announcing draft-thaha-wimse-agent-evidence-binding-00, the only message in the file is Kieran replying to Mikhail. Kieran concedes his earlier "policy input" line was wrong because Section 4.1 of the RFC keeps prior actors out of the access-control decision, so deny-listing a prior actor still conflicts with it. Direction (a) is the correct reading and Shameer and Shaibi will take it in -02. Per-hop authority needs separately verified evidence. The announcement text itself is not in the file.

DiscussionIETF WIMSE

AIMS delegation thread: the delegated subject may differ across trust domains if the transcription is in the signed record.

Subject: AIMS-00: multi-hop delegation context across agent, tool and resource boundaries (2 new messages)

Read the explanation

Kieran Sweeney clarified that "sub preserved" means the same principal, not the same bytes. Within one trust domain the value stays identical at every hop (sub fixed, actor in client_id and act). Across a trust domain, transcription under identity chaining is acceptable if the transcribing party records old value, new value and its own identity in what it signs; an AS merely keeping the mapping is not enough for AIMS Section 11. Marc proposes two changes on PR #176 along those lines. Both sides also agree to move the freshness boundary to at-or-past, so the 21 boundary vectors and the 23 October wording change, and the case admitted at exactly S+L becomes refused.

sequenceDiagram
 participant A as Domain A AS
 participant B as Domain B AS
 participant L as Signed audit record
 A->>B: token with sub value X
 B->>B: transcribe X to Y
 B->>L: record old X, new Y, own identity
 B->>B: issue token with sub Y
  • A deployment where an agent chain crosses trust domains via identity chaining and needs auditors to reconstruct the original user from records alone.
  • A verifier implementing the S+L revocation-admission bound that must decide whether an input exactly at its limit is accepted.
  • Related in OAuth WG: draft-ietf-oauth-identity-chaining. The cross-domain transcribed identifier is discussed as OAUTH-ID-CHAIN Section 2.5.
DiscussionOAuth WG

Kieran answers review comments on credential-delegation -02: cumulative budgets need a single writer, and -02 says nothing on suspension or restoration.

draft-sweeney-wimse-credential-delegation-02

Read the explanation

Kieran replies to Caleb and Rob. He accepts Caleb's points 1, 4 and 6 (the remap for a user-issued token, depth-0 values, and 'user-issued'). On how a user-issued root composes with the chain format, he and Rafael still need to agree, and Caleb's jti-as-root shape is a concrete proposal. A mode marker per cumulative key is planned for -03. He cautions that a cumulative budget needs a single writer that sees every exercise, so a tally held at each verifier bounds the total per verifier only, as Section 5.5 already says. -02 names no status mechanism for tokens the DS did not issue, and Section 7 says only that an offline verifier learns of revocation through whatever status mechanism it consults. He values Rob's split between who issued the root and evidence that a person approved it. Section 7 covers revocation only, nothing on suspension or restoration, and the 1-hour cap bounds exposure without closing it.

  • A deployer relying on per-verifier tallies who needs to know that a cumulative limit is not enforced across separate verifiers.
  • A verifier of delegation tokens issued elsewhere that has to choose a status mechanism because -02 names none.
  • Related in IETF WIMSE: draft-sweeney-wimse-credential-delegation. This is the draft whose -02 text is being discussed.
DiscussionIETF WIMSE

AAT, Asor and Cred -02 authors agree a child's lower del_max_depth must be honoured, and compare constraints before IETF 127.

AAT -02 announcement (2 new messages)

Read the explanation

Kieran agrees that the effective maximum depth at any hop is the lowest del_max_depth on the path, and that this cap is separate from the question of the leaf at the maximum (AAT J.10.f accepts a leaf at del_depth equal to the root maximum, Asor -03 rejects it). Rob Zagarella asks the comparison of the three drafts to record whether each can bind a leaf to a digest of one exact request; Kieran says Cred -02 cannot express that in the token today, and its Section 5.5 takes the chain format by reference so its entry for off-DS verification is provisional. Rob also asks that the AAT Section 9.8 revocation freshness bound be stated in the same terms as Cred -02 Section 7. Niki holds a side meeting on 16 November in San Francisco.

  • Implementers of attenuating delegation tokens who need to know whether a leaf at the maximum depth is accepted.
  • Human-approval flows where an approval must bind to one exact action such as a payee and amount.
  • Related in OAuth WG: draft-ietf-oauth-transaction-tokens. Not referenced in the material; omit if unsure.
DiscussionIETF WIMSE

Review of Cred delegation -02: user-issued roots, tally mode and revocation status are the open points for -03.

draft-sweeney-wimse-credential-delegation-02 (2 new messages)

Read the explanation

Kieran's -02 announcement describes a Delegation Server (DS) that holds deposited user credentials and lets agents exercise them by proxy under a delegation token. It adds sub-delegation exchange (5.4.1), rank order in the token, delegation_constraints with max_lifetime and max_subtree written only by the DS, a chain-verifiable profile (5.5) adopting the Asor agent_delegation format unchanged, revocation text stating revoked_count is invalidation not closure, and ML-DSA. Caleb Dayton raises six points, including the claim remap for user-issued tokens, using the token's jti as root receipt, a mode marker for single-writer versus delegate-held tally, and a status mechanism when no DS exists. Kieran agrees to a per-key mode marker but cautions that a per-verifier tally does not bound the total across verifiers, and says -02 names no status mechanism for tokens the DS did not issue. Rob Zagarella suggests separating who issued a root from evidence a person approved it, and asks Section 7 to cover suspension and restoration.

sequenceDiagram
 participant U as User
 participant DS as Delegation Server
 participant AG as Agent
 participant UP as Upstream resource
 U->>DS: deposit credential
 DS->>AG: delegation token
 AG->>DS: exercise under token
 DS->>UP: call with deposited credential
 DS->>AG: result and receipt
  • An agent platform where users deposit OAuth credentials with a proxy and agents never hold the upstream token.
  • A verifier away from the DS that must decide whether a cumulative budget has been exceeded.
  • Related in OAuth WG: draft-ietf-oauth-identity-chaining. Not named in the material; omit.

Tuesday 10 November

Substantive changeOAuth WG

In oauth-delegate-sd-jwt, cnf, exp, nbf and the other security claims move out of delegate_payload into the base KB-SD-JWT payload, with defined semantics.

oauth-wg/oauth-delegate-sd-jwt#15: Move security claims to base KB-SD-JWT payload and define claim semantics

Read the explanation

PR #15, which fixes #3 and #10, moves the security and validity claims (cnf, exp, nbf and so on) out of delegate_payload into the base KB-SD-JWT payload. Standard JWT and SD-JWT libraries can then evaluate them without first unpacking the delegate payload. When several delegate_payload entries are present, they share the base KB-SD-JWT's security claims. The PR also adds a section defining how cnf, iat, exp, nbf, aud, nonce, sd_hash and issuer_jwt_hash are interpreted when a KB-SD-JWT is delegated to a new Delegate Holder, versus how subsequent Delegate Holders and Verifiers interpret them, and updates the Verification section to match. Only the PR description was available, not the diff.

  • A library implementer who wants existing SD-JWT KB verification to check cnf and expiry on a delegated presentation without delegate-specific unpacking.
  • An agent that re-delegates a credential to another holder and needs the audience and nonce semantics to be unambiguous.
DiscussionOAuth WG

The AUDIT BoF organiser asked if OAuth will produce reusable authorization record formats, and one participant repeatedly objected to the AUDIT WG.

OAUTH record formats & the AUDIT BoF (4 new messages)

Read the explanation

Henk Birkholz wrote that the OAuth WG has rechartered to cover authorization and delegation of autonomous agents. He asked whether it plans tangible record or log artifact formats the proposed AUDIT WG could reuse, and said the BoF at IETF 127 aims to reuse as many existing formats as possible. Heime.Jorgen objected repeatedly, arguing that post-hoc records without pre-effect binding invite replay and TOCTOU attacks, and that the charter fails RFC 5434 criteria. They asked for extensibility slots for pre-effect seals and execution nonces. Mirja Kuehlewind replied that the objection was noted and need not be repeated. No OAuth WG member answered Henk's question in this material, and no draft text is involved.

  • Authors of agent authorization or delegation drafts who may be asked to make their records usable as audit evidence.
  • Related in IETF WIMSE: draft-munoz-wimse-authorization-evidence. Signed authorization-evidence records for agent actions are the kind of record format the AUDIT BoF asks about.
DiscussionIETF WIMSE

A reviewer says the agent-mandate draft should only let an RP un-count an unused token on positive evidence, not on missing confirmation.

draft-hulea-wimse-agent-mandate-01, Section 9.5: tokens that "expire unused"

Read the explanation

Dmitri Chistyakov comments on Section 9.5 of draft-hulea-wimse-agent-mandate-01. The draft treats unresolvable status as indeterminate and denies by default, but says that if a token expires unused the RP MAY remove its contribution to a cumulative limit. The contribution is recorded when the token is issued (Section 10.2), yet the draft does not say how the RP learns the token was unused. If the RP infers this from a missing or late execution confirmation, it can remove the contribution of an action that did run. The budget is then under-counted and a later request can pass the sum_max check wrongly. The proposed text allows removal only on positive evidence trusted under RP policy or the Trust Framework, such as a statement from the resource server that it never accepted the token. Absence of a confirmation does not count. Without such evidence the contribution stays recorded, which may cause an unneeded denial until it leaves the period window. The sender notes the message was prepared with AI assistance. This is a review comment, not a change to the draft.

sequenceDiagram
 participant RP
 participant RS as Resource server
 RP->>RP: record contribution when token is issued
 Note over RP: token expires, no confirmation seen
 RP->>RS: ask whether the token was ever accepted
 RS-->>RP: never accepted, stated after expiry
 RP->>RP: remove contribution
 Note over RP: without this statement the contribution stays
  • An RP enforcing a per-period spending or action limit on an AI agent using mandate tokens, where execution confirmations can arrive late or be lost.
  • A Trust Framework author defining which party may attest that a token was never accepted.
DiscussionOAuth WG

A list post proposes keeping the AS approval record in OAuth and the approver's signature in RATS, with AUDIT profiling the link.

OAUTH record formats & the AUDIT BoF

Read the explanation

Replying to Henk, Mohamad points to draft-yossif-psea, an EAT profile in RATS. In it the approver's enrolled authenticator signs, after user verification, over the SHA-256 of the RFC 8785 canonical form of the action. One independent verifier reproduces the published cases. He says it is meant to be cited, not embedded. He notes that draft-liu-oauth-authorization-evidence records the AS's view of the approval in RAR and recommends approver-side signatures in section 9.4, and that Konrad Gruszka's decision receipts leave that signature open. He proposes the split Mirja described for vCon: the AS record in OAuth, the approver's signature in RATS, and AUDIT profiling how a record references both. This is a discussion post only, and no draft text changed. Only the quoted part of the message is available, so Henk's original question is not visible.

flowchart LR
  A[Approver authenticator] -->|signs SHA-256 of RFC 8785 action| S[PSEA record in RATS]
  AS[Authorization server] -->|RAR approval record| R[OAuth record]
  AUDIT[AUDIT profile] -->|references| S
  AUDIT -->|references| R
  • A deployer who needs audit evidence of a human approval for a high-risk action, where the AS logs its own view and a separate user-signed record exists.
  • An implementer of RAR-based approval flows who wants to know whether approver-side signatures will be specified in OAuth or referenced from RATS.
DiscussionOAuth WG

The authorization-evidence draft author says -02 deliberately leaves approver-side signatures open and wants WG agreement on the evidence model first.

回复:draft-liu-oauth-authorization-evidence-02: an approver-side signature for 9.4

Read the explanation

Mohamad Khalil Yossif had pointed out that Section 9.4 of draft-liu-oauth-authorization-evidence-02 says the as_signature proves only that the AS recorded an approval, not that the approver made it. He proposed that draft-yossif-psea, an EAT profile in which the approver's authenticator signs the SHA-256 of the RFC 8785 (JCS) bytes of the disclosure object, be carried in an optional authorization_evidence member. He noted this does not close Section 9.5, because trusted display stays out of scope. The author, Dapeng, replied that Section 9.4 only makes a recommendation and deliberately leaves the mechanism open. The draft could later specify requirements or reference existing IETF work. For now the priority is WG convergence on the problem statement and evidence model, and he offered to add Mohamad to the GitHub repository. No draft text changed.

  • An AS that records user approvals for agent actions and needs to show later that the person, not only the server, approved them.
  • A verifier that wants to compare an approver-signed digest against the disclosure object recorded by the AS.
  • Related in IETF WIMSE: draft-munoz-wimse-authorization-evidence. Also defines signed authorization-evidence records for agent actions, so it addresses the same problem space.
DiscussionIETF WIMSE

A reviewer asks that section 5.4 state that its entries describe the evaluation instant only, not the moment of the effect

A principal-standing name for the 5.4 closed set

Read the explanation

Cliff supports adding an optional decision.evaluatedAt field, alongside Marc's malformed case. He notes this does not settle the gap between freshness at evaluation and freshness at the effect. Because the record already carries effect.interval.openedAt, a reader can compute an input's age when the effect began. He asks for one sentence in 5.4 saying the entries speak to the evaluation instant only. He also asks for a test record whose standing is fresh at evaluatedAt but past maxAge at openedAt, to be accepted as well formed. The message does not name the draft, and the thread's earlier context is not included, so the surrounding proposal is only partly visible.

  • An implementer validating decision records needs to know whether a stale input at effect time makes the record malformed or only informational.
  • An auditor reconstructing an action from a record wants to compute input age at effect start from effect.interval.openedAt, without treating evaluatedAt as proof of freshness at that time.

Monday 9 November

Substantive changeOAuth WG

This PR makes the types of an SD-JWT VC exactly those the Issuer asserts in vct and aka_vcts, and drops the extends-based matching.

oauth-wg/oauth-sd-jwt-vc#457: Clarify that the types of an SD-JWT VC are those asserted in vct and aka_vcts

Read the explanation

Since -25, Section 2.2.2.2 says a credential is of a type if it is the vct value or listed in aka_vcts. The PR removes two leftovers in Section 5.4: a MAY that let a Consumer also match types through the extends property of Type Metadata, and a SHOULD that the vct type extend each type in aka_vcts, which cannot hold for unrelated types since a type can extend only one other. extends now only determines which Type Metadata is inherited. Section 5.4 points to the recommendation in 2.2.2.2 to list extended types in aka_vcts, and Section 7.7 now says aka_vcts types are asserted by the Issuer like the vct type, with the MUST NOT unchanged. The PR says there is no new requirement, that OpenID4VP 1.1 already matches vct_values on vct and aka_vcts, and that ISO/IEC 18013-5 will cite a dated draft at the end of November.

  • A verifier matching vct_values must not infer extra types from Type Metadata extends, so results do not depend on which side fetched metadata.
  • An Issuer whose credential type extends a parent type that verifiers request should list that parent in aka_vcts.
  • An ISO/IEC 18013-5 mdoc profile that delegates type matching to this document.
  • Related in OpenID: openid/OpenID4VP. The PR states OpenID4VP 1.1 already matches vct_values on vct and aka_vcts and treats type extension as out of band knowledge.
Substantive changeOpenID

Openid/dchp saw 23 commits of spec edits: a field rename, credential_types as an array, and mdoc and SD-JWT VC wording fixes.

openid/dchp: 23 new commits on the default branch

Read the explanation

Only the commit titles are available, and 8 of the 23 are not listed, so this is a partial picture. The titles show CredentialItem.format renamed to credential_format and the format annexes adapted to credential_types being an array. They also show the following. The wallet, not the mdoc, chooses issuer- or device-signed. A substitute data element may be returned where its definition allows. The mapping of support_no_cryptographic_binding to DocRequestInfo was dropped. SD-JWT VC path semantics were deferred to issue #52, and a KB-JWT suggestion was applied. The ISO 18013-5 Document type is no longer redefined as a byte string, the authority key identifier now uses the RFC 5280 name, and RFC 7515 was added as a normative reference. Several other commits are review fixes and housekeeping. Exact wire-format effects cannot be confirmed from titles alone.

  • A wallet developer tracking dchp needs to update for the renamed credential_format field and the array-valued credential_types.
  • An implementer of mdoc responses needs to know that the wallet selects issuer- or device-signed data.
New proposalOAuth WG

The PoI Core author agrees to let the Proof-of-Intent Envelope carry a PSEA token as its device-bound attestation.

New Draft: draft-williams-oauth-poi-core-00 (Proof-of-Intent Core)

Read the explanation

This message is Paul Williams's reply in the thread about the new draft draft-williams-oauth-poi-core-00. Mohamad Khalil Yossif had suggested that the attestation in PoI Core is close to draft-yossif-psea, an EAT profile in RATS in which the enrolled authenticator signs, after user verification, over the SHA-256 of the RFC 8785 form of the action parameters. Paul agrees the two are complementary. The PoIE attestation block would be extensible by media type, with PSEA as the primary profile for device-bound Tier 2 and Tier 3 assertions, while Tier 1 in-memory Web Crypto session keys stay decoupled from hardware enclaves. He describes the split: PSEA handles the device-bound signature, PoI Core defines the two-phase challenge flow (HTTP 403 with step-up negotiation) and Tier 1 browser keys via IdP certification and PoP chaining, and display integrity is handled by the Resource Server resolving opaque IDs into signed display_facts. He proposes testing an application/psea+jwt token in the PoIE node assertion schema and asks for a sample token from the conformance suite. Nothing is specified yet; this is an early alignment discussion.

sequenceDiagram
 participant C as Client
 participant RS as Resource Server
 participant A as Authenticator
 C->>RS: Request action
 RS-->>C: HTTP 403 step-up challenge
 RS-->>C: Opaque ID resolved to signed display_facts
 C->>A: Parameters plus display_facts
 A-->>C: PSEA token signed after user verification
 C->>RS: Retry with PoIE carrying PSEA token
  • A resource server that needs a human to approve a specific high-value action and wants a signed proof tied to the exact parameters shown to the user.
  • A deployer weighing browser-only session keys against hardware-backed authenticators for different approval risk levels (Tier 1 versus Tier 2 and 3).
New proposalOAuth WG

A proposal to add an optional approver-signed PSEA token to authorization_evidence, so the person's own key covers what the AS says it showed.

draft-liu-oauth-authorization-evidence-02: an approver-side signature for 9.4

Read the explanation

Mohamad comments on draft-liu-oauth-authorization-evidence-02. Section 9.4 says as_signature proves only that the AS recorded an approval, and that deployments needing more SHOULD add approver-side signatures. He cites a case reported on the AUDIT list where a server signed text the person was never shown and still passed the -02 checks. He suggests draft-yossif-psea, an EAT profile in RATS in which the approver's enrolled authenticator signs, after user verification, over the SHA-256 of RFC 8785 bytes. If those bytes are the disclosure object's JCS form, a verifier can compare the digest with the disclosure's. This would not close 9.5, since PSEA leaves trusted display out of scope. He offers proposed text and a worked example against Appendix B.

sequenceDiagram
  participant P as Approver
  participant AS as Authorization server
  participant V as Verifier
  AS->>P: show disclosure object
  P->>AS: PSEA token signed over SHA-256 of JCS bytes
  AS->>V: authorization_evidence with as_signature and optional PSEA token
  V->>V: compare PSEA digest with disclosure digest
  • A deployment where a human approval of an agent action must be provable against a compromised or careless authorization server.
  • Auditors checking that the text a person approved matches the recorded disclosure.
  • Related in IETF WIMSE: draft-munoz-wimse-authorization-evidence. Also defines signed authorization-evidence records for agent actions, though the message does not reference it.
DiscussionIETF WIMSE

Audit-record test corpus: an input exactly maxAge old becomes stale, and an optional decision.evaluatedAt is proposed.

A principal-standing name for the 5.4 closed set (2 new messages)

Read the explanation

Sankalp Gilda agrees the freshness boundary is at-or-past: in the next revision of draft-gilda-audit-agent-audit-record an input is fresh only while its age is less than maxAge, so test record FR2 (exactly maxAge old) becomes a reject case. Because the record carries only decision.reportedAt, he proposes an optional decision.evaluatedAt, with age measured there when present and at reportedAt otherwise, plus test records on each side of the boundary. Marc supports this, noting that standing taken from a published commitment depends on its age when the decision was taken, and adds that an evaluatedAt later than reportedAt beyond the skew tolerance should be refused as malformed. A withdrawn-principal wording from Girish goes into Section 5.

  • Authors of audit-record verifiers who need a defined result for evidence exactly at its maximum age.
  • Decision points that report late and would otherwise appear stale when age is measured at the report time.
DiscussionIETF WIMSE

AAT, Asor and Cred-02 authors try to agree one meaning for del_max_depth and compare constraints before IETF 127.

AAT -02 announcement

Read the explanation

In this thread Niki (AAT) and Kieran (Cred-02) agree that each registry name should have a single entry, so the open point is how del_max_depth is interpreted. With a root del_max_depth of 8, AAT accepts a leaf at del_depth 8 (test vector J.10.f) while the Asor format rejects it. Niki adds that if a holder re-delegates with del_max_depth 2, AAT rejects a token at depth 3, whereas Asor checks only against the root's 8. Niki wants the shared definition to keep that cap. Rob supports keeping it. Kieran leans toward the Asor entry but cares more that the vectors are reconciled. Niki will add a test case for the capped scenario. Kieran separates chain-wide budgets, which need a single writer such as the Cred-02 Delegation Server ledger, from offline attenuation. On revocation, he asks the AAT Section 9.8 companion document to state a freshness bound for the enforcement point, in terms comparable to Cred-02 Section 7. Rob asks the comparison to record whether each draft can express a leaf bound to a digest of the exact request. Niki will have the comparison ready before IETF 127 and confirms a side meeting in San Francisco.

  • An implementer of agent delegation who must decide whether a leaf at the root's maximum depth is accepted or rejected.
  • A deployer who needs revocation of delegated tokens to take effect within a bounded time at enforcement points.
  • A human-approval workflow that must bind a delegated token to one exact action, such as one payee and amount.
DiscussionIETF WIMSE

Kathleen's review of draft-ietf-wimse-wpt asks why jti replay checking is only RECOMMENDED and what collision-resistant claim names means.

Review of draft-ietf-wimse-wpt

Read the explanation

The review is mostly editorial and reads the draft as a clear guide for implementers. It asks to break out the Key Characteristics paragraphs. From a security view it asks why the check that a jti has not been used before in the WPT validity window is RECOMMENDED rather than MUST. It also asks what collision resistant means for a claim such as example.com/myclaim, since the term usually refers to hash functions. No text change has been made.

  • An implementer deciding whether to enforce jti replay detection on WPTs when the draft only recommends it.
DiscussionOAuth WG

The AUDIT BoF proponents ask whether the OAuth WG will define record formats for authorization state that AUDIT could reuse.

OAUTH record formats & the AUDIT BoF

Read the explanation

Henk, writing for the AUDIT BoF proponents, notes that the OAuth WG rechartered to include authorization and delegation of autonomous agents, which fits the AUDIT BoF at IETF 127. They ask whether the WG plans tangible record formats that an AUDIT WG could reuse, and say the BoF stance is to reuse as many existing record formats as possible. They invite cross-review and feedback from the WG experts. No answer is included and no text changed.

  • Authors of agent authorization drafts who want their records usable for auditing who authorized which action.
DiscussionOAuth WG

The AAT thread is converging on one del_max_depth meaning, with a comparison of three delegation-chain drafts due before IETF 127.

AAT -02 announcement

Read the explanation

Participants discuss aligning AAT, the Asor agent_delegation format and Cred -02 (a Delegation Server design). Niki argues that a holder who sets a smaller del_max_depth than the root (root 8, holder 2) should cap everything below it, so a token at depth 3 is rejected, whereas Asor checks depth only against the root's 8. Kieran notes that a leaf at del_depth equal to the root maximum is accepted by AAT (J.10.f) but rejected under Asor semantics, and wants the test vectors reconciled. Rob agrees the cap should stay and asks the comparison to record whether each draft can bind a leaf to a digest of the exact request. Kieran and Rob both want the companion document for AAT Section 9.8 to state a revocation freshness bound, ideally in terms comparable to Cred -02 Section 7. Niki confirms the comparison and a side meeting. The thread is truncated in the source, so earlier messages are only partly visible.

  • Implementers of delegation-chain verifiers who must decide whether a leaf at the root maximum depth is valid.
  • Deployers who need a human approval to bind to one exact action inside a broader delegated grant.
  • Enforcement points that must state how fresh their revocation state has to be.
  • Related in IETF WIMSE: draft-asor-wimse-agent-delegation-chain. Its agent_delegation format and del_max_depth registry entry are the semantics being compared with AAT.
  • Related in IETF WIMSE: draft-sweeney-wimse-credential-delegation. Cred -02 is discussed for its Delegation Server ledger and revocation limits, and it adopts the Asor format unchanged for tokens verified away from the DS.
DiscussionIETF WIMSE

Marc asks whether sub being preserved at every hop means the same value everywhere, even across trust domains.

Subject: AIMS-00: multi-hop delegation context across agent, tool and resource boundaries

Read the explanation

Marc cites Kieran's statements that sub is the Principal at every hop and stays the original delegated subject. He asks whether preserved means the same sub value at every party, including after a hop crosses a trust domain and a party gets a transcribed identifier (OAUTH-ID-CHAIN, Section 2.5). The alternative is that each value refers to the same User and the issuing authorization server keeps the mapping for Section 11. He asks because Nik is proposing text for Section 10.10 on AIMS issues #88 and #90 in which the value may differ between parties, and that text should not conflict with Kieran's property. No answer is in this message.

  • A multi-domain agent deployment where a downstream authorization server issues a different identifier for the same user.
  • Related in OAuth WG: draft-ietf-oauth-identity-chaining. The message cites OAUTH-ID-CHAIN Section 2.5 for transcribed identifiers across trust domains.
DiscussionIETF WIMSE

Kathleen's review of the mTLS draft asks it to cover key-pair authentication, not just path validation and naming, and thinks WGLC is possible.

Review of https://datatracker.ietf.org/doc/draft-ietf-wimse-mutual-tls/

Read the explanation

The review proposes adding at the transport layer to the first sentence of the Introduction. It suggests a new section before 3.2 on authenticating the workload with the key pair tied to the certificate, including provisioning when the workload must match expected key pairs. In Section 5.1 it proposes wording so the server is authenticated using its credentials and key pair, not only the workload identity name. It also proposes that a server doing mTLS MUST validate the client certificate chain and key pair, as well as trust domain and Workload Identifier. With these changes the reviewer sees WGLC as possible.

  • An mTLS implementer who wants the spec to say explicitly that proof of possession of the certificate key is part of authentication, alongside chain and identifier checks.
DiscussionIETF WIMSE

An individual draft will treat an input exactly maxAge old as stale, and the author floats an optional decision.evaluatedAt.

A principal-standing name for the 5.4 closed set

Read the explanation

Sankalp Gilda replies to Wes, Blake, Kieran and Girish. He agrees the freshness boundary is "at or past", so an input is fresh only while its age is less than maxAge. The next revision of draft-gilda-audit-agent-audit-record (after -03) will say this, and his test record FR2, an input exactly maxAge old, becomes a reject case. He asks whether an optional decision.evaluatedAt would fit. Age would be measured there when present and at decision.reportedAt otherwise, and he would add test records on each side of the boundary for a decision point that reports late. He will put Girish's wording "an issuer or a principal whose standing is withdrawn" into Section 5, with a withdrawn-principal record. He also asks Wes for the -06 text of Section 3 and 3.2 so he can mirror it. The message does not say which draft the -05/-06 text belongs to, and no WG draft text changes in it.

  • An implementer of an audit or evidence verifier who must decide whether an input exactly at the maxAge limit is accepted.
  • A decision point that reports its result late and needs the age check done at the evaluation instant instead of the report time.
EditorialIETF WIMSE

Kathleen's review of identifier-04 has one nit: say that credentials means WIMSE workload credentials.

Review of draft-ietf-wimse-identifier-04

Read the explanation

The only comment concerns the last paragraph of Section 5. It proposes changing the final words from credentials to WIMSE workload credentials, so readers know it refers to the credential formats of [WIMSE-CREDENTIALS]. The review otherwise finds the document well written. This is a terminology fix with no protocol change.

Sunday 8 November

DiscussionOAuth WG

Weekly digest: big issue cleanup on the client-id-metadata-document draft, two new ID-JAG issues, and several sd-jwt-vc PRs.

Weekly github digest (OAuth Activity Summary)

Read the explanation

The digest lists GitHub activity only, with no spec text. In draft-ietf-oauth-client-id-metadata-document, 11 issues were closed, including those on token_endpoint_auth_method with private_key_jwt (#100), guidance on omitting token_endpoint_auth_method (#92), unsupported metadata values (#71), AS error returns (#85), disallowing the root path as a URL (#86) and data URIs for logo_uri (#19). One new issue (#131) says the response_types intersection rejects otherwise usable token-endpoint grants. Three PRs were opened, and PR #99 (Add Client Authentication section) got a comment. For oauth-identity-assertion-authz-grant, mcguinness opened #160 (sender-constrained ID-JAG should not replace required client authentication) and #159 (sections 7.2 and 8 require jwt-bearer but omit jwt-dpop). oauth-sd-jwt-vc got 7 new PRs, and PR #450 (Mike Bishop's ballot) got a comment. oauth-v2-1 PR #268 (supporting OAuth 2.0 and 2.1 clients concurrently) got 3 comments. oauth-transaction-tokens got 1 new PR. The digest does not show the reasons for the closures or the content of the PRs.

  • An authorization server implementing client ID metadata documents wants to know whether the client authentication and response_types handling rules are still changing.
  • An implementer of the ID-JAG grant who plans to use DPoP should watch #159 and #160 on the jwt-dpop gap and on client authentication.
DiscussionOAuth WG

A reply on the Proof-of-Intent Core draft suggests carrying a PSEA token as its attestation.

New Draft: draft-williams-oauth-poi-core-00 (Proof-of-Intent Core)

Read the explanation

The message is addressed to the author of draft-williams-oauth-poi-core-00 (the thread is titled as the new draft announcement). The sender says the attestation in PoI Core is close to the token defined in draft-yossif-psea, an EAT profile in RATS. In PSEA, the approver's enrolled authenticator signs, after user verification, over the SHA-256 of the RFC 8785 form of the exact action parameters. The sender cites 31 public conformance cases and one independent verifier. PSEA does not cover how the resource server requests approval or how the client key is certified, which PoI Core does define. The sender therefore proposes that the PoIE carry a PSEA token as its attestation and asks whether the author is open to checking the fit. The draft text itself is not in the material, so nothing more about PoI Core is claimed.

  • A resource server that wants user-verified approval of one exact action (for example a payment) and must choose between a bespoke attestation format and an existing EAT profile.
  • An implementer building a verifier who wants shared conformance cases rather than a draft-specific attestation format.
DiscussionIETF WIMSE

Weekly WIMSE GitHub digest: new issues on HTTP-Sig test vectors, nonce examples and shared trust anchors, plus a spelling-fix PR

Weekly github digest (WIMSE Weekly GitHub Activity Summary)

Read the explanation

The digest lists five new issues on draft-ietf-wimse-s2s-protocol. Two concern draft-ietf-wimse-http-signature-08: a request for test vectors (#419, four comments) and a note that sample nonces in the examples are illustrative and below the entropy floor (#420). Two are editorial-comment trackers for the HTTP-Sig and workload-creds drafts (#417, #418). Issue #416 proposes requiring name-constrained issuing CAs when a trust anchor is shared across trust domains. It also drew a comment on #370 (overlapping trust roots, labelled workload-creds and mutual-tls) and on arch PR #142 (Terminology). Issue #414 (Reconcile Coexistence) got one comment, and PR #415 fixes three spelling errors. The digest gives only titles and comment counts, so no proposed wording or decisions are visible, and no draft text changed.

  • An implementer of WIMSE HTTP message signatures waiting on test vectors to validate interoperability can follow issue #419.
  • A deployer where several trust domains share a root CA can follow issue #416 and #370 on whether name-constrained issuing CAs will be required.
EditorialOAuth WG

A PR adds the required req_wl claim to the JWT Claims registry entries in the Transaction Tokens draft.

oauth-wg/oauth-transaction-tokens#374: Register the req_wl claim in the JWT Claims registry

Read the explanation

The contributor noticed that req_wl is a REQUIRED claim but is missing from the JWT Claims Registry Contents in the IANA section, where only tctx and rctx are listed. The PR adds the registration. It is an IANA considerations fix and does not change the token format or processing.