Skip to content

Clarify signature requests and conditional signing - #141

Merged
thibmeu merged 3 commits into
webbotauth:mainfrom
thibmeu:accept-signature-guidance
Oct 27, 2026
Merged

thibmeu merged 3 commits into
webbotauth:mainfrom
thibmeu:accept-signature-guidance

Conversation

@thibmeu

@thibmeu thibmeu commented Oct 12, 2026

Copy link
Copy Markdown
Collaborator

Addresses feedback from @mnot on the mailing list

@sandormajor for review

@thibmeu thibmeu self-assigned this Oct 12, 2026
@thibmeu thibmeu added the enhancement New feature or request label Oct 12, 2026
Comment on lines +1162 to +1165
Agents can sign every request or sign only when an origin requests a signature
({{requesting-message-signature}}). Conditional signing adds a round trip when
the origin requires a signature. Non-idempotent requests cannot be automatically
retried without additional protocol mechanisms; see {{Section 9.2.2 of HTTP}}.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is super vague. Does the agent try every request without so that each is made twice? A 403 is a per-resource thing, right? Or should it make some guesses and start signing everything after a signature is requested? What in the response it gets would indicate one vs. the other?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is how the Web works today for many kinds of failures; scoping of metadata has always been an issue in HTTP headers (as I often complain).

Even HTTP auth realms don't really provide this; while they tie things together, they don't describe the shape of the protection space; instead we get this advice -- which seems to have not made it into 7616 (after a quick glance).

I could see adding path-based advice like that. I could also see making this effectively a server-wide hint. Something more complex than either of those might scratch an itch for some people, but I kind of doubt the extra complexity would be worth it.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know that the situation is, by default, terrible. I'm suggesting that maybe this specification doesn't have to follow that pattern. An explicit scope parameter would be a huge upgrade. The fuzzy basic auth scoping thing is second best. What this has presently is far from satisfactory.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reading RFC 7616 domain parameter, would this be something similar that you are after?

A quoted, space-separated list of URIs, as specified in [RFC3986], that define the protection space

Specifically, a scope at which the parameters that, once discovered, can be reused?

Thinking through, we could add a parameter to HTTP Message sig domain= and have something similar.

This does not answer the question about signing target-uri for instance, which would impose a new signature per URL and prevent reuse, but that's a distinct question

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Related to this (and we might have talked about it earlier, Thibault), it would be great to have a mechanism to signal the client that they can stop signing. We heard of implementers who only care about the first request to be signed, then they use other mechanisms to identify the client. In this case it would be great if the client could stop signing.

`nonce`.
The status code SHOULD be 403 Forbidden as defined in {{Section 15.5.4 of HTTP}}.

Signature requests MUST be consistent with this profile. Agents MAY ignore

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here: which profile?

Comment on lines +1162 to +1165
Agents can sign every request or sign only when an origin requests a signature
({{requesting-message-signature}}). Conditional signing adds a round trip when
the origin requires a signature. Non-idempotent requests cannot be automatically
retried without additional protocol mechanisms; see {{Section 9.2.2 of HTTP}}.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Related to this (and we might have talked about it earlier, Thibault), it would be great to have a mechanism to signal the client that they can stop signing. We heard of implementers who only care about the first request to be signed, then they use other mechanisms to identify the client. In this case it would be great if the client could stop signing.

@thibmeu

thibmeu commented Oct 22, 2026

Copy link
Copy Markdown
Collaborator Author

@sandormajor your comment should have been addressed in d0a4fa1

@thibmeu

thibmeu commented Oct 27, 2026

Copy link
Copy Markdown
Collaborator Author

merging as is, so that we have a draft before the cut off. some issues have been openned to track remaining discussion

@thibmeu
thibmeu merged commit f22085e into webbotauth:main Oct 27, 2026
1 check passed
@thibmeu
thibmeu deleted the accept-signature-guidance branch October 27, 2026 09:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants