[Openid-specs-ab] token_endpoint_auth_method Registration example error?

Mike Jones Michael.Jones at microsoft.com
Mon Jan 28 20:26:50 UTC 2013


I've filed http://hg.openid.net/connect/issue/728/messages-221-should-client_secret_basic to track the question of whether to collapse the client_secret_post and client_secret_basic values.

                                                                -- Mike

From: Mike Jones
Sent: Sunday, January 27, 2013 2:57 PM
To: Justin Richer
Cc: John Bradley; openid-specs-ab at lists.openid.net
Subject: RE: [Openid-specs-ab] token_endpoint_auth_method Registration example error?

As a point of order, once we issue the Implementer's Drafts, we should stop making normative changes entirely unless the spec is discovered to be incorrect or inadequate in some manner.  I'm writing that now because statements like "we should consider ... at a future point" go against that principle.  If you think a change needs to be made, we need to do it now.  Otherwise, we plan to should live with the way things are in the Implementer's Drafts from that point on.

That's why we're asking people to do a thorough review now, so that requests for changes don't come up in the future.

                                                            Best wishes,
                                                            -- Mike

From: Justin Richer [mailto:jricher at mitre.org]
Sent: Wednesday, January 23, 2013 10:12 AM
To: Mike Jones
Cc: John Bradley; openid-specs-ab at lists.openid.net<mailto:openid-specs-ab at lists.openid.net>
Subject: Re: [Openid-specs-ab] token_endpoint_auth_method Registration example error?

That's not an unreasonable interpretation. I think we should consider collapsing the client_secret_post and client_secret_basic at a future point, then.

 -- Justin
On 01/23/2013 12:45 PM, Mike Jones wrote:
I'd say no.  The client has already made its choice.  Giving it options it didn't ask for after that would likely only create interop problems in many cases.

                                                            -- Mike

From: Justin Richer [mailto:jricher at mitre.org]
Sent: Wednesday, January 23, 2013 9:43 AM
To: Mike Jones
Cc: John Bradley; openid-specs-ab at lists.openid.net<mailto:openid-specs-ab at lists.openid.net>
Subject: Re: [Openid-specs-ab] token_endpoint_auth_method Registration example error?

All of that I agree with. Question remains if the server, in its response to the client, wants to tell the client it has several of the X options found in discovery.

 -- Justin
On 01/23/2013 12:36 PM, Mike Jones wrote:
I agree they're complimentary.

Discovery tells the client what the server can do.  It uses that information to pick the option to use that will work for both of them, then registers with that option.

-- Mike
________________________________
From: Justin Richer
Sent: 1/23/2013 9:28 AM
To: Mike Jones
Cc: John Bradley; openid-specs-ab at lists.openid.net<mailto:openid-specs-ab at lists.openid.net>
Subject: Re: [Openid-specs-ab] token_endpoint_auth_method Registration example error?
Not all clients can necessarily use all forms of auth that a server supports, so I see the two values as complimentary.

 -- Justin
On 01/23/2013 12:14 PM, Mike Jones wrote:
The server expresses what the client should do in the discovery phase - not during registration.  See the "token_endpoint_auth_methods_supported" discovery result parameter in http://openid.net/specs/openid-connect-discovery-1_0-12.html.

                                                            -- Mike

From: John Bradley [mailto:ve7jtb at ve7jtb.com]
Sent: Wednesday, January 23, 2013 9:02 AM
To: Justin Richer
Cc: Mike Jones; openid-specs-ab at lists.openid.net<mailto:openid-specs-ab at lists.openid.net>
Subject: Re: [Openid-specs-ab] token_endpoint_auth_method Registration example error?

Like discovery the response could be multi value.  However the client souls only register one value if it wants to restrict what the server accepts for that client_id.

Sent from my iPhone

On 2013-01-23, at 4:33 PM, Justin Richer <jricher at mitre.org<mailto:jricher at mitre.org>> wrote:
But now that the server responds with the current configuration, it's no longer just about client preference but also about the server expressing to the client what it should do. So if a client gets a client_secret, and the server is OK with it using basic, post, or jwt with that secret, how can the server tell the client this?

The simplest thing is to keep it a single value as it is now, but that's (as always) a tradeoff between flexibility and complexity.

 -- Justin
On 01/23/2013 11:28 AM, John Bradley wrote:
If you want a client to authenticate multiple ways just don't register a prefrence.

This was intended to prevent IdP from accepting weaker methods of authentication from attackers.   If you are not doing that then the client should be able to use anything the server supports.

Now if the client doesn't register a public key then some methods will fail, but that is a client decision.

I think trying to say I only want to use 2 of the 5 available methods is overkill.

The client should just pick the one it is going to use.

If it really needs two methods maybe it is really two clients and somebody is fudging things a bit.

John B.

On 2013-01-23, at 4:18 PM, Justin Richer <jricher at mitre.org<mailto:jricher at mitre.org>> wrote:

Actually come to think of it, why wouldn't a client be able to do both client_secret_basic and client_secret_post to a server that supports them? It's the same info presented in *almost* the same way.

This combination may be the exceptional case, though, as the other types (client_secret_jwt,private_key_jwt, or even "none" that OIDC hasn't adopted yet) aren't particularly mutually compatible.

 -- Justin
On 01/23/2013 10:53 AM, Justin Richer wrote:
OK, thanks for catching that. I'll file a bug against Oauth2 Dynreg as well (which has the same examples). John is right that it is defined as a single value and the examples are off.

 -- Justin
On 01/23/2013 10:03 AM, Mike Jones wrote:
That's what I thought.  Thanks for confirming.

                                                            -- Mike

From: John Bradley [mailto:ve7jtb at ve7jtb.com]
Sent: Wednesday, January 23, 2013 7:02 AM
To: Mike Jones
Cc: openid-specs-ab at lists.openid.net<mailto:openid-specs-ab at lists.openid.net>
Subject: Re: [Openid-specs-ab] token_endpoint_auth_method Registration example error?

The server may support multiple methods, but the client MUST only register one, so it shouldn't be multi value for simplicity.

If you need two auth methods they should be different client_id.

This is intended mostly to enhance security and prevent a server from taking client_secret_basic from an attacker when the real client is using private_key_jwt.

John B.

On 2013-01-23, at 9:07 AM, Mike Jones <Michael.Jones at microsoft.com<mailto:Michael.Jones at microsoft.com>> wrote:


Registration contains the following definition:

token_endpoint_auth_method
OPTIONAL. Requested authentication method for the Token Endpoint. The options areclient_secret_post, client_secret_basic, client_secret_jwt, and private_key_jwt, as described in Section 2.2.1 of [OpenID.Messages]. Other Authentication methods may be defined by extension. If unspecified or omitted, the default is client_secret_basic HTTP Basic Authentication Scheme as specified in Section 2.3.1 of [RFC6749].

It later uses "token_endpoint_auth_method" in two example result values in this manner:

"token_endpoint_auth_method":
   "client_secret_basic client_secret_post",

This looks like a bug to me, since the string appears to be trying to contain multiple values.

Thus, I'm changing the string used to just



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openid.net/pipermail/openid-specs-ab/attachments/20130128/117a961a/attachment-0001.html>


More information about the Openid-specs-ab mailing list