Re: [OAUTH-WG] redircet_uri matching algorithm

Antonio Sanso <asanso@adobe.com> Thu, 21 May 2015 07:41 UTC

Return-Path: <asanso@adobe.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 700F71A6F05 for <oauth@ietfa.amsl.com>; Thu, 21 May 2015 00:41:34 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.902
X-Spam-Level:
X-Spam-Status: No, score=-1.902 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-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 c7sat-xSwwf0 for <oauth@ietfa.amsl.com>; Thu, 21 May 2015 00:41:31 -0700 (PDT)
Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0075.outbound.protection.outlook.com [65.55.169.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7FBDA1A6EF4 for <oauth@ietf.org>; Thu, 21 May 2015 00:41:31 -0700 (PDT)
Received: from BY1PR0201MB1030.namprd02.prod.outlook.com (25.161.203.148) by BY1PR0201MB1029.namprd02.prod.outlook.com (25.161.203.147) with Microsoft SMTP Server (TLS) id 15.1.166.22; Thu, 21 May 2015 07:41:29 +0000
Received: from BY1PR0201MB1030.namprd02.prod.outlook.com ([25.161.203.148]) by BY1PR0201MB1030.namprd02.prod.outlook.com ([25.161.203.148]) with mapi id 15.01.0166.017; Thu, 21 May 2015 07:41:29 +0000
From: Antonio Sanso <asanso@adobe.com>
To: John Bradley <ve7jtb@ve7jtb.com>
Thread-Topic: [OAUTH-WG] redircet_uri matching algorithm
Thread-Index: AQHQkxZIC64/7LlpzE6fDYtDbYo7452Ft1+AgABZ6YA=
Date: Thu, 21 May 2015 07:41:28 +0000
Message-ID: <C92B190E-A25F-4552-8768-DD43C9F0D0C7@adobe.com>
References: <46886BA8-B8E1-494F-9F5D-4DB6AE0BEB99@paroga.com> <12863D78-C7CC-4E71-B4F6-09556B8E4F2B@ve7jtb.com>
In-Reply-To: <12863D78-C7CC-4E71-B4F6-09556B8E4F2B@ve7jtb.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=asanso@adobe.com;
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [192.147.117.11]
x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR0201MB1029;
x-microsoft-antispam-prvs: <BY1PR0201MB102943E49EB2DF462A5414B1D9C10@BY1PR0201MB1029.namprd02.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BY1PR0201MB1029; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0201MB1029;
x-forefront-prvs: 0583A86C08
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(377454003)(189002)(199003)(51704005)(24454002)(5001860100001)(189998001)(5001830100001)(110136002)(5001960100002)(106356001)(33656002)(106116001)(19580395003)(19580405001)(36756003)(62966003)(77156002)(82746002)(15395725005)(2950100001)(2900100001)(122556002)(50986999)(64706001)(54356999)(101416001)(76176999)(86362001)(83716003)(2656002)(66066001)(87936001)(15975445007)(40100003)(4001540100001)(1720100001)(68736005)(97736004)(92566002)(81156007)(102836002)(46102003)(105586002)(99286002)(104396002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0201MB1029; H:BY1PR0201MB1030.namprd02.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en;
received-spf: None (protection.outlook.com: adobe.com does not designate permitted sender hosts)
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <9C2F1AA57D1B784299B3A6D0720D5EB1@namprd02.prod.outlook.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: adobe.com
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 May 2015 07:41:28.3815 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: fa7b1b5a-7b34-4387-94ae-d2c178decee1
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0201MB1029
Archived-At: <http://mailarchive.ietf.org/arch/msg/oauth/PRRrKHiyfNRhXGT5asSD9Osz474>
Cc: "oauth@ietf.org" <oauth@ietf.org>
Subject: Re: [OAUTH-WG] redircet_uri matching algorithm
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: <http://www.ietf.org/mail-archive/web/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: Thu, 21 May 2015 07:41:34 -0000

On May 21, 2015, at 4:35 AM, John Bradley <ve7jtb@ve7jtb.com> wrote:

> I think the correct answer is that clients should always assume exact redirect_uri matching, and servers should always enforce it.  
> 
> Anything else is asking for trouble.

FWIW I completely agree with John here…

regards

antonio


> 
> If clients need to maintain some state the correct thing to do is use the state parameter, and not append extra path or query elements to there redirect_uri.
> 
> A significant number of security problems in the wild come from servers not enforcing this.
> 
> I may be taking an excessively hard line, but partial matching is not something we should be encouraging by making easier.
> 
> I did do a draft on a way to safely use state https://tools.ietf.org/id/draft-bradley-oauth-jwt-encoded-state-04.txt
> 
> John B.
> 
> 
>> On May 16, 2015, at 4:43 AM, Patrick Gansterer <paroga@paroga.com> wrote:
>> 
>> "OAuth 2.0 Dynamic Client Registration Protocol” [1] is nearly finished and provides the possibility to register additional “Client Metadata”.
>> 
>> OAuth 2.0 does not define any matching algorithm for the redirect_uris. The latest information on that topic I could find is [1], which is 5 years old. Is there any more recent discussion about it?
>> 
>> I’d suggest to add an OPTIONAL “redirect_uris_matching_method” client metadata. Possible valid values could be:
>> * “exact”: The “redirect_uri" provided in a redirect-based flow must match exactly one of of the provided strings in the “redirect_uris” array.
>> * “prefix”: The "redirect_uri" must begin with one of the “redirect_uris”. (e.g. "http://example.com/path/subpath” would be valid with [“http://example.com/path/“, “http://example.com/otherpath/”])
>> * “regex”: The provided “redirect_uris” are threatened as regular expressions, which the “redirect_uri” will be matched against. (e.g. “http://subdomain.example.com/path5/“ would be valid with [“^http:\\/\\/[a-z]+\\.example\\.com\\/path\\d+\\/“]
>> 
>> If not defined the server can choose any supported method, so we do not break existing implementations. On the other side it allows an client to make sure that a server supports a specific matching algorithm required by the client. ATM a client has no possibility to know how a server handles the redirect_uris.
>> 
>> [1] http://tools.ietf.org/html/draft-ietf-oauth-dyn-reg-29
>> [2] http://www.ietf.org/mail-archive/web/oauth/current/msg02617.html
>> 
>> --
>> Patrick Gansterer
>> 
>> _______________________________________________
>> OAuth mailing list
>> OAuth@ietf.org
>> https://www.ietf.org/mailman/listinfo/oauth
> 
> _______________________________________________
> OAuth mailing list
> OAuth@ietf.org
> https://www.ietf.org/mailman/listinfo/oauth