Fair enough. I read 3.2.1 as being more informative and explanatory while 4.1.3 has the actual normative requirements. But I see what you are saying too.
On Fri, Jul 27, 2012 at 8:36 AM, Torsten Lodderstedt <tors...@lodderstedt.net> wrote: > Hi Brian, > > I know. But there is this sentence in 3.2.1, > > ---------- > > In the "authorization_code" grant_type request to the token endpoint, > an unauthenticated client sends "client_id" to prevent itself from > inadvertently accepting a code > intended for a client with a different "client_id". > ----------- > > which explicitely discusses the authz code w/o saying this behavior is > mandatory. People might "feel" a contradiction or difference to 4.1.3. I > would suggest to either remove this sentence in 3.2.1 or change it to: > > ---------- > > In the "authorization_code" grant_type request to the token endpoint, > an unauthenticated client MUST send its "client_id" to prevent itself from > > inadvertently accepting a code > intended for a client with a different "client_id". > ----------- > > regards, > Torsten. > > Am 27.07.2012 15:47, schrieb Brian Campbell: > >> Hey Torsten, >> >> The requirement that public clients send their client_id with an authz >> code grant is in 4.1.3 (Where the Access Token Request for the code >> grant is defined) of John's proposed text: >> >> 4.1.3. Access Token Request >> >> client_id >> REQUIRED if the client is NOT authenticating with the >> authorization server as described in Section 3.2.1 >> >> >> >> >> On Thu, Jul 26, 2012 at 11:40 PM, Torsten Lodderstedt >> <tors...@lodderstedt.net> wrote: >>> >>> Hi John, >>> >>> I would expect sending a client_id is a MUST for public clients in the >>> authz >>> code grant type. That's not how I read the proposed text for section 3.1. >>> >>> regards, >>> Torsten. >>> >>> >>> >>> John Bradley <ve7...@ve7jtb.com> schrieb: >>>> >>>> >>>> The changes introduced in Draft 29 had unintended consequences on parts >>>> of >>>> the spec caused by >>>> Sec 4.3, 4.4 and 6 referencing Sec 3.2.1 as part of client >>>> authentication. >>>> >>>> This change restricts the requirement to send client_id to only Sec >>>> 4.1.4 >>>> for clients that are not authenticated per Sec 3.2.1 >>>> >>>> >>>> >>>> >>>> Section 3.2.1 >>>> >>>> >>>> A public client that was not issued a client password MUST use the >>>> "client_id" request parameter to identify itself when sending >>>> requests to the token endpoint. This allows the authorization server >>>> to ensure that the code was issued to the same client. Sending >>>> "client_id" prevents the client from inadvertently accepting a code >>>> intended for a client with a different "client_id". This protects >>>> the client from substitution of the authentication code. (It >>>> provides no additional security for the protected resource.) >>>> >>>> >>>> Change to >>>> >>>> A client MAY use the "client_id" request parameter to identify itself >>>> when sending requests to the token endpoint. >>>> In the "authorization_code" grant_type request to the token endpoint, >>>> an unauthenticated client sends "client_id" to prevent itself from >>>> inadvertently accepting a code >>>> intended for a client with a different "client_id". This protects >>>> the client from substitution of the authentication code. (It >>>> provides no additional security for the protected resource.) >>>> >>>> >>>> ** This allows any client to send client ID and explains the threat to >>>> code. >>>> >>>> >>>> 4.1.3. Access Token Request >>>> >>>> >>>> >>>> Add >>>> client_id >>>> REQUIRED if the client is NOT authenticating with the >>>> authorization server as described in Section 3.2.1 >>>> >>>> >>>> >>>> >>>> ** This makes client_id only REQUIRED for the code flow if the client is >>>> not otherwise authenticated. >>>> >>>> Change >>>> >>>> >>>> ensure the authorization code was issued to the authenticated >>>> confidential client or to the public client identified by the >>>> "client_id" in the request, >>>> >>>> >>>> To: >>>> ensure the authorization code was issued to the authenticated >>>> confidential client, or if the client is public, ensure the code >>>> was >>>> issued to "client_id" in the request, >>>> >>>> >>>> ** That removes the implication of authentication. >>>> >>>> >>>> >>> >>> _______________________________________________ >>> OAuth mailing list >>> OAuth@ietf.org >>> https://www.ietf.org/mailman/listinfo/oauth >>> > _______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth