Re: [OAUTH-WG] [token-exchange] exchanging between issuers/domains
Bill Burke <bburke@redhat.com> Sat, 29 July 2017 14:46 UTC
Return-Path: <bburke@redhat.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 09C81126E3A for <oauth@ietfa.amsl.com>; Sat, 29 Jul 2017 07:46:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.021
X-Spam-Level:
X-Spam-Status: No, score=-5.021 tagged_above=-999 required=5 tests=[HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 8uY8WsPZrQUY for <oauth@ietfa.amsl.com>; Sat, 29 Jul 2017 07:46:24 -0700 (PDT)
Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 75CA2126C7A for <oauth@ietf.org>; Sat, 29 Jul 2017 07:46:24 -0700 (PDT)
Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id EFC9BC11B93C; Sat, 29 Jul 2017 14:46:23 +0000 (UTC)
DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com EFC9BC11B93C
Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com
Authentication-Results: ext-mx07.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=bburke@redhat.com
Received: from ovpn-116-148.phx2.redhat.com (ovpn-116-148.phx2.redhat.com [10.3.116.148]) by smtp.corp.redhat.com (Postfix) with ESMTP id 742195C8AB; Sat, 29 Jul 2017 14:46:23 +0000 (UTC)
To: Brian Campbell <bcampbell@pingidentity.com>
Cc: oauth <oauth@ietf.org>
References: <1b5f403e-aa93-3cfe-ab39-a471cf864e5d@redhat.com> <46fff444-9107-7a43-1854-88c92aaccd90@redhat.com> <CA+k3eCQCKtBct-iqxJCscad3rkUDUyx-MDbGa0Ysb995wX2BUA@mail.gmail.com> <fa2e98ad-cb95-a142-7989-4bfd422de06b@redhat.com> <CA+k3eCTzTO54xvekYoY=TkL4dxYupg+C6-K9dsduqCS9NLspdg@mail.gmail.com>
From: Bill Burke <bburke@redhat.com>
Message-ID: <dafbf97e-1bf5-6314-85aa-58d4f4f6eab8@redhat.com>
Date: Sat, 29 Jul 2017 10:46:22 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0) Gecko/20100101 Thunderbird/52.2.1
MIME-Version: 1.0
In-Reply-To: <CA+k3eCTzTO54xvekYoY=TkL4dxYupg+C6-K9dsduqCS9NLspdg@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------FD89C76AA63C9F7EBD3F0522"
Content-Language: en-US
X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16
X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.31]); Sat, 29 Jul 2017 14:46:24 +0000 (UTC)
Archived-At: <https://mailarchive.ietf.org/arch/msg/oauth/IQJL82EWoJmZiAIgvu4-5HoY85w>
Subject: Re: [OAUTH-WG] [token-exchange] exchanging between issuers/domains
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/oauth>, <mailto:oauth-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/oauth/>
List-Post: <mailto:oauth@ietf.org>
List-Help: <mailto:oauth-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/oauth>, <mailto:oauth-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 29 Jul 2017 14:46:27 -0000
So, you're saying the STS has to define a subject_type for each external token the client wants to exchange from? A type that is potentially proprietary and different between each and every STS? On the opposite end, when you want to convert to an external token, the STS either has 3 options for the client to specify that it wants an external token. 1) a proprietary response type, 2) a proprietary resource scheme, 3) a proprietary audience scheme. Don't you think at minimum, the token-exchange spec should define a standard way to do OAuth to OAuth cross-domain exchanges? Right now cross-domain exchanges are proprietary and completely up to the target STS on how it wants the client to formulate a cross-domain exchange. I still think a "subject_issuer" and "requested_issuer" are the clearest and simplest way to enable such an interaction. On 7/28/17 6:28 PM, Brian Campbell wrote: > The urn:ietf:params:oauth:token-type:access_token type is an > "indicator that the token is a typical OAuth access token issued by > the authorization server in question" (see near the end of section 3 > <https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-09#section-3>) > so the issuer is the given STS in that case. Cross domain is possible > by use of other token types that are not opaque to the STS where the > issuer can be inferred from the token. > > On Fri, Jul 28, 2017 at 3:27 PM, Bill Burke <bburke@redhat.com > <mailto:bburke@redhat.com>> wrote: > > Thanks for replying, > > The Introduction of the spec implies that inter-security-domain > exchange is supported: " > > A Security Token Service (STS) is a service capable of validating and > issuing security tokens, which enables clients to obtain appropriate > access credentials for resources in heterogeneous environments or > across security domains. > " > > But with the current API if you want to exchange an external token to an internal one, there is no way for the STS to identify where the subject_token originated. Are you saying that an STS cannot accept tokens from an external domain? > > i.e > > subject_token: <opaque-string> > > subject_token_type: urn:ietf:params:oauth:token-type:access-token > > There's just no way for the STS to know where the subject_token > came from because the subject_token can be completely opaque. > > Now, on the flip side, if you are converting from an internal > token to an external one, the audience parameter is just too > undefined. For example, how could you specify that you want a > token for an external client of an external issuer. Client ids > are opaque in OAuth, and issuer id isn't even something that is > defined at all. In OpenID connect, an issuer id can be any URL. > > IMO, adding optional "subject_token_issuer" and "requested_issuer" > parameters only clarifies and simplifies the cross-domain case. > If you don't like "issuer" maybe "domain" is a better word? > > Thanks for replying, > > Bill > > > > > > On 7/28/17 4:39 PM, Brian Campbell wrote: >> In general, an instance of an AS/STS can only issue tokens from >> itself. The audience/resource parameters tell the AS/STS where >> the requested token will be used, which will influence the >> audience of the token (and maybe other aspects). But the issuer >> of the requested token will be the AS/STS that issued it. A cross >> domain exchange could happen by a client presenting a >> subject_token from a different domain/issuer (that the AS/STS >> trusts) and receiving a token issued by that AS/STS suitable for >> the target domain. >> >> >> >> On Fri, Jul 28, 2017 at 9:06 AM, Bill Burke <bburke@redhat.com >> <mailto:bburke@redhat.com>> wrote: >> >> Should probably have a "subject_issuer" and "actor_issuer" as >> well as the "requested_issuer" too. >> >> FYI, I'm actually applying this spec to write a token >> exchange service to connect various product stacks that have >> different and often proprietary token formats and architectures. >> >> >> >> On 7/26/17 6:44 PM, Bill Burke wrote: >> >> Hi all, >> >> I'm looking at Draft 9 of the token-exchange spec. How >> would one build a request to: >> >> * exchange a token issued by a different domain to a >> client managed by the authorization server. >> >> * exchange a token issued by the authorization server >> (the STS) for a token of a different issuer and different >> client. In other words, for a token targeted to a >> specific client in a different authorization server or >> realm or domain or whatever you want to call it. >> >> * exchange a token issued by a different issuer for a >> token of a different issuer and client. >> >> Is the spec missing something like a "requested_issuer" >> identifier? Seems that audience is too opaque of a >> parameter for the authz server to determine how to >> exchange the token. >> >> Thanks, >> >> Bill >> >> >> >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org <mailto:OAuth@ietf.org> >> https://www.ietf.org/mailman/listinfo/oauth >> <https://www.ietf.org/mailman/listinfo/oauth> >> >> >> _______________________________________________ >> OAuth mailing list >> OAuth@ietf.org <mailto:OAuth@ietf.org> >> https://www.ietf.org/mailman/listinfo/oauth >> <https://www.ietf.org/mailman/listinfo/oauth> >> >> >> >> /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./ > > > > /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-WG] [token-exchange] exchanging between is… Bill Burke
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Bill Burke
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Brian Campbell
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Bill Burke
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Brian Campbell
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Bill Burke
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Brian Campbell
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Denis
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Brian Campbell
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Phil Hunt
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Denis
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Denis
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Brian Campbell
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Phil Hunt
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Denis
- Re: [OAUTH-WG] [token-exchange] exchanging betwee… Benjamin Kaduk