Skip to content
Agent Identity

IETF · 21 May 2026

Identity Assertion JWT Authorization Grant

draft-ietf-oauth-identity-assertion-authz-grant-04

See draft (Parecki et al.; informally called XAA)

WG draftDraft — expect changeAuthorizationAgent-specificField guide

This is the emerging 'enterprise agent may call SaaS APIs as the employee' path that scales past per-tool OAuth popups. Still a draft; pin versions and test interoperability.

At a glance

Problem
An enterprise app or AI agent already has an SSO session with the company IdP and needs to call another app's API on the user's behalf without a second OAuth consent circus at every SaaS.
Identity / authn / authz
Authorization brokered by the identity provider the resource already trusts for SSO. Extends the IdP from authentication into cross-domain API access.

Actors

  • Requesting app / agent
  • Enterprise IdP (AS)
  • Resource app AS
  • User (policy subject, often not interactively prompted)

01

The gap for agents

An enterprise app or AI agent already has an SSO session with the company IdP and needs to call another app's API on the user's behalf without a second OAuth consent circus at every SaaS. draft-ietf-oauth-identity-assertion-authz-grant-04 (21 May 2026) provides that mechanism and is informally called Cross-App Access (XAA).

This does not replace CIBA: use CIBA when a specific action needs a human on a phone; XAA when IT policy already authorized the connection. Still a WG draft; vendors (Okta, Auth0) already document XAA for agents and MCP enterprise-managed authorization.

02

Actors and trust boundaries

The enterprise IdP is the policy brain: it decides whether this requesting app may obtain a grant for that resource app. The resource app's AS already trusts the IdP for SSO; it now also trusts ID-JAGs as RFC 7523 assertions. The user is often not interactively prompted. That is a feature for IT and a hazard if policy is too broad.

03

Mechanics

Requesting app exchanges an ID Token (or refresh token) at the IdP via RFC 8693 for an Identity Assertion JWT Authorization Grant (ID-JAG) whose audience is the resource app's AS — not the requesting client (unlike an ID Token). It redeems the ID-JAG at that AS via RFC 7523 for an access token. Authors: A. Parecki, K. McGuinness, B. Campbell.

ID-JAGfrom spec
Quoted concept: JWT grant signed by the IdP, about the user, aud = resource AS. Not aud = the requesting client.

04

Step-by-step flows

Flow 1

IdP-brokered app-to-app

  1. 1

    User has an SSO session. Requesting app holds an ID Token from the enterprise IdP.

  2. 2

    App token-exchanges at the IdP: subject=ID Token, requested grant for resource AS.

  3. 3

    IdP policy allows or denies. On allow, ID-JAG issued (aud=resource AS).

  4. 4

    App redeems ID-JAG at the resource AS (jwt-bearer). Access token for the SaaS API is issued.

  5. 5

    App/agent calls the SaaS RS. No second consent screen unless policy demands it.

05

Identity vs authentication vs authorization

Authorization brokered by the identity provider the resource already trusts for SSO. Extends the IdP from authentication into cross-domain API access. User identity is in the grant; the access token is authorization at the resource AS.

06

How it composes

  • Identity chaining

    XAA is a profile of that pattern with the IdP in the middle.

  • Token Exchange

    Mints the ID-JAG.

  • OpenID Connect Core

    ID Token (or refresh) is the subject_token. Do not send the ID Token to the SaaS API.

  • MCP authorization

    Enterprise-managed MCP authorization often maps onto XAA so employees do not OAuth-popup every tool.

  • CIBA

    Different control: per-action human approval vs IT-preapproved connections.

07

What bites agent implementers

  • Policy too wide

    If the IdP allows 'any internal agent → any SaaS', you have automated confused deputy at enterprise scale. Scope the connections.

  • ID Token vs ID-JAG audience

    If you redeem a token whose aud is the requesting app, you are presenting an ID Token. The grant's aud must be the resource AS.

08

Stability — what you can ship

draft-ietf-oauth-identity-assertion-authz-grant-04, 21 May 2026, expires 22 November 2026, OAuth WG. https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-assertion-authz-grant/. Pin versions; test vendor interop. Not an RFC.

Catalog claims (short form)

ID-JAG
JWT grant signed by the IdP, about the user, aud = resource AS — not aud = the requesting client (unlike an ID Token).

Implementer notes

WG document. Vendors (Okta, Auth0) already document XAA for agents and MCP enterprise-managed authorization. This does not replace CIBA: use CIBA when a specific action needs a human on a phone, XAA when IT policy already authorized the connection.

Relationship to others

Primary sources

  • Datatrackerhttps://datatracker.ietf.org/doc/draft-ietf-oauth-identity-assertion-authz-grant/
  • HTML of draft-04https://datatracker.ietf.org/doc/html/draft-ietf-oauth-identity-assertion-authz-grant-04