#dev 2022-03-23

2022-03-23 UTC
tetov-irc, cybi, strugee, ShinyCyril, jacky, mro, mro_, lagash and dovedozen[d] joined the channel
#
sknebel
[fluffy]: one idea I also don't like, but wanted to have mentioned: the endpoint the token is delivered to could state a preference for a canonical url, similar to the different user profile url mechanism. I think the most natural way would be discarding the delivery attempt and restarting it towards the "fixed" url though, since you might need to generate a new token
cybi joined the channel
#
sknebel
(i.e. if I decide to give "A" a token, on delivery of the ticket my system tells the receiving ticket endpoint "subject=A", the endpoint says "uhm, that's actually spelled B" - my system goes back, does the same check as for a differing profile URL against B, makes a new ticket for a token with the same rights but for B, delivers
#
jacky
^ I think I like this
#
sknebel
downside is that this doesnt understand that they are equivalent
#
jacky
well is that up to the endpoint to determine? like it could be them coming from a specific location/identity
#
sknebel
but tracking that is complicated either way
#
sknebel
a challenging part is if it happens for a private post
#
sknebel
because if I make a post with access for A
#
sknebel
which triggers my system to want to give A access
#
sknebel
then the information that A is actually B needs to somehow translate into giving B access to the post
#
sknebel
e.g. either some auth component remembers that for the future or the post access rule gets changed
#
jacky
that could be a internal disambiguation of sorts (like via someone's /contacts, rel=me or even some private mapping)
#
sknebel
but this is a step further than what [fluffy]s problem case was
#
sknebel
anyway, wanted to braindump this :D
#
jacky
ah yeah
[KevinMarks] joined the channel
#
[tantek]1
This is something I think has quite a few IndieWeb #indieweb-dev specific angles & appeals, and I worked on with other Mozilla folks for a while so I don't mind sharing here: https://webvision.mozilla.org/ (just published)
#
[tantek]1
Definitely interested in any/all questions & feedback!
mro joined the channel
#
jacky
this looks good
#
[tantek]1
thanks 🙂
#
jacky
still reading the full manifesto
#
jacky
I love this bit
#
jacky
> The URL acts as a global, low-friction, distributed namespace, allowing individuals to publish on their own terms, with comparatively little interference from centralized actors seeking to extract payment or exercise editorial control.
[manton] joined the channel
#
jacky
native app developers are quaking in their boots (lol)
#
[manton]
Agreed, looks good! I like the “Site-Building Ergonomics” section in the full document (the tilt to centralization when making web sites is too hard).
#
[manton]
The URL as a namespace? 1-star. NFTs should be a good enough identifier for anyone. 😉
#
jacky
urn:nft:apecoin:*
#
[manton]
(Sorry, couldn’t resist… Joking aside, good stuff here.)
#
[tantek]1
[manton] 😭 😂 (and thank you)
cybi joined the channel
#
angelo
"Our strategy is to categorize development techniques into increasing tiers of complexity, and then work to eliminate the usability gaps that push people up the ladder towards more complex approaches." I dig it.
#
[fluffy]
[sknebel] Yeah, having the endpoint provide the canonical URL would be much better, but that also means having to formalize a response from the endpoint. Right now in our ad-hoc pre-spec land I’m just expecting a 2xx code to indicate success. A 3xx redirect wouldn’t be appropriate for this, so we’d be looking at having a JSON result instead.
#
[fluffy]
And I mean, we’re already doing a request to a profile page to look up the ticket endpoint, why not use that and rel=“canonical” at that point?
#
[fluffy]
Having the endpoint do the redirect means an extra request (to the new profile to look up the new endpoint), which isn’t the end of the world but also feels inelegant.
#
sknebel
"(to the new profile to look up the new endpoint)" only if it isnt in the redirect chain, but yes
#
sknebel
and true, requires a specified response
johnnrs[d] and barnaby joined the channel
#
[fluffy]
A redirect chain isn’t secure though, imagine alice.example declaring an endpoint that pretends to be bob.example. How does the sender know what the identity is?
#
[fluffy]
The sender’s trust is all in the URL they tried to access to get the endpoint.
#
[tantek]1
^
#
[fluffy]
There *needs* to be a fetch of the profile to ensure that they’re getting the right endpoint for the identity.
#
[fluffy]
rel=canonical on the profile handles that, I don’t see any chain of trust that works at the endpoint level
#
sknebel
same way as its done for the differing profile urls
#
sknebel
its an optimization for some cases to avoid the second fetch
#
sknebel
(if you've went A->B->endpoint and get "B" as the fixed profile URL, you dont need to fetch "B" again to check if it points to the same endpoint)
#
sknebel
Wonder if there is some general guidelines somewhere what's the best patterns for "these identities are the same" in oauth or other systems
#
[fluffy]
OAuth makes it all implementation-dependent and doesn’t really have a fixed concept of an “identity,” it just has client token/secret.
#
[fluffy]
IndieAuth’s rules around identity collapse used to be way more liberal and were controlled at the domain level, but that leads to some pretty obvious and onerous attacks on shared domains with individualized hosting (e.g. tilde.club or academic homepages) and so that’s why we went through the whole revision with validating it based on matching endpoints.
#
[fluffy]
The IndieAuth response ‘me’ can be whatever you want now, BUT the client needs to fetch that ‘me’ page to ensure that the endpoint matches.
#
[fluffy]
https://github.com/indieweb/indieauth/pull/53 being where that got codified, I think.
#
Loqi
[fluffy-critter] #53 Add recommendation to verify matching authorization_endpoint
#
[fluffy]
That still required that the final URL was on the same domain as the original URL, but that requirement was later dropped in https://github.com/indieweb/indieauth/pull/56
#
Loqi
[Zegnat] #56 Remove requirement for same domain
#
sknebel
I know :D
#
jacky
(this is context I needed)
#
sknebel
A big part is also that the most thought about indieauth use cases don't really involve manually set permissions
#
sknebel
E.g. for logging into a micropub client or something like that, it doesn't really matter what the exact identity is
#
sknebel
As long as it's one the server likes
#
sknebel
Which "belongs to" the identity site usually
#
[fluffy]
Yeah you were part of that change, but worth reminding folks of the context. 🙂
#
sknebel
And even eg. External microsub servers mostly care about each login returning the same thing
#
sknebel
Now with private content we suddenly have someone specifying who gets access
#
[fluffy]
TicketAuth is the opposite flow from IndieAuth so it has different security considerations with how identities are managed and validated.
#
sknebel
That's "new"
#
sknebel
That too
#
sknebel
But some of this also applies if someone logs into your site to access content
#
[fluffy]
It was a lot simpler when the spec was just around “okay here’s how to send a ticket to someone to redeem, let’s not worry about an automated flow” but now folks are building things with an automated flow.
#
[fluffy]
At least for me, all of this conversation stems from someone who was very interested in the provisional “request grant” flow that I’d sort of half-assed on https://github.com/indieweb/indieauth/issues/87
#
Loqi
[fluffy-critter] #87 Standard mechanism for requesting a ticket auth ticket grant?
#
sknebel
E.g. if my site says at the end of the flow that I'm a.com/even and your ACL says "access for A", it's a similar problem, right?
#
[fluffy]
For some reason they keep on sideband talking with me about this over email and I need to get them to come here to discuss it to a wider audience.
#
sknebel
(sorry for being off and on, on the move and typing on phone)
#
[fluffy]
Yeah ACLs are very implementation-dependent and the token grant needs to know what identity it’s being granted for
#
[fluffy]
The core TicketAuth protocol was written with the assumption that we already know the canonical profile URL and that we can look up the ticket endpoint from that. Which is a great assumption for the “site owner grants access to someone” flow. But it falls apart when it comes to having someone *request* that a ticket be granted to their arbitrary URL.
#
[fluffy]
ah, it looks like he’s been here before (omz13), just not very active.
epoch joined the channel
#
sknebel
Ah yeah, I have seen that user name somewhere
#
[fluffy]
Yeah, he emails me about TicketAuth a lot. Anyway I just asked him to bring the conversation here so I’m not the single point of contact representing all of IndieWeb. 🙂
#
jacky
the fluffyweb
#
[fluffy]
I mean that’s kind of why github.com/PlaidWeb exists 😉
#
[tantek]1
[fluffy]++ and spoc--
#
Loqi
spoc has -1 karma over the last year
#
Loqi
[fluffy] has 7 karma in this channel over the last year (28 in all channels)
#
[tantek]1
to be clear Spock++
#
Loqi
Spock has 1 karma over the last year
#
jacky
single point of contact
#
[fluffy]
oh, contact
barnaby, justOkay, rockorager, [chrisaldrich], [aciccarello] and [tw2113_Slack_] joined the channel
#
[tantek]1
thanks snarfed!
[snarfed] joined the channel
#
[snarfed]
tantek++ mozilla web vision looks awesome!
#
Loqi
tantek has 25 karma in this channel over the last year (77 in all channels)
[naturestudy] joined the channel
#
jacky
been thinking about what kind of stuff to stream next
#
jacky
I recently did some stuff for lighthouse (mainly going over the wm spec and aiming to implement it)
#
jacky
but I just also finished that up on the side
#
[tantek]1
IndieWeb-relevant point in this blog post too: https://blog.mozilla.org/en/mozilla/mozilla-webvision-future-of-web/
#
[tantek]1
"_Make it easy for anyone to publish on the web_: While early websites were relatively simple and easy to build, the demands of performance and high production values have made the web increasingly daunting to work with. Our strategy is to categorize development techniques into increasing tiers of complexity, and then work to eliminate the usability gaps that push people up the ladder towards more complex approaches."
#
[tantek]1
and: "_Give users the power to experience the web on their own terms_: The web is for users. In order to fulfill that promise we need to ensure that they, not sites, control their experience"
cybi joined the channel
#
superkuh
Moz gave up on that at version 37.
TonyG1 and tetov-irc joined the channel