Re: [OAUTH-WG] OAuth 2.0 Discovery Location

John Bradley <ve7jtb@ve7jtb.com> Fri, 26 February 2016 09:06 UTC

Return-Path: <ve7jtb@ve7jtb.com>
X-Original-To: oauth@ietfa.amsl.com
Delivered-To: oauth@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 55EDA1AD0CF for <oauth@ietfa.amsl.com>; Fri, 26 Feb 2016 01:06:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
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 D60f0xIBLQfh for <oauth@ietfa.amsl.com>; Fri, 26 Feb 2016 01:06:46 -0800 (PST)
Received: from mail-wm0-x235.google.com (mail-wm0-x235.google.com [IPv6:2a00:1450:400c:c09::235]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4859F1AD0AB for <oauth@ietf.org>; Fri, 26 Feb 2016 01:06:46 -0800 (PST)
Received: by mail-wm0-x235.google.com with SMTP id c200so63182843wme.0 for <oauth@ietf.org>; Fri, 26 Feb 2016 01:06:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ve7jtb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:subject:from:in-reply-to:date:cc:message-id:references :to; bh=V/jkfOGezoxpzMx1lcvEri7rQNncIvXum4S3XsZebyY=; b=PdrlDZgEuVE4lEFaynfevuyRSgWfdjfPRw3kdy5oqxiIk16bMdTTC5kAo0ZnnMpErj GLJiCWa8He+PPd+1Brm3nJOvP5jRZLXovTux9ntTinjbAeWguvdULLyUQfgAc4vxsw6N QalcAEwAeaqjGTq5Xve4AlOvK4L3dWpsOoYjJvuSLnJYzrgNJJOJO02J8/s/xHtpxWNZ ScC/wJ3QzYA7lJ2J8gNESmQo8IIWMWPkTAKidFT3UxvdFibYdZBUT3C9l+De3dacCJud uSoTWLQ0DaOMulXAlT+ofZquQp855+8BemwH/MyPVBrXS0Sf7Lj2e50A00wQwv/gQrVb D93w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :message-id:references:to; bh=V/jkfOGezoxpzMx1lcvEri7rQNncIvXum4S3XsZebyY=; b=XucABJ61DZ9o91juAWvjHOrk+IgP51Dvf+/2UsTaZZ2FHaiX40yLFNVXhVBQsrPUYY 6JQtJuKfVBwABPdhF4QcH/LJiXIQg0VD/k+YfFB0bgwmb03Ng++MwHOg01Y4pgjjJpyW tdvO4GaZjswt+RpSxfI//Nedg2/P8KyRqRLoQ3Ue2QYwYGGwIt5mWP+EmQmj7NwISZzh QFTSu4Xwj/EsbG3YWJIB7958TDz6gr+oJMai2lntCKtfIv4UvXvgxwwJ9JMdHwk/z8TY owwRB3SYDjRDMlI3K9+nxnb4iz+iK+cnMZcD4rSmFFbg+MmAvTxImHW1EPvoGSb+Ymjq 2sdQ==
X-Gm-Message-State: AD7BkJIizj7BdLOkhC3ivGnTyDmhIBhI7Oucajr6dsXySmhnwjcvmSiuoCQYjHvrge+Gqw==
X-Received: by 10.28.68.86 with SMTP id r83mr1961166wma.73.1456477604700; Fri, 26 Feb 2016 01:06:44 -0800 (PST)
Received: from [10.0.2.140] (cli-5b7e84b4.bcn.adamo.es. [91.126.132.180]) by smtp.gmail.com with ESMTPSA id a128sm1974416wmh.6.2016.02.26.01.06.43 (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 26 Feb 2016 01:06:43 -0800 (PST)
Content-Type: multipart/signed; boundary="Apple-Mail=_8A319E3F-0089-44FA-A357-0861B1057C70"; protocol="application/pkcs7-signature"; micalg="sha1"
Mime-Version: 1.0 (Mac OS X Mail 9.2 \(3112\))
From: John Bradley <ve7jtb@ve7jtb.com>
In-Reply-To: <AACE0FB8-FBE2-4E13-A77E-7304C383849F@gmail.com>
Date: Fri, 26 Feb 2016 10:06:42 +0100
Message-Id: <870DD5B5-2FF9-4BE0-ABA5-FB3486E4840B@ve7jtb.com>
References: <E3BDAD5F-6DE2-4FB9-AEC0-4EE2D2BF8AC8@mit.edu> <CAEayHEMspPw3pu9+ZudkMp9pBPy2YYkiXfPvFpSwqZDVyixWxQ@mail.gmail.com> <CABzCy2CpSB2Nrs-QoaEwpqtG4J8UNeAYNy1rion=mp5PQD2dmg@mail.gmail.com> <FE60D9CC-0457-4BDB-BCF1-461B30BF0CDE@oracle.com> <56CE01B1.7060501@aol.com> <255B9BB34FB7D647A506DC292726F6E13BBB0194A6@WSMSG3153V.srv.dir.telstra.com> <56CEABBD.1040602@connect2id.com> <56CF1CEB.8030603@aol.com> <56CF1D79.1070507@aol.com> <255B9BB34FB7D647A506DC292726F6E13BBB019D97@WSMSG3153V.srv.dir.telstra.com> <CABzCy2CaCM_rS7eU2-WO+kUKXQC6ctYwrAHfytNmHh1C3GpQxQ@mail.gmail.com> <AACE0FB8-FBE2-4E13-A77E-7304C383849F@gmail.com>
To: nov matake <matake@gmail.com>
X-Mailer: Apple Mail (2.3112)
Archived-At: <http://mailarchive.ietf.org/arch/msg/oauth/upeSGEca_LVfbWBWrKZIu8y1RIg>
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] OAuth 2.0 Discovery Location
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.15
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: Fri, 26 Feb 2016 09:06:50 -0000

A given AS may be supporting different protocols and or scopes with different privileges.

Those would need to be mapped into where the token can be used. 

If we try to use audience only to stop cross RS replay it will in my opinion become hopelessly complex.

I think the only secure and practical solution is likely asymmetric POP.    That only requires the RS to trust the AS.   The AS doesn’t need to know the RS if it is using JWT access tokens.

I am skeptical that this can be solved by meta-data alone.

John B.
> On Feb 26, 2016, at 6:52 AM, nov matake <matake@gmail.com> wrote:
> 
> It sounds like we want to return a list of available access tokens “aud” values from AS config discovery endpoint (and also via oauth-meta too?), doesn’t it?
> 
> and RS config discovery endpoint will return acceptable access token “iss” values, a list of every RS endpoints, required scopes per endpoint etc.
> (it would be another thread though)
> 
> Thanks,
> Nov
> 
>> On Feb 26, 2016, at 13:08, Nat Sakimura <sakimura@gmail.com <mailto:sakimura@gmail.com>> wrote:
>> 
>> I will include the origin in the next rev. 
>> 
>> For http header v.s JSON, shall I bring the JSON back in? 
>> 2016年2月26日(金) 13:05 Manger, James <James.H.Manger@team.telstra.com <mailto:James.H.Manger@team.telstra.com>>:
>> You are right, George, that making the AS track /v2/… or /v3/… in RS paths is likely to be brittle — but tracking RS web origins is not too onerous.
>> 
>>  
>> 
>> PoP has some nice security advantages over bearer tokens or passwords. However, it should still be possible to use the latter fairly safely — but it does require the issuer of credentials to indicate where they can be used.
>> 
>>  
>> 
>> --
>> 
>> James Manger
>> 
>>  
>> 
>>  
>> 
>>  
>> 
>> From: OAuth [mailto:oauth-bounces@ietf.org <mailto:oauth-bounces@ietf.org>] On Behalf Of George Fletcher
>> Sent: Friday, 26 February 2016 2:28 AM
>> To: Vladimir Dzhuvinov <vladimir@connect2id.com <mailto:vladimir@connect2id.com>>; oauth@ietf.org <mailto:oauth@ietf.org>
>> 
>> Subject: Re: [OAUTH-WG] OAuth 2.0 Discovery Location
>> 
>>  
>> 
>> That said, I'm not against the AS informing the client that the token can be used at the MailResource, ContactResource and MessagingResource to help the client know not to send the token to a BlogResource. However, identifying the actual endpoint seems overly complex when what is really trying to be protected is a token from being used where it shouldn't be (which is solved by Pop)
>> 
>> Thanks,
>> George
>> 
>> On 2/25/16 10:25 AM, George Fletcher wrote:
>> 
>> Interesting... this is not at all my current experience:) If a RS goes from v2 of it's API to v3 and that RS uses the current standard of putting a "v2" or"v3" in it's API path... then a token issued for v2 of the API can not be sent to v3 of the API, because v3 wasn't wasn't registered/deployed when the token was issued. 
>> 
>> The constant management of scopes to URI endpoints seems like a complexity that will quickly get out of hand.
>> 
>> Thanks,
>> George
>> 
>> On 2/25/16 2:22 AM, Vladimir Dzhuvinov wrote:
>> 
>>  
>> 
>> On 25/02/16 09:02, Manger, James wrote:
>> 
>> I'm concerned that forcing the AS to know about all RS's endpoints that will accept it's tokens creates a very brittle deployment architecture
>> The AS is issuing temporary credentials (access_tokens) to clients but doesn’t know where those credentials will work? That’s broken.
>>  
>> An AS should absolutely indicate where an access_token can be used. draft-sakimura-oauth-meta suggests indicating this with 1 or more “ruri” (resource URI) values in an HTTP Link header. A better approach would be including a list of web origins in the token response beside the access_token field.
>> +1 
>> 
>> This will appear more consistent with the current experience, and OAuth does allow the token response JSON object to be extended with additional members (as it's done in OpenID Connect already).
>> 
>> Cheers,
>> Vladimir
>> 
>> 
>> 
>> --
>> James Manger
>>  
>> From: OAuth [mailto:oauth-bounces@ietf.org <mailto:oauth-bounces@ietf.org>] On Behalf Of George Fletcher
>> Sent: Thursday, 25 February 2016 6:17 AM
>> To: Phil Hunt <phil.hunt@oracle.com> <mailto:phil.hunt@oracle.com>; Nat Sakimura <sakimura@gmail.com> <mailto:sakimura@gmail.com>
>> Cc: <oauth@ietf.org> <mailto:oauth@ietf.org> <oauth@ietf.org> <mailto:oauth@ietf.org>
>> Subject: Re: [OAUTH-WG] OAuth 2.0 Discovery Location
>>  
>> I'm concerned that forcing the AS to know about all RS's endpoints that will accept it's tokens creates a very brittle deployment architecture. What if a RS moves to a new endpoint? All clients would be required to get new tokens (if I understand correctly). And the RS move would have to coordinate with the AS to make sure all the timing is perfect in the switch over of endpoints.
>>  
>> I suspect a common deployment architecture today is that each RS requires one or more scopes to access it's resources. The client then asks the user to authorize a token with a requested list of scopes. The client can then send the token to the appropriate RS endpoint. The RS will not authorize access unless the token has the required scopes.
>>  
>> If the concern is that the client may accidentally send the token to a "bad" RS which will then replay the token, then I'd rather use a PoP mechanism because the point is that you want to ensure the correct client is presenting the token. Trying to ensure the client doesn't send the token to the wrong endpoint seems fraught with problems.
>>  
>> Thanks,
>> George
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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>
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> 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>
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org <mailto:OAuth@ietf.org>
>> https://www.ietf.org/mailman/listinfo/oauth
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth