Re: [woes] [OAUTH-WG] JSON Web Token (JWT) Draft -04

Mike Jones <Michael.Jones@microsoft.com> Tue, 05 April 2011 17:54 UTC

Return-Path: <Michael.Jones@microsoft.com>
X-Original-To: woes@core3.amsl.com
Delivered-To: woes@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 73F1228C13C; Tue, 5 Apr 2011 10:54:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -10.284
X-Spam-Level:
X-Spam-Status: No, score=-10.284 tagged_above=-999 required=5 tests=[AWL=-0.286, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_33=0.6, RCVD_IN_DNSWL_HI=-8]
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 sDPP9jpaZ34w; Tue, 5 Apr 2011 10:54:13 -0700 (PDT)
Received: from smtp.microsoft.com (mailb.microsoft.com [131.107.115.215]) by core3.amsl.com (Postfix) with ESMTP id 0B3BC28C136; Tue, 5 Apr 2011 10:54:12 -0700 (PDT)
Received: from TK5EX14MLTC102.redmond.corp.microsoft.com (157.54.79.180) by TK5-EXGWY-E802.partners.extranet.microsoft.com (10.251.56.168) with Microsoft SMTP Server (TLS) id 8.2.176.0; Tue, 5 Apr 2011 10:55:55 -0700
Received: from TK5EX14MBXC203.redmond.corp.microsoft.com ([169.254.3.38]) by TK5EX14MLTC102.redmond.corp.microsoft.com ([157.54.79.180]) with mapi id 14.01.0270.002; Tue, 5 Apr 2011 10:55:55 -0700
From: Mike Jones <Michael.Jones@microsoft.com>
To: Bob Gregory <pathogenix@gmail.com>
Thread-Topic: [OAUTH-WG] JSON Web Token (JWT) Draft -04
Thread-Index: AcvuuIVAmFKf4FToR3mJsYxJZdQlsgAckiCAAA6ifnABIFFvAAALoptQ
Date: Tue, 05 Apr 2011 17:55:55 +0000
Message-ID: <4E1F6AAD24975D4BA5B1680429673943252CCB0C@TK5EX14MBXC203.redmond.corp.microsoft.com>
References: <4E1F6AAD24975D4BA5B1680429673943252B2BB6@TK5EX14MBXC203.redmond.corp.microsoft.com> <AANLkTi=pYrucDVi+7z1RQ_A243ZXCpQzYonGLSw-MAXL@mail.gmail.com> <4E1F6AAD24975D4BA5B1680429673943252BA221@TK5EX14MBXC203.redmond.corp.microsoft.com> <BANLkTi=oUbvtGvheBXGNWMPAd7eDO-G8xg@mail.gmail.com>
In-Reply-To: <BANLkTi=oUbvtGvheBXGNWMPAd7eDO-G8xg@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [157.54.51.72]
Content-Type: multipart/alternative; boundary="_000_4E1F6AAD24975D4BA5B1680429673943252CCB0CTK5EX14MBXC203r_"
MIME-Version: 1.0
Cc: "openid-specs-ab@lists.openid.net" <openid-specs-ab@lists.openid.net>, "woes@ietf.org" <woes@ietf.org>, "oauth@ietf.org" <oauth@ietf.org>, "openid-specs@lists.openid.net" <openid-specs@lists.openid.net>
Subject: Re: [woes] [OAUTH-WG] JSON Web Token (JWT) Draft -04
X-BeenThere: woes@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "Web Object Encryption and Signing \(woes\) BOF discussion list" <woes.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/woes>, <mailto:woes-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/woes>
List-Post: <mailto:woes@ietf.org>
List-Help: <mailto:woes-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/woes>, <mailto:woes-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 05 Apr 2011 17:54:25 -0000

Thanks for the candid feedback, Bob.  I agree that the specs can be more clearly delineated and I'll make that an editorial goal in the next round of revisions.  In particular, I agree that a non-JWT example should be added to the JWS spec.

I intentionally kept complete JWT examples in the JWT spec, including examples of the actual signing computations, so that people can verify that their JWT implementations are compatible with these values.  But I'd be open to input on how complete these examples should be, versus those in the JWS spec (which describe all the signing steps in full detail, unlike the JWT draft).

                                                                -- Mike

From: Bob Gregory [mailto:pathogenix@gmail.com]
Sent: Tuesday, April 05, 2011 9:10 AM
To: Mike Jones
Cc: woes@ietf.org; oauth@ietf.org; openid-specs-ab@lists.openid.net; openid-specs@lists.openid.net
Subject: Re: [OAUTH-WG] JSON Web Token (JWT) Draft -04

