Dear Oauth Mailing List

After some discussion i had i wanted to ask you for some guidance.

For the following request

request_uri 
https://example.com/token
request_method 
POST 
request_headers 
{"Accept":"application/json","Authorization":"Basic 
bWFnaWNpZDpwb3RhdG9zZWNyZXQ=","Content-Type":"application/x-www-form-urlencoded","Content-Length":"91"}
 

request_body 
grant_type=client_credentials&scope=accounts&client_id=magicid 

We had some discussions whether or not this request is a valid request, to 
be more exact wether the clientid can be in the body.
Section 2.3.1 states 
A client MAY use the "client_id" request parameter to identify itself when 
sending requests to the token endpoint. 

But at the same time in the case of a client password (2.3.1)
The clientid and secret are carried in the basic auth header as a form of 
authentication as a preferred method ,
But the standard states that if you choose to use the body as a form of 
authentication that if you can ommit the clientsecret the clientsecret is 
an empty string, therefore passing only the client_id is the same as 
passing the client_id and an empty string clientsecret .

So the current request would be according to the spec interpreted as 
follows 
Authentication 1) basic auth cleintid:secret
Authentication 2) body auth  clientd and blank secret

You can choose to use the client_id in the body with public clients or in 
the confidential client (the Lloyds situation) if you choose to add the 
clientsecret there as well and are not using the basic auth header (this 
is due to spec section 2.3 which states 
The client MUST NOT use more than one authentication method in each 
request. 

In short there is no way in the spec that allows for the oauth provider to 
distinguish between your intention of sending in the client_id again for 
identification and a malformed request with double authentication.


So my stance is (for now) that you cannot send a clientid when you find 
yourself in the clientid with a corresponding password situation.
Is that a correct statement ?
and if it is not how would that work ?
and if it is, when can you send the clientid in the body but use something 
else for authentication  (something like mtls ?) ?

Kind Regards
Van Oppens Tom

Tenzij hierboven anders aangegeven: / Sauf indication contraire ci-dessus: 
/ Unless otherwise stated above:

International Business Machines of Belgium sprl / bvba
Siège social / Maatschappelijke zetel: Avenue du Bourget 42 Bourgetlaan, 
B-1130 Bruxelles/Brussel
N° d'entreprise / Ondernemingsnr: TVA / BTW BE 0405 912 336
RPM Bruxelles / RPR Brussel
_______________________________________________
OAuth mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to