[OAUTH-WG] Re: Feedback on ID-JAG same IdP prohibition - Application to Application Delegation
Tarun Nanduri <tarunnanduri7@gmail.com> Sun, 08 February 2026 08:06 UTC
Return-Path: <tarunnanduri7@gmail.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 CFC39B3914C9 for <oauth@mail2.ietf.org>; Sun, 8 Feb 2026 00:06:37 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.848
X-Spam-Level:
X-Spam-Status: No, score=-1.848 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, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=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=gmail.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 Tj1dmDgpZQ4m for <oauth@mail2.ietf.org>; Sun, 8 Feb 2026 00:06:36 -0800 (PST)
Received: from mail-yw1-x112a.google.com (mail-yw1-x112a.google.com [IPv6:2607:f8b0:4864:20::112a]) (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 C7EF6B39111A for <oauth@ietf.org>; Sun, 8 Feb 2026 00:02:51 -0800 (PST)
Received: by mail-yw1-x112a.google.com with SMTP id 00721157ae682-79639c2ceb6so3951797b3.1 for <oauth@ietf.org>; Sun, 08 Feb 2026 00:02:51 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; t=1770537771; cv=none; d=google.com; s=arc-20240605; b=YU2DJ8Z4+4MVHcIE4pfwwrGz1/5+ulNrWZosrnJyWeTu5DaeOHcg2ro+WRixE3Jfhg Mgy8L9vWStlKOvE0WxTb8MSYW6Y4CMjuDGXziUlscN8EGrJPlsUofzfIui3RRFk5rUMc xv4cqzWYbwjiOaPoCMivZwSMplLaZsknvQggnn3ucQvIzAPaIrEHuIacXKr5RqalrHHB ohxR+c7roAQh2Ypd0m2q4NJKB9F+wDbvBHYz1P5cJYYEdDlszSayjp6GysxxQsMHju9i axj8g2wOq7bUUr/2bu9uV2S4RtcTmTwwG4NV2i/Mp0f/7qX0KJ0bRRXli9m8NtHwpGIR N7rg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=RVWJzUe+DPdH7aEQW5DDgag9FLdOk/0dTBtmksBPo3M=; fh=a6JuaPLkHXV3xWQD05BC3xPhFJaEun8cXadSBGx1MRw=; b=MgtDLNaudT9Mv4MUvEMlEl/JK1/WxXQrtQeDHuH2ti1R2xogl2bIgSfCpviOiM7gW0 yGt4akforFPQAthL57QSTKqNFSCXTv1/uZNF0VZo7mLnxCflx41fNJiGvEcrQW2EO4W0 qt1hUrXaDd7v4TXShmUvops4Q7caXlBG9aTGUYEtJN/TCJkuuyBYq6fxc5li8WN5nU9I y+sL5H4pknKIRWvTRuvdT+8IgYHZ2w+Yg0myu11RTvA8bqzUlntWwgx70vEBXALx++NL xIE/d9T/7z6C++8Hj38uZpGmGuQdIpmuztZQk34GpJnx+vdjI99aMkx97AXiwyePhPIo 9H0w==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1770537771; x=1771142571; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=RVWJzUe+DPdH7aEQW5DDgag9FLdOk/0dTBtmksBPo3M=; b=MMG1boIWFE7jWVzKmcBxq9BcqqB1At6HPs0alziNMHX3YHs8w8uZnr6vjaDMXjZ3Qk +NGhNMB/JESggrtzLkeJUQ98vf8Mx39BhFJb5PeW1cPgqTR50fTc6QeYJksnLVvuBwjM QGl4FQ+8LGxkQ1sedL7+6qgKwCKLQFYRPJd1DRSDev4IK5YuRX3S/1k3GxPkzFCnyC/l XPCJu8G/2b8Y+Lxqax+teAny7XqzuxvtB99fRD739JtX+oKKaKlVYqAbTM3m725usf5J tjJVdrYbW4NE+gjORKrqy+3e/PGtcA/U20qXPMKHynhSGrU/1t0fKxwRNpqevwmJSS/I djfQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1770537771; x=1771142571; h=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; bh=RVWJzUe+DPdH7aEQW5DDgag9FLdOk/0dTBtmksBPo3M=; b=FjD2hj0GGx186FOuhIgooQS43QH/rDVrRVJPUUJ1az3lsZxgKpXWhc+t9PdSk9FeB5 8/WP8ldTfsQUqclLxPoGLy6zI7EfeVsiKaGRw/+DMbx4QtYHQVepxLYoT5Z5NbvLLZE8 OYJ130HyJVDQW9GzdVAFS30XjoMGHx01pTlsSpVHBMHAjUfaIUPL9pmGcRqhC0EPx9OW k42vnbEd9zpbHZPBOONqXcEeP+Im8NB4fLrlwlavOqpdaqJCz2WVqD5foXCK+Q6XBRDT U9Kl5g/CcPLv+ZfdhT3+XHZ17ohpmVALJy0LCPQHnhYd2W9HB4iVtc/z/PM7fOxzwiAJ YBew==
X-Forwarded-Encrypted: i=1; AJvYcCWsZ41FNGUCg9Y8HnL58uf6NLj/jplvMjsAeLkWLGv7K6jGzfXBD0mbiy+V2h5oEXHsHaXWYg==@ietf.org
X-Gm-Message-State: AOJu0YyTzNMupyfDJtXgAkTIDMKPsUevvkNVhVdfsUGbf9g5sipkNq+i qWmZbpRbZigS/jPS0MDvDM0m2kNXMdZO4ncYSsNE3wxQPbmTgWeimZCp9CeyEg27E7sBTyjrVD6 x1eAVJvYUSurbZtnefc+d5gQPwYmsJ4mnJK05
X-Gm-Gg: AZuq6aKeLLv3oTJxgjzgvc6Wcy+HZFnfhvlT3JttIXK1duuVAmz4zGqQi8iSNUx5Br7 pd5L0bfllCT9Yf630C2SFAlP0xRebiBrKYOq9edNf88z0xgh0O0EB4MSNmeo2rCAitMWL69qr4i HEU7LC2JK6JDYw3HiJjt0/+MqrNQNesHJL+stdtaNqYxSt3T4alvuks6760287CzDJz3MC20Blw XezXWhg/HeIpVSXJsx6QDcwhk4SYAqjmycsXowg88+JPh9GdB2zLeQBq6sGEuFYOKLd5UqMSCg8 C2cAhwA3PqkjEZoF+rkxxDc86zCMkQ==
X-Received: by 2002:a05:690c:d8b:b0:786:25e9:387c with SMTP id 00721157ae682-7952aa85891mr69529877b3.20.1770537771066; Sun, 08 Feb 2026 00:02:51 -0800 (PST)
MIME-Version: 1.0
References: <CAC7mS1-RovjjCGg16W9W1YpcZgrDD4Ng0D2w9FQN1rCB0dxi5g@mail.gmail.com> <CAGBSGjpsShrJR0TtsncrCpX=qYg1kF4HSqznqNN3F+CP9-41gA@mail.gmail.com> <CAC7mS18R3ngNOwVoU8X3a6WfcF7kV4VOB=7FdPTDDi2AO3TKjQ@mail.gmail.com> <CAC7mS1_2jfC4++tuZX4smJVrcDYzr-=VbK2VHYU2N5jH2EfaEQ@mail.gmail.com> <CA+k3eCT0R1FLZerrO=FfLwJyx6XgdShzh7mVRndmoTE6nMGqQA@mail.gmail.com> <CALtWOA3TCXd02WSO9odywT5bwrn-E20zYiJudZ9BzVs07hF7pw@mail.gmail.com>
In-Reply-To: <CALtWOA3TCXd02WSO9odywT5bwrn-E20zYiJudZ9BzVs07hF7pw@mail.gmail.com>
From: Tarun Nanduri <tarunnanduri7@gmail.com>
Date: Sun, 08 Feb 2026 13:32:40 +0530
X-Gm-Features: AZwV_Qgjlempy9R0Pruxqwo3fVvnUE23ZBDMtN5EyDo6JWlsiGRz72PRHVeyqe4
Message-ID: <CAC7mS1_6ajOH0JU3uuLjmObdnaeo2sKc8x5TWiVtCE=S+ckpFw@mail.gmail.com>
To: Pieter Kasselman <pieter@defakto.security>
Content-Type: multipart/alternative; boundary="000000000000e7ea83064a4b7246"
Message-ID-Hash: YCZZ4YUDTYQMLY5WHDU7OVSKLSPVTB4G
X-Message-ID-Hash: YCZZ4YUDTYQMLY5WHDU7OVSKLSPVTB4G
X-MailFrom: tarunnanduri7@gmail.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: Brian Campbell <bcampbell=40pingidentity.com@dmarc.ietf.org>, oauth@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohibition - Application to Application Delegation
List-Id: OAUTH WG <oauth.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/pmAjSnmDrUEhEhajGycGGiWpGlc>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Owner: <mailto:oauth-owner@ietf.org>
List-Post: <mailto:oauth@ietf.org>
List-Subscribe: <mailto:oauth-join@ietf.org>
List-Unsubscribe: <mailto:oauth-leave@ietf.org>
Hi Pieter, Brian, Aaron, and the WG, Thanks for the feedback and for taking the time to look at this. I’ve been thinking over the points about Section 8.3 and the general intent of ID-JAG. Stepping back from the specific spec for a second, it feels to me like we have a bit of a gap in the OAuth/OIDC specifications. We’re essentially looking for a standard way to do Directed Session Transfer, in environments where shared cookies/SSO just aren't an option for security reasons. You pointed toward the Identity Chaining Across Domains draft as the intended home for this, and I see the logic—since the AS in Domain A generates the JWT grant, it handles the "identity proof" part of the handover. But right now, if I want to move a user from App A to App B without a fresh login, the options still feel a bit thin: - Standard SSO is off the table because of the "no-shared-cookie" constraint. - RFC 8693 is a great building block, but it’s mostly used for service-to-service backend swaps. There isn't really a front-channel "profile" for this (as RFC863 sends back a usable token rather than an assertion). - Identity Chaining, as Brian mentioned, is explicitly a specification for cross-domain use. It feels a bit ironic that the protocol makes "Cross-Domain" identity transfers standardized via ID-JAG (as an OAuth native grant), but leaves "Intra-Domain" delegation as a "roll-your-own" exercise. Without a standard profile for this, people might just end up building non-standard hacks which is exactly what we’re trying to avoid. I’m not trying to force a change to ID-JAG if the WG feels it’s the wrong home, but I am curious: - Do we think this "Directed Session transfer" pattern is a gap worth filling? It feels to me like there should be an "OAuth-native" way to do this that has the right guardrails (audience binding, act claims, etc.) to make it secure in a Zero Trust setup, but is as straightforward to implement as a basic Auth Code grant. I’d love to hear if anyone else sees this gap, or if there's a pattern I’m missing that doesn't involve a lot of custom "glue" code. Best Regards, Tarun Nanduri. On Thu, Feb 5, 2026 at 6:14 PM Pieter Kasselman <pieter@defakto.security> wrote: > Hi Tarun > > I agree with Brain and Aaron that your use case can likely be addressed by > the Identity and Authorization Chaining Across Domains draft [1]. You could > always profile it further if needed. Is there a reason you would not be > able to use that draft? > > Cheers > > Pieter > > [1] https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/ > > On Wed, Feb 4, 2026 at 9:31 PM Brian Campbell <bcampbell= > 40pingidentity.com@dmarc.ietf.org> wrote: > >> Hi Tarun, >> >> As Aaron mentioned there are less tightly profiled variations of this >> general flow, like oauth-identity-chaining >> <https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/>or >> rfc8693 <https://datatracker.ietf.org/doc/html/rfc8693> + rfc7523 >> <https://datatracker.ietf.org/doc/html/rfc7523> together directly, that >> don't have the same constraint regarding the IDP not issuing access tokens >> in response to an ID-JAG it issued itself. Perhaps that might meet your >> needs? Although those are intended for cross domain as well. Honestly, much >> of this seems like more than is needed for a same idp / same domain case. >> >> On Tue, Feb 3, 2026 at 8:13 PM Tarun Nanduri <tarunnanduri7@gmail.com> >> wrote: >> >>> Dear Aaron, >>> >>> I am awaiting your feedback on this. To summarize, >>> >>> When an Identity Provider (IdP) does not support Single Sign-On (SSO) >>> due to the nature of the systems involved, and a user needs to transfer >>> their session to another application without re-logging in, I feel ID-JAG >>> offers a secure and seamless solution, providing a smooth user experience. >>> >>> The RFC, as stated in previous emails, explicitly prohibits using the >>> specification within the same IdP. Considering the zero-trust model >>> typically applied within the same IdP, are we open to modifying the >>> specification to allow its implementation within such environments? >>> >>> Best Regards, >>> Tarun Nanduri. >>> >>> On Fri, Dec 5, 2025 at 8:46 AM Tarun Nanduri <tarunnanduri7@gmail.com> >>> wrote: >>> >>>> Hi Aaron, >>>> >>>> Thanks for the response, and pointing me to the Identity Chaining >>>> draft. However, after looking at it, I don't think it applies to the >>>> use-case I shared above (please feel free to correct here). It looks like >>>> it's designed for cross-domain scenarios* whereas the use-case I >>>> shared above has*, >>>> >>>> - Both the clients are in same trust domain >>>> - We have single authorization server (it's the IdP too) >>>> >>>> The challenge we are trying to solve is, >>>> >>>> - Client A needs to transfer user session to client B >>>> - WITHOUT Client A sharing its access token with client B (security >>>> risk due to token exposure, invalid audience, unnecessary privileges etc.) >>>> - Both clients trust the same IdP >>>> >>>> This is why we're intending to use RFC8693, but it still requires >>>> client A to send access token (after token exchange) to client B which >>>> creates exposure we're trying to avoid. The ID-JAG pattern (cryptographic >>>> proof of identity, not a usable token) would be perfect, except the >>>> prohibition defined in section 8.3 of Identity Assertion draft: >>>> 8.3. >>>> <https://www.ietf.org/archive/id/draft-parecki-oauth-identity-assertion-authz-grant-05.html#section-8.3>Cross-Domain >>>> Use >>>> <https://www.ietf.org/archive/id/draft-parecki-oauth-identity-assertion-authz-grant-05.html#name-cross-domain-use> >>>> >>>> This specification is intended for cross-domain uses where the Client, >>>> Resource App, and Identity Provider are all in different trust domains. In >>>> particular, the Identity Provider MUST NOT issue access tokens in >>>> response to an ID-JAG it issued itself. Doing so could lead to >>>> unintentional broadening of the scope of authorization. >>>> My question remains, Can the section 8.3 prohibition be satisfied with >>>> enough security controls (scope validation, replay prevention etc.) for >>>> same IdP scenarios, or is it a hard limitation? >>>> >>>> Thanks and Regards, >>>> Tarun Nanduri. >>>> >>>> >>>> On Fri, Dec 5, 2025 at 1:53 AM Aaron Parecki <aaron@parecki.com> wrote: >>>> >>>>> Hi Tarun, >>>>> >>>>> It sounds like what you are looking for is the parent draft of this >>>>> draft, Identity and Authorization Chaining Across Domains: >>>>> https://datatracker.ietf.org/doc/draft-ietf-oauth-identity-chaining/ >>>>> >>>>> The document that defines the ID-JAG, Identity Assertion Authorization >>>>> Grant, is a special case of Identity Chaining where both the client and >>>>> resource have a pre-existing relationship with the same IdP. So I don't >>>>> view it as a limitation, it's actually an optimization when there is a >>>>> common IdP. The Identity Chaining draft is the same as this draft except it >>>>> doesn't specify the input token format or the reason why the client and >>>>> resource trust the cross-domain JWT issuer. >>>>> >>>>> Aaron >>>>> >>>>> >>>>> >>>>> On Mon, Dec 1, 2025 at 8:11 AM Tarun Nanduri <tarunnanduri7@gmail.com> >>>>> wrote: >>>>> >>>>>> Dear OAuth Working Group & Aaron, >>>>>> >>>>>> I would like to provide feedback on the OAuth Identity Assertion >>>>>> Authorization Grant (ID-JAG) specification, specifically regarding >>>>>> the prohibition against same-IdP usage. >>>>>> >>>>>> Use Case: >>>>>> >>>>>> In microservices architectures using the same IdP, there is a >>>>>> legitimate need for service-to-service identity delegation WITHOUT >>>>>> sharing access tokens directly: >>>>>> >>>>>> - Application A has a user-scoped token >>>>>> - Application A needs to invoke Application B on behalf of user >>>>>> - Sharing Token A with Application B creates security risks: >>>>>> * Token exposure between services >>>>>> * Replay attacks >>>>>> * Over-privileged access >>>>>> * Audience mismatch >>>>>> >>>>>> The Gap: >>>>>> >>>>>> ID-JAG's assertion pattern solves this perfectly: >>>>>> - Application A creates a cryptographic identity assertion >>>>>> - Assertion is audience-bound to Application B >>>>>> - Application B exchanges assertion for its own token >>>>>> - No credential sharing between services >>>>>> >>>>>> However, the same-IdP prohibition prevents this legitimate use case. >>>>>> >>>>>> Suggestion: >>>>>> >>>>>> Consider either: >>>>>> 1. Removing the same-IdP prohibition with appropriate security >>>>>> guidance >>>>>> 2. Adding an exception for service-to-service delegation scenarios >>>>>> 3. Providing guidance on how to achieve this pattern within the same >>>>>> IdP >>>>>> >>>>>> RFC 8693 (Token Exchange) doesn't fully address this use case as it >>>>>> requires sending the actual token (subject_token), which is what we're >>>>>> trying to avoid. >>>>>> >>>>>> Security Considerations: >>>>>> >>>>>> With zero-trust validation, same-IdP assertions can be just as secure >>>>>> as cross-IdP: >>>>>> - Validate assertion issuer is authorized >>>>>> - Apply fresh authorization policy evaluation >>>>>> - Enforce audience restrictions >>>>>> - Use short-lived assertions >>>>>> - Implement scope intersection, not broadening >>>>>> >>>>>> Would appreciate the working group's consideration of this use case. >>>>>> >>>>>> Best regards, >>>>>> Tarun Nanduri. >>>>>> >>>>> _______________________________________________ >>> OAuth mailing list -- oauth@ietf.org >>> To unsubscribe send an email to oauth-leave@ietf.org >>> >> >> *CONFIDENTIALITY NOTICE: This email may contain confidential and >> privileged material for the sole use of the intended recipient(s). Any >> review, use, distribution or disclosure by others is strictly prohibited. >> If you have received this communication in error, please notify the sender >> immediately by e-mail and delete the message and any file attachments from >> your computer. Thank you.*_______________________________________________ >> OAuth mailing list -- oauth@ietf.org >> To unsubscribe send an email to oauth-leave@ietf.org >> >
- [OAUTH-WG] Feedback on ID-JAG same IdP prohibitio… Tarun Nanduri
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Aaron Parecki
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Tarun Nanduri
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Tarun Nanduri
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Brian Campbell
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Pieter Kasselman
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Tarun Nanduri
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Pieter Kasselman
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Nik Kale (nikkal)
- [OAUTH-WG] Re: Feedback on ID-JAG same IdP prohib… Tarun Nanduri