I thought we already had; if not, approved.

Cheers,


> On 9 Mar 2023, at 12:32 pm, Mike Jones 
> <Michael.Jones=40microsoft....@dmarc.ietf.org> wrote:
> 
> Hi Mark,
>  We’ve published 
> https://www.ietf.org/archive/id/draft-ietf-oauth-dpop-14.html, which 
> incorporates the PR.  Could you please approve IANA registration of the HTTP 
> fields on that basis?
>  Thanks again for your help with the draft.
>                                                         -- Mike
>  From: OAuth <oauth-boun...@ietf.org> On Behalf Of Mike Jones
> Sent: Tuesday, March 7, 2023 8:58 PM
> To: Mark Nottingham <mnot=40mnot....@dmarc.ietf.org>
> Cc: Roy Fielding <field...@gbiv.com>; Amanda Baber via RT 
> <drafts-expert-review-comm...@iana.org>; oauth@ietf.org
> Subject: Re: [OAUTH-WG] [IANA #1264432] expert review for 
> draft-ietf-oauth-dpop (http-fields)
>  Thanks - will do. 
>  From: Mark Nottingham <mnot=40mnot....@dmarc.ietf.org>
> Sent: Tuesday, March 7, 2023 7:55:29 PM
> To: Mike Jones <michael.jo...@microsoft.com>
> Cc: Brian Campbell <bcampb...@pingidentity.com>; Amanda Baber via RT 
> <drafts-expert-review-comm...@iana.org>; oauth@ietf.org <oauth@ietf.org>; Roy 
> Fielding <field...@gbiv.com>
> Subject: Re: [OAUTH-WG] [IANA #1264432] expert review for 
> draft-ietf-oauth-dpop (http-fields)
>  Hi Mike,
> 
> Thanks. I left a comment on the PR, suggesting two small tweaks.
> 
> Cheers,
> 
> 
> > On 8 Mar 2023, at 2:33 pm, Mike Jones 
> > <Michael.Jones=40microsoft....@dmarc.ietf.org> wrote:
> > 
> > Hi Mark,
> > 
> > I've created the pull request 
> > https://github.com/danielfett/draft-dpop/pull/180 to incorporate your 
> > suggestions.  Please also see some additional replies below, which are 
> > prefixed by "Mike>".
> > 
> > Please let us know if you'd like to see any changes to the PR before we 
> > merge it and publish an updated draft incorporating your suggestions.
> > 
> > Thanks,
> > -- Mike
> > 
> > -----Original Message-----
> > From: Mike Jones 
> > Sent: Monday, January 23, 2023 11:42 PM
> > To: 'Mark Nottingham' <mnot=40mnot....@dmarc.ietf.org>; Brian Campbell 
> > <bcampbell=40pingidentity....@dmarc.ietf.org>
> > Cc: Amanda Baber via RT <drafts-expert-review-comm...@iana.org>; 
> > oauth@ietf.org; Roy Fielding <field...@gbiv.com>
> > Subject: RE: [OAUTH-WG] [IANA #1264432] expert review for 
> > draft-ietf-oauth-dpop (http-fields)
> > 
> > Hi Mark,
> > 
> > Like Brian, I appreciate your detailed review.  My thoughts on the review 
> > points are interleaved with the discussion text below.
> > 
> >> Keep in mind that HTTP header fields are basically sets of constrained 
> >> octets with weird combination rules; if you don't use SF, you should be 
> >> specifying (for example) what happens when two header values (and/or 
> >> fields) are present (as per below). SF does a lot of the legwork here, 
> >> even if from a type system standpoint it's not a perfect fit.
> > 
> > I agree that we should specify these things - probably using language 
> > parallel to that in the SF draft, where appropriate.  I also share your 
> > assessment that, unfortunately, the SF type system is not an ideal fit for 
> > the DPoP headers.
> > 
> > Mike> 
> > https://www.ietf.org/archive/id/draft-ietf-oauth-dpop-13.html#name-checking-dpop-proofs
> >  does include the validation check "there is not more than one DPoP HTTP 
> > request header field".  In the PR, I also explicitly added that the there 
> > is a single field value.
> > 
> >> That said, personally I'd deconstruct the JWT and convey it as separate 
> >> binary values, so that if binary structured headers ever does catch on, it 
> >> can get the perf/compactness advantages of that.
> > 
> > Deconstructing the JWT would entail defining a new JWT serialization 
> > (representation).  Currently there is exactly one JWT serialization and 
> > this specification uses it.  I suspect developers would like us to keep it 
> > that way.
> > 
> > Only one of the fields of a signed JWT is actually binary (the signature); 
> > the header and payload are JSON.  All are encoded using the base64 URL-safe 
> > character set (letters, numbers, -, and _ with no trailing =s) for safe 
> > transmission with encoded fields separated by the also URL-safe character 
> > period.  Furthermore, the signature is computed over the base64url-encoded 
> > values of the first two fields with a period between them.  The base64url 
> > encoding and concatenation is integral to the computation of the signature. 
> >  Any different serialization would still have to perform these computations.
> > 
> > (Note also that some JWTs have three base64url-encoded fields separated by 
> > period characters and some have five, depending upon whether they are 
> > signed (three) or encrypted (five); deconstructing a value with a variable 
> > number of non-independent fields seems like significant unnecessary 
> > complexity.)
> > 
> >>> ABNF syntax for the nonce value is provided at 
> >>> https://www.ietf.org/archive/id/draft-ietf-oauth-dpop-12.html#section-8-9 
> >>> along with the description of its use in the DPoP exchange.
> > 
> >> I see. It'd be better if it were explicitly called out as the syntax for 
> >> the field (ideally with a section title that makes this clear), rather 
> >> than making the reader do that work.
> > 
> > Mike> The nonce syntax ABNF now has its own section title in the PR.
> > 
> > I'm fine with us making the editorial improvement that you suggest.
> > 
> >>> I believe that the SF String type would accommodate the content we 
> >>> intended to allow servers to use for the nonce (it's basically a server 
> >>> chosen value that the client treats as opaque and sends back in 
> >>> subsequent DPoP proof JWTs). However, that would be a breaking change, 
> >>> which shouldn't be undertaken lightly.
> > 
> >> Right. It really depends on how advanced deployment of this is; if there's 
> >> only modest production use, it may still be reasonable to make such a 
> >> change (especially keeping in mind that people who adopt drafts need to 
> >> bear the consequences of doing so).
> > 
> > I'm with Brian here.  I don't believe that the cost/benefit tradeoff of the 
> > breaking change versus using the SF String type is a good one.
> > 
> >> To be concrete -- what should an implementation do when it receives two 
> >> DPoP header fields, both with valid values? When it receives one with two 
> >> comma-separated values?
> > 
> > These are great questions.  I'll commit to us answering them in the next 
> > draft.
> > 
> > Mike> Per my earlier comment about the validation rules, these issues are 
> > both addressed in the rules.
> > 
> >>>> - The long line-wrapped example in Section 4.1 would benefit from 
> >>>> RFC8792 encoding. In HTTP, a line-wrapped field like the one shown has 
> >>>> whitespace inserted between each line, which is problematic here.
> >> 
> >>> This is a bit of a stylistic preference thing. That example and others in 
> >>> the draft are intentionally similar (with a note about line breaks and 
> >>> extra space being for display purposes) to closely related and referenced 
> >>> documents like RFC7515, RFC7519, and RFC6749. The examples from these 
> >>> RFCs seem to have worked well for readers/implementers in practice, and 
> >>> so we'd prefer to keep the formatting conventions in this draft the same 
> >>> as in those.
> >> 
> >> Consistency between documents that specify HTTP protocol elements is 
> >> important, so I'd ask you to reconsider; while the community that has been 
> >> developing and implementing the specification may already be familiar with 
> >> it, aligning with other documents makes it easier for a broader audience. 
> >> See, for example, the Signatures specification: 
> >> https://httpwg.org/http-extensions/draft-ietf-httpbis-message-signatures.html#name-request-response-signature-
> > 
> > I'm fine with us making this editorial change to the examples, since you 
> > feel that this would help some readers of the specification.
> > 
> > Mike> I applied RFC 8792 '\' line wrapping.
> > 
> > In closing, I'll say that I appreciate that the SF spec has done heavy 
> > lifting that we would do well to take advantage of.  I appreciate you 
> > bringing it to our attention.  That said, since SF's type system does not 
> > cleanly map to some of the DPoP fields, and since the use of SF is 
> > optional, I personally believe that the best route for us to take advantage 
> > of SF is to study it and ensure that the questions that SF answers for the 
> > field types that it defines are also answered for the fields defined by the 
> > DPoP draft.
> > 
> > Best wishes,
> > -- Mike
> > 
> > -----Original Message-----
> > From: OAuth <oauth-boun...@ietf.org> On Behalf Of Mark Nottingham
> > Sent: Sunday, January 22, 2023 7:13 PM
> > To: Brian Campbell <bcampbell=40pingidentity....@dmarc.ietf.org>
> > Cc: Amanda Baber via RT <drafts-expert-review-comm...@iana.org>; 
> > oauth@ietf.org; Roy Fielding <field...@gbiv.com>
> > Subject: Re: [OAUTH-WG] [IANA #1264432] expert review for 
> > draft-ietf-oauth-dpop (http-fields)
> > 
> > Hi Brian,
> > 
> >> On 21 Jan 2023, at 5:46 am, Brian Campbell 
> >> <bcampbell=40pingidentity....@dmarc.ietf.org> wrote:
> >> 
> >> 
> >> Hi Mark,
> >> 
> >> Thanks for the review and feedback. I am aware of HTTP Structured Fields 
> >> and certainly see value in it - even using it in some other work in which 
> >> I'm involved. However, I'm unsure of its fit or utility for this draft. 
> >> With that said, I've tried to reply more specifically to your comments 
> >> inline below. 
> >> 
> >> 
> >> On Wed, Jan 18, 2023 at 3:32 PM Mark Nottingham 
> >> <mnot=40mnot....@dmarc.ietf.org> wrote:
> >> A few things caught my eye in this document:
> >> 
> >> - Section 4.1 defines the DPoP header field as a JWT, which (as I 
> >> understand it) is a base64-encoded string. If that's the case, I'd 
> >> recommend making it a Structured Field Item (see RFC8941 s 3.3) with a 
> >> fixed type of Byte Sequence (s 3.3.5). That will require changing the 
> >> syntax to add a prefix and suffix of ":".
> >> 
> >> As Justin pointed out, a JWT is three Base64url encoded segments delimited 
> >> by the `.` period character, which means it can't be a SF Byte Sequence.  
> >> As DW pointed out, a JWT just happens to always start with a letter 
> >> because the first segment is always encoded JSON, so will always start 
> >> with 'ey'. So the DPoP header field value does just happen to fit the SF 
> >> Token syntax, But the SF Token syntax does very little regarding the 
> >> validity of the JWT. 
> > 
> > Keep in mind that HTTP header fields are basically sets of constrained 
> > octets with weird combination rules; if you don't use SF, you should be 
> > specifying (for example) what happens when two header values (and/or 
> > fields) are present (as per below). SF does a lot of the legwork here, even 
> > if from a type system standpoint it's not a perfect fit.
> > 
> > That said, personally I'd deconstruct the JWT and convey it as separate 
> > binary values, so that if binary structured headers ever does catch on, it 
> > can get the perf/compactness advantages of that.
> > 
> > 
> >> - The DPoP-Nonce header field's syntax isn't obviously specified. It 
> >> should be. I'd suggest a Structured Field Item with a fixed type of String 
> >> (RFC 8941 s 3.3.3), which would surrounding the value with quotes.
> >> 
> >> ABNF syntax for the nonce value is provided at 
> >> https://www.ietf.org/archive/id/draft-ietf-oauth-dpop-12.html#section-8-9 
> >> along with the description of its use in the DPoP exchange.
> > 
> > I see. It'd be better if it were explicitly called out as the syntax for 
> > the field (ideally with a section title that makes this clear), rather than 
> > making the reader do that work.
> > 
> > 
> >> I believe that the SF String type would accommodate the content we 
> >> intended to allow servers to use for the nonce (it's basically a server 
> >> chosen value that the client treats as opaque and sends back in subsequent 
> >> DPoP proof JWTs). However, that would be a breaking change, which 
> >> shouldn't be undertaken lightly.
> > 
> > Right. It really depends on how advanced deployment of this is; if there's 
> > only modest production use, it may still be reasonable to make such a 
> > change (especially keeping in mind that people who adopt drafts need to 
> > bear the consequences of doing so).
> > 
> > 
> >> - Neither header has interoperable parsing or serialisation specified; 
> >> divergent error handling may cause interoperability problems. Adopting 
> >> Structured Fields would address this.
> >> 
> >> Both are composed of a narrow set of printable ASCII with parsing, 
> >> validation, usage, and error handling specified at the application layer. 
> >> I'm not going to claim that it's perfect by any means. But those 
> >> interoperability problems seem conjectural and it's not obvious that 
> >> adopting Structured Fields would add value in the context of this draft. 
> > 
> > To be concrete -- what should an implementation do when it receives two 
> > DPoP header fields, both with valid values? When it receives one with two 
> > comma-separated values?
> > 
> > 
> >> - See RFC9110 s 16.3.2 for things that should be considered when defining 
> >> new HTTP fields. I suspect that the document needs to be more explicit 
> >> about at least some of these items. Adopting Structured Fields would 
> >> address some (but not all) of these questions.
> >> 
> >> The authors (on-behalf-of and with the help of the WG) have endeavored to 
> >> touch on all the considerations needed to ensure interoperability of the 
> >> protocol overall as well as HTTP related (e.g. caching, applicability to 
> >> request/response, prohibiting multiple occurrences, scope of 
> >> applicability). However, the group clearly does not have your depth of 
> >> HTTP expertise so may well have missed something. If that's the case, it 
> >> would be very helpful for specifics to be raised. 
> >> 
> >> - See also 
> >> <https://httpwg.org/admin/editors/style-guide#header-and-trailer-fields> 
> >> for the preferred editorial style when defining new HTTP fields.
> >> 
> >> - The long line-wrapped example in Section 4.1 would benefit from RFC8792 
> >> encoding. In HTTP, a line-wrapped field like the one shown has whitespace 
> >> inserted between each line, which is problematic here.
> >> 
> >> This is a bit of a stylistic preference thing. That example and others in 
> >> the draft are intentionally similar (with a note about line breaks and 
> >> extra space being for display purposes) to closely related and referenced 
> >> documents like RFC7515, RFC7519, and RFC6749. The examples from these RFCs 
> >> seem to have worked well for readers/implementers in practice, and so we'd 
> >> prefer to keep the formatting conventions in this draft the same as in 
> >> those.
> > 
> > Consistency between documents that specify HTTP protocol elements is 
> > important, so I'd ask you to reconsider; while the community that has been 
> > developing and implementing the specification may already be familiar with 
> > it, aligning with other documents makes it easier for a broader audience. 
> > See, for example, the Signatures specification:
> > https://httpwg.org/http-extensions/draft-ietf-httpbis-message-signatures.html#name-request-response-signature-
> > 
> > Cheers,
> > 
> > 
> >> 
> >> Cheers,
> >> 
> >> 
> >> 
> >> 
> >>> On 19 Jan 2023, at 5:30 am, David Dong via RT 
> >>> <drafts-expert-review-comm...@iana.org> wrote:
> >>> 
> >>> Dear Mark Nottingham and Roy Fielding (cc: oauth WG),
> >>> 
> >>> As the designated experts for the http-fields registry, can you review 
> >>> the proposed registration in draft-ietf-oauth-dpop for us? Please see:
> >>> 
> >>> https://datatracker.ietf.org/doc/draft-ietf-oauth-dpop/
> >>> 
> >>> The due date is February 1st, 2023.
> >>> 
> >>> If this is OK, when the IESG approves the document for publication, we'll 
> >>> make the registration at
> >>> 
> >>> https://www.iana.org/assignments/http-fields/http-fields.xhtml
> >>> 
> >>> We'll wait for both reviewers to respond unless you tell us otherwise.
> >>> 
> >>> With thanks,
> >>> 
> >>> David Dong
> >>> IANA Services Specialist
> >> 
> >> --
> >> Mark Nottingham   https://www.mnot.net/
> >> 
> >> _______________________________________________
> >> OAuth mailing list
> >> OAuth@ietf.org
> >> https://www.ietf.org/mailman/listinfo/oauth
> >> 
> >> CONFIDENTIALITY NOTICE: This email may contain confidential and privileged 
> >> material for the sole use of the intended recipient(s). Any review, use, 
> >> distribution or disclosure by others is strictly prohibited.  If you have 
> >> received this communication in error, please notify the sender immediately 
> >> by e-mail and delete the message and any file attachments from your 
> >> computer. Thank you.
> > 
> > 
> > --
> > Mark Nottingham   https://www.mnot.net/
> > 
> > _______________________________________________
> > OAuth mailing list
> > OAuth@ietf.org
> > https://www.ietf.org/mailman/listinfo/oauth
> 
> --
> Mark Nottingham   https://www.mnot.net/


--
Mark Nottingham   https://www.mnot.net/

_______________________________________________
OAuth mailing list
OAuth@ietf.org
https://www.ietf.org/mailman/listinfo/oauth

Reply via email to