Re: [OAUTH-WG] survey: token revocation design options
Justin Richer <jricher@mitre.org> Tue, 17 August 2010 13:53 UTC
Return-Path: <jricher@mitre.org>
X-Original-To: oauth@core3.amsl.com
Delivered-To: oauth@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 5A4473A687B for <oauth@core3.amsl.com>; Tue, 17 Aug 2010 06:53:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.478
X-Spam-Level:
X-Spam-Status: No, score=-6.478 tagged_above=-999 required=5 tests=[AWL=0.121, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CXcRDzH7-Z7P for <oauth@core3.amsl.com>; Tue, 17 Aug 2010 06:53:12 -0700 (PDT)
Received: from smtp-bedford.mitre.org (smtp-bedford.mitre.org [129.83.20.191]) by core3.amsl.com (Postfix) with ESMTP id 2781E3A6855 for <oauth@ietf.org>; Tue, 17 Aug 2010 06:53:12 -0700 (PDT)
Received: from smtp-bedford.mitre.org (localhost.localdomain [127.0.0.1]) by smtp-bedford.mitre.org (8.13.1/8.13.1) with ESMTP id o7HDrlFK009014 for <oauth@ietf.org>; Tue, 17 Aug 2010 09:53:47 -0400
Received: from imchub2.MITRE.ORG (imchub2.mitre.org [129.83.29.74]) by smtp-bedford.mitre.org (8.13.1/8.13.1) with ESMTP id o7HDrkjG009007; Tue, 17 Aug 2010 09:53:46 -0400
Received: from [129.83.50.65] (129.83.50.65) by imchub2.MITRE.ORG (129.83.29.74) with Microsoft SMTP Server id 8.2.254.0; Tue, 17 Aug 2010 09:53:46 -0400
From: Justin Richer <jricher@mitre.org>
To: Torsten Lodderstedt <torsten@lodderstedt.net>
In-Reply-To: <4C69A909.2060006@lodderstedt.net>
References: <4C69A909.2060006@lodderstedt.net>
Content-Type: text/plain; charset="UTF-8"
Date: Tue, 17 Aug 2010 09:53:46 -0400
Message-ID: <1282053226.12385.43.camel@localhost.localdomain>
MIME-Version: 1.0
X-Mailer: Evolution 2.28.3
Content-Transfer-Encoding: 8bit
Cc: OAuth WG <oauth@ietf.org>
Subject: Re: [OAUTH-WG] survey: token revocation design options
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: OAUTH WG <oauth.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/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: Tue, 17 Aug 2010 13:53:13 -0000
+2 ;) I don't like the use of the DELETE method, it feels too much like overloading the semantics of the HTTP definitions. And as you outline below, there are a few obstacles on it to make it really workable anyway. Another option not laid out below is a parameter on the token endpoint to suggest revocation and/or modification. However, with the new language around grant_types and the like, this makes less sense than it used to. -- Justin On Mon, 2010-08-16 at 17:09 -0400, Torsten Lodderstedt wrote: > Hi all, > > I intend to submit a I-D for token revocation. Based on previous > discussions on the mailing list and here at Deutsche Telekom, I see a > couple of design options. I would like to share those options with the > WG and try to reach consensus on a single option before investing the > time to write the I-D. > > 1) HTTP Delete on tokens endpoint > > DELETE seems a natural way for revoking (deleting) tokens. Although the > HTTP spec is a bit vaque in this concern, current practice prohibits a > body for DELETE requests. So the token must be addressed by the > request's URI. Lets assume the token is passed as URI query parameter as > follows: > > DELETE /tokens?refresh_token=8xLOxBtZp8&&&# HTTP/1.1 > Authorization: BASIC czZCaGRSa3F0Mzo4ZVNFSXBucW1N > > But is it advisable to pass tokens as URI query parameters? The current > character set definition for access tokens (§5.1.1) is not URL-safe > since it includes URI reserved characters (e.g. '/'). Additionally, > there is no definition of a refresh tokens character set. So compliant > authorization servers could issue tokens, which cannot be safely passed > as URI query parameters. > > Note: As an additional challenge, self-contained tokens can be very > large. So passing them as URI parameter may exceed URL length limits. > > I see the following alternatives to cope with the encoding problem: > > a) Force usage of a URL-safe character set for access and request tokens. > - rather restrictive, will most likely collide with existing token formats > - does not solve URL length problem > > b) Force base64-URL-safe encoding for all tokens on transit. > - does not solve URL length problem > - significant API change > > c) Authorization servers supporting revocation may additionally issue a > URL-safe token id in the access token response. This id is used to > reference the token in DELETE requests. > > HTTP/1.1 200 OK > Content-Type: application/json > Cache-Control: no-store > { > "access_token":"SlAV32hkKG/hhh/&%", > "access_token_id":"234567890", > "expires_in":3600, > "refresh_token":"8xLOxBtZp8&&&#&", > "refresh_token_id":"asdfghjklhgf" > } > > > DELETE /tokens?refresh_token_id=asdfghjklhgf HTTP/1.1 > Authorization: BASIC czZCaGRSa3F0Mzo4ZVNFSXBucW1N > > Note: Since tokens become addressable resources on the authz server, one > could also query or modify token data using a GET/PUT requests > > GET /tokens?refresh_token_id=asdfghjklhgf HTTP/1.1 > Authorization: BASIC czZCaGRSa3F0Mzo4ZVNFSXBucW1N > > HTTP/1.1 200 OK > Content-Type: application/json > Cache-Control: no-store > > { > "scope":"abc", > "issued_on":"08/11/2010", > "last_usage":"08/13/2010" > } > > > 2) HTTP Post on dedicated revocation endpoint > > An additional endpoint is used to revoke tokens. The token to be revoked > is sent as request body parameter. > > POST /revocation HTTP/1.1 > Host: server.example.com > Content-Type: application/x-www-form-urlencoded > Authorization: BASIC czZCaGRSa3F0Mzo4ZVNFSXBucW1N > > refresh_token=n4E9O119d > > This option requires some support for the client to discover the > revocation endpoint. > > Please indicate your prefered option (1a, 1b, 1c, and 2) or suggest > additional design options. > > regards, > Torsten. > _______________________________________________ > OAuth mailing list > OAuth@ietf.org > https://www.ietf.org/mailman/listinfo/oauth
- [OAUTH-WG] survey: token revocation design options Torsten Lodderstedt
- Re: [OAUTH-WG] survey: token revocation design op… Igor Faynberg
- Re: [OAUTH-WG] survey: token revocation design op… Lukas Rosenstock
- Re: [OAUTH-WG] survey: token revocation design op… Justin Richer
- Re: [OAUTH-WG] survey: token revocation design op… Torsten Lodderstedt
- Re: [OAUTH-WG] survey: token revocation design op… Torsten Lodderstedt
- Re: [OAUTH-WG] survey: token revocation design op… Igor Faynberg
- Re: [OAUTH-WG] survey: token revocation design op… Stefanie Dronia
- Re: [OAUTH-WG] survey: token revocation design op… Marius Scurtescu
- Re: [OAUTH-WG] survey: token revocation design op… Torsten Lodderstedt
- Re: [OAUTH-WG] survey: token revocation design op… Torsten Lodderstedt