[OAUTH-WG] Registration: Client secret rotation

Justin Richer <jricher@mitre.org> Mon, 11 February 2013 21:15 UTC

Return-Path: <jricher@mitre.org>
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 C4C3D21F8AAD for <oauth@ietfa.amsl.com>; Mon, 11 Feb 2013 13:15:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.573
X-Spam-Level:
X-Spam-Status: No, score=-6.573 tagged_above=-999 required=5 tests=[AWL=0.026, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gKzBvbaQ80AL for <oauth@ietfa.amsl.com>; Mon, 11 Feb 2013 13:15:22 -0800 (PST)
Received: from smtpksrv1.mitre.org (smtpksrv1.mitre.org [198.49.146.77]) by ietfa.amsl.com (Postfix) with ESMTP id 4A13E21F890D for <oauth@ietf.org>; Mon, 11 Feb 2013 13:15:22 -0800 (PST)
Received: from smtpksrv1.mitre.org (localhost.localdomain [127.0.0.1]) by localhost (Postfix) with SMTP id D75E91F1418 for <oauth@ietf.org>; Mon, 11 Feb 2013 16:15:21 -0500 (EST)
Received: from IMCCAS02.MITRE.ORG (imccas02.mitre.org [129.83.29.79]) by smtpksrv1.mitre.org (Postfix) with ESMTP id AD42C1F0785 for <oauth@ietf.org>; Mon, 11 Feb 2013 16:15:21 -0500 (EST)
Received: from [10.146.15.29] (129.83.31.58) by IMCCAS02.MITRE.ORG (129.83.29.79) with Microsoft SMTP Server (TLS) id 14.2.318.4; Mon, 11 Feb 2013 16:15:21 -0500
Message-ID: <51195F3F.7000704@mitre.org>
Date: Mon, 11 Feb 2013 16:14:39 -0500
From: Justin Richer <jricher@mitre.org>
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:17.0) Gecko/20130106 Thunderbird/17.0.2
MIME-Version: 1.0
To: "oauth@ietf.org" <oauth@ietf.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-Originating-IP: [129.83.31.58]
Subject: [OAUTH-WG] Registration: Client secret rotation
X-BeenThere: oauth@ietf.org
X-Mailman-Version: 2.1.12
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: Mon, 11 Feb 2013 21:15:22 -0000

Draft -05 of OAuth Dynamic Client Registration [1] defines a means of 
the client requesting a new client_secret (if applicable) and a new 
registration_access_token. Client secrets MAY expire after some period 
of time, and this method allows for a refresh of that secret. Draft -00 
defined no such operation, drafts -01 through -04 defined this operation 
in terms of the operation=rotate_secret parameter, and draft -05 defines 
it through a secondary endpoint, the Client Secret Rotation Endpoint. 
This raises several questions:

  - Should the client be allowed to request rotation of its secret?
  - Would a client ever take this action of its own accord?
  - Can a server rotate the secret of the client without the client 
asking? (This seems to be an obvious "yes")

Alternatives that keep this functionality include defining the 
rotate_secret operation in terms of an HTTP verb, a query parameter, or 
separate endpoint. Alternatively, we could drop the rotate_secret 
operation all together. If we do this, we have to decide if the client 
secret can still expire. If it can, then we need a way for the client to 
get this new secret through a means that doesn't require it to request a 
change in secret, such as sending it back as part of the client READ 
operation (see other thread on RESTful verbs).

  -- Justin


[1] http://tools.ietf.org/html/draft-ietf-oauth-dyn-reg-05