webfinger / webfinger.net

webfinger.net website
https://webfinger.net/
82 stars 15 forks source link

Is webfinger able to distinguish between 2 services on the same URI? #26

Closed r3pek closed 1 year ago

r3pek commented 5 years ago

I really don't know if I'm asking in the right place, but I need to understand this better. I'm trying to understand why all this new federated social sites (mastodon, diaspora*, friendica, etc), are using webfinger to find the other server, but yet, it looks like all are requiring an unique ID to each other. If didn't make myself clear, it's impossible at the moment to use the same ID (say acc@example.com) on all this networks, because the namespace would collide (well, there can only be one .well-known/webfinger endpoint in one domain) and all of them provide their own implementation of webfinger for the federation part.

Now, I don't know if this is "by-design", but it really seams weird that something that is federated and "advertised" as being able to be self-hosted, we should assume that one user can have several of this networks parked on his own domain, and that breaks the "single-id-to-rule-them-all", since it doesn't make much sense to exist an acc@mastodon.example.com, acc@diaspora.example.com, acc@firendica.example.com, since they're all the same person.

Now, i stumbled across this old wiki page, talking about SRV records, but still not making any assurance to use them. Since that is old, I'd like to ask what have you guys decided (and the why possibly?) in this matter, since the usage of SRV records could solve the "single-id-to-rule-them-all" issue. One other question is if this should be done on a webfinger level of application level, say, if a possible SRV lookup should be core to the webfinger spec, or if it could be delegated to the application using it.

I know that there are at least 2 bugs that I know of about SRV records on this networks, one for mastodon and one for diaspora, but one of them is really old and points the wiki page mentioned earlier, and the other basically says that it "would defeat the purpose of webfinger", but somehow I'm failing to understand how webfinger can solve this issue... (or maybe this isn't even an issue :( )

Sorry for the long post.

pfefferle commented 5 years ago

Short answer: one acct URI can be used for all plattforms that you mentioned. I am working on several WordPress plugins, to make WordPress compatible to mastodon, gnu.social, diaspora and friendica. Most services support one protocol, so it doesn't matter at all and if they don't, they can extend the WebFinger JRD/XRD file with their specific endpoints. It only breaks if two services use the same rel for different functionalities (but this is not a problem of the WebFinger protocol).

pfefferle commented 5 years ago

Here is my JRD file as an example: https://client.webfinger.net/lookup?resource=pfefferle%40notiz.blog

You can find OStatus endpoints , that are used be Mastodon, gnu.socila and Friendica (salmon, ostatus, webfinger) and you can find Diaspora endpoints (http://joindiaspora.com/seed_location, http://microformats.org/profile/hcard and also salmon).

r3pek commented 5 years ago

was that "hand written" or you use the provided webfinger servers for those services? Yesterday I actually tried to build a "Webfinger Aggregator" to merge several responses together, but stopped working on it because mastodon and diaspora have "rel"s in common (OStatus for example). Since I'm not sure which one is needed, I decided to stop coding ;)

Is an "aggregator" a solution to a server that you have to configure yourself? (and in this case, being able to maintain all IDs as account@example.com)

pfefferle commented 5 years ago

Oh, I see. It is a self generated WebFinger file, but I implemented the functionality of all the mentioned services by myself... I do not use the official diaspora, mastodon, ... sources, but made my WordPress compatible with most of them. If you want to install all of these services and use one identifier for all of them, this is indeed a problem, because you have several similar rels that are pointing to different API endpoints.

r3pek commented 5 years ago

Exactly. Problem is I don't see documentation on how to build one and what rels are needed for what services, so, we're kinda with our hands tight on this :P

pfefferle commented 5 years ago

Here are some docs:

willnorris commented 5 years ago

If diaspora and mastadon are using the same rel values in their webfinger documents, then in theory they should be implementing the same protocol. And if so, then you shouldn't actually need to install both. That's the whole promise of the distributed web/fediverse/indie web/pick your buzzword. Standardize on the protocols themselves, and you can run whichever implementation you want to (for example, @pfefferle built his own on top of WordPress). Now of course, in practice we're still some ways off from having a diaspora instance talk to mastadon.

willnorris commented 1 year ago

Closing this since there doesn't seem to be anything more to do. However, with the current surge of interest in Mastodon, Fediverse, and ActivityPub, the discussion is still most certainly still relevant. Two servers which advertise support of the same protocol (typically through rel value and/or content-type) should interoperate.