I am publishing a small #ActivityPub / #fediverse project: https://fietkau.software/webfinger_canary and @canary
-
Marcus Rohrmoser 🌻replied to Julian Fietkau last edited by
Hi @julian,
if you can't use them, it's because of broken servers. How do you improve 3rd party servers? -
@julian oh the hover card is correct, yes.
i mean the URL preview that the browser goes to. as in, if you hover a link to www.example.com in any site, the browser shows you the link target in the bottom left of the screen.
So presumably the URL actually does have to be
wrong.webfinger-canary...
(which then redirects? to the correct place) -
Julian Fietkaureplied to Marcus Rohrmoser 🌻 last edited by
@mro Ah yes This project was put together to raise awareness about the feature and help platform developers test it. Broken servers will always exist, hopefully I can reduce their number by helping their developers with documentation and advocacy.
-
@julian
Client support is also interesting to look at. With @jon I'm sometimes seeing funny leaps in displaying or addressing the account.Also the split between @ jon @ allmende.io and https://social.allmende.io/@jon isn't really intuitive.
@canary -
Marcus Rohrmoser 🌻replied to Julian Fietkau last edited by
Hi @julian,
I'd like to test @aSeppoToTry, how can I? -
@5225225 Alright, that's not _as_ bad, but still strange.
When I hover over a mention while logged into my server, the link goes to a local domain like this: https://fietkau.social/@canary@correct.webfinger-canary.fietkau.software So if I click on the tag, I get a local view of the profile. I can't think of a situation where a direct link to the "wrong..." hostname should appear anywhere in a post.
(Using the "wrong" URL for the "view on original server" link on the profile is a known Mastodon bug. It links to the ID instead of the URL.)
-
Julian Fietkaureplied to Marcus Rohrmoser 🌻 last edited by
@mro @aSeppoToTry To test the split-domain handle on a remote actor, you can look up @canary in your platform and see what handle it shows you. I just gave it a try, see attachment.
It currently shows the wrong hostname. That means it's using the ActivityPub ID to construct the handle, when the handle domain should be coming from the WebFinger result. See my checklist https://correct.webfinger-canary.fietkau.software/#developers or the SocialCG report https://www.w3.org/community/reports/socialcg/CG-FINAL-apwf-20240608/#reverse-discovery for details on how to fix it.
Btw: very cool project!
-
@yala @jon I'm not surprised some clients would get this wrong somehow.
Also, some platform developers take a stance that custom domains should not be allowed, or that someone's handle domain should not be "too different" from their ActivityPub server's domain. I disagree and think people should be allowed to go wild with custom domains.
-
-
@yala @jon In the current scheme supported by Mastodon and some others, proof of domain ownership happens by serving a specific path (the WebFinger endpoint) on the target domain. This can be done through an HTTP redirect to make it as easy as possible. But yeah, DNS-based validation would do the job as well, it's just less common outside of Bluesky.
-
Marcus Rohrmoser 🌻replied to Julian Fietkau last edited by
Hi @julian @aSeppoToTry @canary,
hm, interesting. I doubt there is a correct answer. Because #Webfinger doesn't care about #ActivityPub and ActivityPub doesn't care about Webfinger neither specifies how to construct the handle from a profile document. It would have to be explicitly mentioned which it isn't. All other is idiosyncratic, proprietary oracles.According to https://www.w3.org/TR/activitypub/ the actor id is the canonical identifier.
With best faith #Seppo combines the preferredUserName and the profile document's domain. What else could you do?
-
Julian Fietkaureplied to Marcus Rohrmoser 🌻 last edited by
@mro The actor ID should be the thing uniquely identifying an account, yes. However, in conversations we use tags/handles and not AP IDs, so we gotta construct these handles somehow. Your approach, using the AP host, is equally as idiosyncratic as using the WebFinger host. Both ways exist in the wild – Pixelfed, Misskey and Friendica do it the way you do; Mastodon, GoToSocial and Iceshrimp do it the way I do. I just prefer this way because it lets people use their domains more easily.
-
Marcus Rohrmoser 🌻replied to Julian Fietkau last edited by
Hi @julian,
but how do you (they)? The actor just doesn't know the handle domain. Strictly spoken not eve the local part but there seems to be consensus to use the preferredUserName. Serious question. -
Julian Fietkaureplied to Marcus Rohrmoser 🌻 last edited by
@mro You do a WebFinger request on the AP host domain, and its response will give you a subject with the correct handle domain. See for example this account: https://toot.kif.rocks/@team and its WebFinger response: https://toot.kif.rocks/.well-known/webfinger?resource=acct:[email protected] This is a Mastodon split-domain setup.
The process is described here: https://www.w3.org/community/reports/socialcg/CG-FINAL-apwf-20240608/#reverse-discovery (step 4 is important for this)
-
Marcus Rohrmoser 🌻replied to Julian Fietkau last edited by
Hi @julian,
the document is a report from @evanprodromou mid 2024, not a standard and not part of #AP. And at step 4 it reads "4. Optionally:". But it proposes a solution - thanks for bearing with me. So the #rfc7033 subject: "acct:[email protected]" would be it.Feels hacky, IMO the profile should be explicit about the handle just like the way round #webfinger is explicit about the actor id.
-
Julian Fietkaureplied to Marcus Rohrmoser 🌻 last edited by
@mro There is a suggested FEP to include the WebFinger resource in the actor document: https://codeberg.org/fediverse/fep/src/branch/main/fep/2c59/fep-2c59.md But I have not seen it implemented anywhere. In the meantime, the hacky approach works and is reasonably popular.
I don't want to push you into supporting something you don't want to support. Just keep in mind that your software is showing different account handles than Mastodon for some users.
Do you want me to add Seppo to the overview table anyway?
-
Marcus Rohrmoser 🌻replied to Julian Fietkau last edited by
Hi @julian,
a pity @silverpill doesn't use https://www.w3.org/TR/xmlschema-2/#anyURI and doesn't keep the acct:[email protected] from https://www.rfc-editor.org/rfc/rfc7565.html.And yes, I'd be happy if you add #Seppo!
-
Julian Fietkaureplied to Marcus Rohrmoser 🌻 last edited by
@mro I see now that you were active in the discussion thread: https://socialhub.activitypub.rocks/t/fep-2c59-discovery-of-a-webfinger-address-from-an-activitypub-actor/3813 my bad for retreading ground you already know.
-
silverpillreplied to Marcus Rohrmoser 🌻 last edited by
-
@mro Is it related to me trying to follow Seppo actor?
I just received a Create(Note) where Note doesn't have
attributedTo
property (but is hasactor
property, which should be used only on activities afaik).