Re: [OAUTH-WG] OAuth Milestone Update and Rechartering

Anthony Nadalin <> Thu, 15 May 2014 05:31 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id EBC561A03D8 for <>; Wed, 14 May 2014 22:31:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id OE5QTTEznz_c for <>; Wed, 14 May 2014 22:31:05 -0700 (PDT)
Received: from ( []) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id EB2BB1A03D3 for <>; Wed, 14 May 2014 22:31:04 -0700 (PDT)
Received: from ( by ( with Microsoft SMTP Server (TLS) id 15.0.949.11; Thu, 15 May 2014 05:30:56 +0000
Received: from ([]) by ([]) with mapi id 15.00.0949.001; Thu, 15 May 2014 05:30:56 +0000
From: Anthony Nadalin <>
To: Justin Richer <jricher@MIT.EDU>, Phil Hunt <>
Thread-Topic: [OAUTH-WG] OAuth Milestone Update and Rechartering
Date: Thu, 15 May 2014 05:30:55 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <>,<>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
x-originating-ip: []
x-forefront-prvs: 0212BDE3BE
x-forefront-antispam-report: SFV:NSPM; SFS:(428001)(52314003)(199002)(189002)(479174003)(377454003)(53754006)(24454002)(57704003)(83072002)(21056001)(19273905006)(86362001)(86612001)(76576001)(101416001)(92566001)(74316001)(85852003)(31966008)(2171001)(74662001)(19618635001)(19580395003)(2656002)(74502001)(77982001)(19580405001)(15198665003)(87936001)(81542001)(18206015023)(81342001)(15975445006)(15202345003)(16297215004)(79102001)(19617315010)(77096999)(54356999)(83322001)(16601075003)(50986999)(76176999)(33646001)(76482001)(99286001)(15395725003)(64706001)(80022001)(46102001)(4396001)(66066001)(16236675002)(20776003)(42262001)(24736002)(9984715005); DIR:OUT; SFP:; SCL:1; SRVR:BLUPR03MB311;; FPR:; MLV:sfv; PTR:InfoNoRecords; A:1; MX:1; LANG:en;
received-spf: None (: does not designate permitted sender hosts)
authentication-results: spf=none (sender IP is );
Content-Type: multipart/alternative; boundary="_000_f12568197c4c408eb136327cf20e01dfBLUPR03MB309namprd03pro_"
MIME-Version: 1.0
Cc: OAuth WG <>
Subject: Re: [OAUTH-WG] OAuth Milestone Update and Rechartering
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: OAUTH WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 15 May 2014 05:31:10 -0000

Very odd since you took the registration from connect and pushed it OAuth.

Sent from my Windows Phone
From: Justin Richer<mailto:jricher@MIT.EDU>
Sent: ‎5/‎15/‎2014 3:58 AM
To: Phil Hunt<>
Cc: OAuth WG<>
Subject: Re: [OAUTH-WG] OAuth Milestone Update and Rechartering

Right, so instead of being able to use my authorization endpoint, which already authenticates the user and can gather consent, I need to implement a new endpoint that's not-quite-OAuth but is almost like it. But it's enough to be confusing because sometimes I go to this new endpoint endpoint and also get an access token anyway, to use somewhere that I'm not sure where. And I'm not sure I can collapse the two endpoints and re-use my OAuth infrastructure. After all, I still need to use the token endpoint, and by that point my server needs to know which endpoint the user went to in the first place to make that switch. As a developer, this all sounds horribly convoluted and complicated to track. Do I get to re-use any of the components from an authorization endpoint? How do I know whether or not to issue the access token if the user goes to the authentication endpoint? And then there are the optimizations for existing well-known and well-understood use cases: what if my client is sitting in the same browser session and just wants to get the user assertion directly instead of going through a round trip? Do I need to make two round trips if I'm getting a protected API at the same time as authn data? Can I use the same response_type functionality and other extensions on the authentication endpoint?

In the end, the a4c draft isn't OAuth, it's only OAuth-like, which is dangerous and confusing and not something I think the OAuth WG should be a part of. And I really just don't see the point of it, unless the goal is to pollute the standards space which Connect currently occupies. Is Connect perfect? Heck no. But it's far and away the best thing we've had in a long time, and it already does every single thing you are asking for from this new draft.

 -- Justin

On 5/14/2014 9:43 PM, Phil Hunt wrote:
Sorry I meant to say this is why it has the /authenticate endpoint to indicate the client only wants the users session information.



On May 14, 2014, at 6:42 PM, Phil Hunt <<>> wrote:

Right.  This is why it has a different point because the client does NOT want a resource token.



On May 14, 2014, at 6:41 PM, Justin Richer <<>> wrote:

Actually, it's about OAuth compatibility. With OAuth, you get an access token to be used at a protected resource. That's what it's for, that's what clients do the OAuth dance(s) for. Connect defines that protected resource as the userinfo endpoint (ie, "tells the client what to do with it"). Connect also defines the id token that comes in along side of the bog-standard OAuth token, and Connect is turned on and off through the use of bog-standard OAuth scopes. So that makes it very, very, very easy to take an OAuth server and turn it into a Connect server. I know, I've done just that, and I've walked others through the process as well.

But the a4c draft is using something that's almost-but-not-quite-OAuth: You might not get an access token, which is going to confuse the heck out of most OAuth clients that I know since that's what they're trying to get at in the first place, and there's no real way for a client to distinguish its request for something with an id_token vs. without. Additionally, in practice, that access token is hugely useful. Just look at all of the weird OpenID2 and OAuth1 hybrid stuff that people were trying to do back a few years ago on top of all the OpenID2 extensions -- this is exactly because OpenID2 was built for "authentication only" because that's what people thought developers wanted, but it turned out that developers wanted a whole lot more than that. This is one main reason the Facebook Connect and Twitter's OAuth-based login came along and ate everyone's lunch: they gave you authentication, but also something useful about the end user.

All said, it sounds like you want Connect but without the UserInfo Endpoint. You'll be glad to know that you can already do that as per the MTI definitions of the server:

You are free to implement a SCIM endpoint (which, by the way, you'll probably need that access_token to access) or no endpoint at all, and a compliant client ought to be able to deal with that. In fact, there's a way to get just the id_token in Connect if that's all you care about, but instead of hiding it inside of an existing flow that might return something different depending on (currently-undefined) special circumstances, it puts this mode into a separate response_type entirely to enforce the point that it is different from regular OAuth.

 -- Justin

On 5/14/2014 9:24 PM, Phil Hunt wrote:
It isn’t required (or should not be).  This issue is OIDC compatibility.



On May 14, 2014, at 6:21 PM, Justin Richer <<>> wrote:

How is this functionally different from the a4c draft that also allows the return of both an id_token and an access token?

 -- Justin

On 5/14/2014 9:18 PM, Phil Hunt wrote:
That’s not a minimalistic authn only profile.

If you return both an access token AND an id token than the service provide has to implement both and the client has to figure out what to do with it.



On May 14, 2014, at 5:44 PM, Chuck Mortimore <<>> wrote:

"I had personally requested the OIDC community about six months ago to describe some minimal subset which we could all reasonably implement."

I believe you're looking for this:


On Wed, May 14, 2014 at 5:37 PM, Prateek Mishra <<>> wrote:

the challenge is that OIDC is a rather large set of specifications, and to my knowledge even the core specification has NOT found
a complete implementation at any large IdP. I am not talking here about boutique toolkits or startups, I am talking about the folks
who have 100s of millions of users. And, BTW, implementing a few arbitrarily selected features from OIDC is not the same as implementing OIDC.

As we all know, the core problem is that of adding an authenticator token to OAuth flows, which is a rather modest extension to OAuth.

I had personally requested the OIDC community about six months ago to describe some minimal subset which we could all reasonably implement. I was told that  the specification was "locked down" and fully debugged and so on, so no changes could be made. Imagine my surprise to find that in the final drafts there was a whole new flow - the hybrid flow - that had been added at the last minute. I had never heard of the hybrid flow in the OAuth context - have you? So now you have an even larger specification!

The value of draft-hunt-oauth-v2-user-a4c-01 is that it describes precisely a minimal extension to OAuth flows to support an authenticator token.  In my experience, this is the subset that most customers and implementors are looking for.

- prateek

  any chance you can have this work done at OIDC?

The reason is that it is commonly understood/accepted now that OAuth provides authorization related specs while authentication/profile
related specs are coming from OIDC (which builds on top of OAuth2).


On 05/14/2014 10:47 AM, Anthony Nadalin wrote:
I agree with Phil on this one, there are implementations of this already and much interest

From: OAuth [] On Behalf Of Phil Hunt
Sent: Wednesday, May 14, 2014 8:32 AM
To: Brian Campbell
Subject: Re: [OAUTH-WG] OAuth Milestone Update and Rechartering

On the contrary. I and others are interested.

We are waiting for the charter to pick up the work.

Regardless there will be a new draft shortly.


On May 14, 2014, at 5:24, Brian Campbell <<>> wrote:
I would object to 'OAuth Authentication' being picked up by the WG as a work item. The starting point draft has expired and it hasn't really been discusses since Berlin nearly a year ago.  As I recall, there was only very limited interest in it even then. I also don't believe it fits well with the WG charter.

I would suggest the WG consider picking up 'OAuth Symmetric Proof of Possession for Code Extension' for which there is an excellent starting point of - it's a relativity simple security enhancement which addresses problems currently being encountered in deployments of native clients.

On Thu, May 8, 2014 at 3:04 PM, Hannes Tschofenig <<>> wrote:
Hi all,

you might have seen that we pushed the assertion documents and the JWT
documents to the IESG today. We have also updated the milestones on the
OAuth WG page.

This means that we can plan to pick up new work in the group.
We have sent a request to Kathleen to change the milestone for the OAuth
security mechanisms to use the proof-of-possession terminology.

We also expect an updated version of the dynamic client registration
spec incorporating last call feedback within about 2 weeks.

We would like you to think about adding the following milestones to the
charter as part of the re-chartering effort:


Nov 2014 Submit 'Token introspection' to the IESG for consideration as a
Proposed Standard
Starting point: <draft-richer-oauth-introspection-04>

Jan 2015 Submit 'OAuth Authentication' to the IESG for consideration as
a Proposed Standard
Starting point: <draft-hunt-oauth-v2-user-a4c-01>

Jan 2015 Submit 'Token Exchange' to the IESG for consideration as a
Proposed Standard
Starting point: <draft-jones-oauth-token-exchange-00>


We also updated the charter text to reflect the current situation. Here
is the proposed text:


Charter for Working Group

The Web Authorization (OAuth) protocol allows a user to grant a
third-party Web site or application access to the user's protected
resources, without necessarily revealing their long-term credentials,
or even their identity. For example, a photo-sharing site that
supports OAuth could allow its users to use a third-party printing Web
site to print their private pictures, without allowing the printing
site to gain full control of the user's account and without having the
user share his or her photo-sharing sites' long-term credential with
the printing site.

The OAuth 2.0 protocol suite encompasses

* a protocol for obtaining access tokens from an authorization
server with the resource owner's consent,
* protocols for presenting these access tokens to resource server
for access to a protected resource,
* guidance for securely using OAuth 2.0,
* the ability to revoke access tokens,
* standardized format for security tokens encoded in a JSON format
  (JSON Web Token, JWT),
* ways of using assertions with OAuth, and
* a dynamic client registration protocol.

The working group also developed security schemes for presenting
authorization tokens to access a protected resource. This led to the
publication of the bearer token, as well as work that remains to be
completed on proof-of-possession and token exchange.

The ongoing standardization effort within the OAuth working group will
focus on enhancing interoperability and functionality of OAuth
deployments, such as a standard for a token introspection service and
standards for additional security of OAuth requests.


Feedback appreciated.

Hannes & Derek

OAuth mailing list<>

[Ping                                                            Identity logo]<>

Brian Campbell
Portfolio Architect


+1 720.317.2061<tel:720.317.2061>

Connect with us…

[twitter                                                            logo]<>[youtube                                                            logo]<>[LinkedIn                                                            logo]<>[Facebook                                                            logo]<>[Google+                                                            logo]<>[slideshare                                                                logo]<>[flipboard                                                            logo]<>[rss feed                                                            icon]<>

[Register                                                            for Cloud                                                            Identity                                                            Summit 2014 |                                                            Modern                                                            Identity                                                            Revolution |                                                            19–23 July,                                                            2014 |                                                            Monterey, CA]<>

OAuth mailing list<>

OAuth mailing list<>

OAuth mailing list<>

OAuth mailing list<>

OAuth mailing list<>

OAuth mailing list<>