Hi Mike! Thanks for the quick reply. It looks good to me, just one answer to point 4. :
4. ----- specified in the "alg" Header Parameter. If a "kid" Header Parameter is present, the key identified MUST be the key used, and MUST be a key associated with the client. Algorithm verification MUST be ... same parameter is provided in the query parameter. The Client ID values in the "client_id" request parameter and in the Request Object "client_id" claim MUST be identical. The Authorization Server then FP: "MUST be a key associated with the client" - what if it is not? does the AS return an error to the client then? Same comment "... MUST be identical" - is any error returned if it's not? Mike> I believe that the responses to these validation errors are already described in the following paragraph, which says "If signature validation fails, the Authorization Server MUST return an 'invalid_request_object' error to the client in response to the authorization request." FP: As I read it, the first paragraph says: The Authorization Server MUST validate the signature of the JSON Web Signature [RFC7515] signed Request Object. If a "kid" Header Then follows up with a number of other checks that need to be done (the text I quoted in my original comment). And then ends with the sentence you quoted: If signature validation fails, the Authorization Server MUST return an "invalid_request_object" error to the client in response to the authorization request. Same for the second - the text I reported is followed by: The Authorization Server then validates the request as specified in OAuth 2.0 [RFC6749]. And then again from the text you quoted: If the validation fails, then the Authorization Server MUST return an error to the client in response to the authorization request, as specified in Section 5.2 of OAuth 2.0 [RFC6749]. So while reading I considered that the validation (either of the signature for par 1 or of the request for par 2) is separate from the additional checks. The intent of it could be made clear by a minor addition in each par: 1st paragraph: OLD: If signature validation fails, the Authorization Server MUST return an "invalid_request_object" error to the client in response to the authorization request. NEW: If signature validation fials, or if the key identified is not associated with the client, the Authorization Server MUST return an "invalid_request_object" error to the client in response to the authorization request. 2nd paragraph: OLD: If the validation fails, then the Authorization Server MUST return an error to the client in response to the authorization request, as specified in Section 5.2 of OAuth 2.0 [RFC6749]. NEW: If the validation of the request or the Client ID check fails, then the Authorization Server MUST return an error to the client in response to the authorization request, as specified in Section 5.2 of OAuth 2.0 [RFC6749]. I think this would clarify the text, but I'll leave it up to you to decide if it's worth adding. Thanks, Francesca On 08/04/2021, 06:45, "Mike Jones" <michael.jo...@microsoft.com> wrote: Thanks for your review, Francesca. We've published https://tools.ietf.org/html/draft-ietf-oauth-jwsreq-33 to address your and other IESG comments. Responses are inline below, prefixed by "Mike>". -----Original Message----- From: Francesca Palombini via Datatracker <nore...@ietf.org> Sent: Wednesday, April 7, 2021 3:29 AM To: The IESG <i...@ietf.org> Cc: draft-ietf-oauth-jws...@ietf.org; oauth-cha...@ietf.org; oauth@ietf.org; hannes.tschofe...@gmx.net Subject: Francesca Palombini's No Objection on draft-ietf-oauth-jwsreq-32: (with COMMENT) Francesca Palombini has entered the following ballot position for draft-ietf-oauth-jwsreq-32: No Objection When responding, please keep the subject line intact and reply to all email addresses included in the To and CC lines. (Feel free to cut this introductory paragraph, however.) Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html for more information about IESG DISCUSS and COMMENT positions. The document, along with other ballot positions, can be found here: https://datatracker.ietf.org/doc/draft-ietf-oauth-jwsreq/ ---------------------------------------------------------------------- COMMENT: ---------------------------------------------------------------------- Thank you for the work on this document. I only have minor comments, the most interesting is probably 4. about if additional failure behavior should be defined at the AS. Francesca 1. ----- A Request Object (Section 2.1) has the "mime-type" "application/ FP: Please use "media type" instead of "mime-type" and reference https://tools.ietf.org/html/rfc6838 Mike> Thanks, updated, although referencing RFC 2046 for the term "media type" (which is not superseded by RFC 6838). 2. ----- The following is an example of the Claims in a Request Object before base64url encoding and signing. Note that it includes the extension FP: This example is the first time "base64url" appears in the document. I think it would make sense to mention that base64url is used when JWT is introduced, for example in the first paragraph of section 4. Mike> Reference added. 3. ----- If decryption fails, the Authorization Server MUST return an "invalid_request_object" error. ... If signature validation fails, the Authorization Server MUST return an "invalid_request_object" error. ... If the validation fails, then the Authorization Server MUST return an error as specified in OAuth 2.0 [RFC6749]. FP: very minor, but I suggests you add "to the client, in response to the request defined in 5.2.2. of this specification". The reason is that the doc specifies that the AS might be having other exchanges (to fetch the Request Object) at the same time, and it can't hurt to be precise. Also regarding the reference to RFC 6749 - can you add a specific section to reference? Mike> Done 4. ----- specified in the "alg" Header Parameter. If a "kid" Header Parameter is present, the key identified MUST be the key used, and MUST be a key associated with the client. Algorithm verification MUST be ... same parameter is provided in the query parameter. The Client ID values in the "client_id" request parameter and in the Request Object "client_id" claim MUST be identical. The Authorization Server then FP: "MUST be a key associated with the client" - what if it is not? does the AS return an error to the client then? Same comment "... MUST be identical" - is any error returned if it's not? Mike> I believe that the responses to these validation errors are already described in the following paragraph, which says "If signature validation fails, the Authorization Server MUST return an 'invalid_request_object' error to the client in response to the authorization request." 5. ----- location, (b) check the content type of the response is "application/ FP: For consistency, please change "content type" to "media type". Mike> Done Thanks again, -- Mike _______________________________________________ OAuth mailing list OAuth@ietf.org https://www.ietf.org/mailman/listinfo/oauth