Hi Mike,

I'm going to start implementing draft 4 in the near future. At a cursory reading, I'm concerned that splitting the specifications has not simplified the language, rather it has confused the specification, and introduced generalisation where there were formerly simple, specific cases.

If the long-term intent is that JWS and JWE should form composable operations for signing and encrypting content, while JWT specifies a payload format, then the specifications should be more clearly delineated. The current JWT draft makes repeated references to headers and signatures, and includes an appendix entry giving examples of signing. If JWS is the specification for signing, then the JWT draft should drop these sections.

JWT then becomes a teeny-weeny specification consisting of an overview, a table for reserved claim names, the rules for verifying those claims, and some notes on creating custom claims.

Likewise, if JWS is intended to be a general mechanism for signing messages, it would be preferable to see examples in the JWS spec which do not refer to the JWT spec. Simple strings, or base64 encoded binary would make better examples for JWS, without coupling the two specifications together.

As it stands, it's impossible to implement JWT without continual cross-reference. It's much harder to gain a sense of how an implementation ought to hang together than it used to be.

It's still possible for Jwt4net to be a compliant implementation of JWT without supporting a generalised JWS implementation, but checking compliance is going to be much harder. I think the next steps for the library, once I've fixed a couple of glaring holes, will be to refactor out a full JWS implementation, and treat JWT as a special case, but that adds accidental complexity to what was a relatively simple library (barring my own over-complication through stupidity).

I'm still a big fan of JWT as a standard, but I think the current spec language is a step backwards for implementation.

 -- Bob Gregory

On Wed, Mar 30, 2011 at 4:37 PM, Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>> wrote:
Thanks, Bob.  That's great to hear!

I look forward to your feedback on the spec based upon your actual use.

                                                            -- Mike

From: Bob Gregory [mailto:pathogenix@gmail.com<mailto:pathogenix@gmail.com>]
Sent: Wednesday, March 30, 2011 8:36 AM
To: Mike Jones
Cc: woes@ietf.org<mailto:woes@ietf.org>; oauth@ietf.org<mailto:oauth@ietf.org>; openid-specs-ab@lists.openid.net<mailto:openid-specs-ab@lists.openid.net>; openid-specs@lists.openid.net<mailto:openid-specs@lists.openid.net>

Subject: Re: [OAUTH-WG] JSON Web Token (JWT) Draft -04

I've just uploaded a .Net implementation of JWT issuance and consumption to GitHub @ https://github.com/BobFromHuddle/Jwt4Net

This is no way ready for public release, but is in use in a production system. It's based on draft 1, and I'll try and update it to draft 4 compliance next week.

We're intending to provide full coverage of  the JWT spec as it matures, the major block for us at the moment is the lack of a specification for the "jku" key encoding scheme. Until that's decided, we're using .Net's default serialization of private keys which is based on RFC 4050.

 -- Bob Gregory

On Wed, Mar 30, 2011 at 9:57 AM, Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>> wrote:
Draft -04 of the JSON Web Token (JWT)<http://self-issued.info/docs/draft-jones-json-web-token.html> specification is available.  It corrects a typo found by John Bradley in -03.

The draft is available at these locations:

*        http://www.ietf.org/internet-drafts/draft-jones-json-web-token-04.txt

*        http://www.ietf.org/internet-drafts/draft-jones-json-web-token-04.xml

*        http://self-issued.info/docs/draft-jones-json-web-token-04.html

*        http://self-issued.info/docs/draft-jones-json-web-token-04.txt

*        http://self-issued.info/docs/draft-jones-json-web-token-04.xml

*        http://self-issued.info/docs/draft-jones-json-web-token.html (will point to new versions as they are posted)

*        http://self-issued.info/docs/draft-jones-json-web-token.txt (will point to new versions as they are posted)

*        http://self-issued.info/docs/draft-jones-json-web-token.xml (will point to new versions as they are posted)

*        http://svn.openid.net/repos/specifications/json_web_token/1.0/ (Subversion repository, with html, txt, and html versions available)

                                                            -- Mike




--
An infinite number of mathematicians walk into a bar. The first one orders a beer. The second orders half a beer. The third, a quarter of a beer. The bartender says "You're all idiots", and pours two beers.



--
An infinite number of mathematicians walk into a bar. The first one orders a beer. The second orders half a beer. The third, a quarter of a beer. The bartender says "You're all idiots", and pours two beers.