Hi everyone,
I've been thinking about bearer URIs for a long time, especially since the question of selecting credentials to use comes up quite often when discussing REST/HATEOAS…
My core idea was the same as Neil Madden, I discovered (putting the token in the authority), and I started to put together an RFC for the IETF. I realized that the question of relative URIs might be a tricky part, as the hierarchical nature of URIs basically presumes ambient authority… The current version is very preliminary, and every section needs a lot of work, but I'd like to get feedback very early.
https://kephas.github.io/bearer-uri/
I think Neil Madden's idea of the UserOnly parameter might be a good idea, and the part of his article on protection in the browser might make an interesting annex if he agrees.
What do you think, and do you know if there's anything implementing something like those URIs out there? In my last team where we deployed a capability-based API, we basically used objects in the JSON payload with a url and cap fields, so we side-stepped the URI question, I wonder if others did differently...
I also wondered if it would be useful to mention WebKeys in an annex...
Curiously,
Pierre Thierry
--
pie...@nothos.net 0xD9D50D8A
--
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/friam/1d65f1fd-1c69-414a-a9d1-90d9810fc83c%40nothos.net.
Your scheme is an improvement over waterken (you should cite it), which puts the bearer token in the URL fragment.
Unfortunately, secrets in the authorization header do leak. The problem is significant enough that a follow-on spec, AAuth, uses signed JWTs as tokens. I'm on a task force on AI agent safety, and we've ruled out bearer tokens, including Macaroons and Biscuits, because of the leakage problem.
I saw that revocation is a TODO. You also need a section on attenuated delegation. A non-normative section on responsibility tracking would help developers.
Not sure if you find this useful, but I've used this bearer URI spec for a few years https://github.com/capabilityio/capability-uri
I'm curious, wasn't it possible to include the notion of binding a capabilty to a session key in Biscuits?
I saw that revocation is a TODO. You also need a section on attenuated delegation. A non-normative section on responsibility tracking would help developers.Are there existing texts on the latter I could draw inspiration from? (or pillage with the author's consent)
[on the httpsy scheme] I sometimes wonder if there was a protocol built in for key rotation.
The only thing preventing everyone from putting the secret into the userinfo iirc was that the browser refuses to preserve that field. if you're outside of the browser, you can put the secret anywhere you like. Does it eat userinfo on custom schemes?
Was there ever documentation on the httpsy scheme? I downloaded waterken a few months ago to learn more and I couldn't even find the implementation. Assuming this was not just a dream, I think the userinfo held the fingerprint of the signature to use for establishing an httpsy session, which would normally live in the host section of a regular webkey. I sometimes wonder if there was a protocol built in for key rotation.
On delegation, it would be nice to loudly normalise that whenever someone creates a link to share that we store and display the delegations that have been made, and track them with the time they were created and probably an additional field to record why you shared the link, or who you shared it with. Allow you to delete or put an expiration time on them. Marc can finally stop letting Alan drive his car (it always comes back with fresh scratches).
On Thu, Aug 6, 2026 at 6:52 AM William ML Leslie <william.l...@gmail.com> wrote:The only thing preventing everyone from putting the secret into the userinfo iirc was that the browser refuses to preserve that field. if you're outside of the browser, you can put the secret anywhere you like. Does it eat userinfo on custom schemes?The real problem is the secret leaking. There are just too many systems out there that log information they're explicitly told not to log.
On delegation, it would be nice to loudly normalise that whenever someone creates a link to share that we store and display the delegations that have been made, and track them with the time they were created and probably an additional field to record why you shared the link, or who you shared it with. Allow you to delete or put an expiration time on them. Marc can finally stop letting Alan drive his car (it always comes back with fresh scratches).Storing all that information is a privacy nightmare. It's less intrusive if each delegator keeps track of its own delegations.
All certificate capability systems I've seen lately have explicit expiration times.
--
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/friam/CAKvcKK%3DvgRndXORsxPaR4Bm7M%2B%3DAR%3DbhQ4GmJTAgCb7%3DO4WwhQ%40mail.gmail.com.
You've temporarily raised the dead. ;) Some answers inline below.
The httpsy scheme did
not get much deployment due to the difficulty of adding new URL
schemes to browsers at the time.
Instead, we deployed within the
normal https scheme and tucked the needed information into there. The
httpsy scheme had the advantage that it included a list of ip
addresses for nameservers to contact to get the current location of
the server hosting the service identified by the public key hash in
the URL.
Both schemes included support for key rotation. The hash in the URL
was the hash of the certificate authority to trust to sign the
certificate deployed on the running service. This used the normal
X.509 certificate chains. The idea was to keep the keypair matching
the hash in the URL offline, and only use it to sign the certificate
deployed on the running server. The software that Alan used
implemented this feature, though we never did rotate keys.
Welcome back to the world (even if it's briefly) Tyler! This was the best archived version of httpsy spec I could find: https://web.archive.org/web/20081206135155/http://waterken.com/dev/YURL/httpsy/
Reading the Waterken YURL documents, I wonder how useful it would be to make it possible to include the Y property, even if only later…
One obvious solution would be to make the userinfo component of the URI use sub-schemes, so we could have a URI
pie...@nothos.net 0xD9D50D8A