I am sure it was discussed here before, but I can’t find a good way to search this community.
Are there any arguments against having a user’s identity federate, and be compatible across platforms?
For example, let us say I sign up with my instance, matcha_addict@lemy.lol
But what if I go on mastodon, and I want to have my own micro blog. Or maybe go to write freely and post some blog posts. I’d have to make a different account on each one.
What if mastodon or write freely could just let me log in with my lemmy account (or lets call it federated account). This has several benefits:
- users don’t have to scratch their head on if I am the same person or not across these platforms
- theoretically, someone following my feed can get updates on what I do on multiple platforms
Now I understand this would be difficult to implement and iron out all the edge cases, but am I missing anything on why it wouldn’t be a desirable feature, given it is implemented?
It is a matter of responsibility. If you can log into any lemmy instance or mastodon server with the same account, then which server takes responsibility for your actions in the fediverse?
I have seen instances be defederate from because of their lax account creation requirements, or because of harrasment from users from a specific instance.
If an account can log into any instance, then who is responsible for banning the account?
It is a matter of responsibility. If you can log into any lemmy instance or mastodon server with the same account, then which server takes responsibility for your actions in the fediverse?
This is a good point and I should clarify: in this model, you wouldn’t get open access to any instance. The instance has to explicitly trust (white list) instances from which it will accept log ins. It would be like federation is done today, but the lists would be separate ideally.
Another model is it could do it on a case-by-case basis on the user level instead of instance level. But it would still enable the user to keep their dame ID and original domain.
It will be difficult to implement and pretty much at the end of the list for the software you want to implement.
Users most of the time dont want to get identified ( some are here because of the privacy ) and if you want to get identified you can just use PGP signing.
PGP signing is cool but it does not grant the benefits I was talking about unfortunately :(
Yeah what you are directly talking is some sort of SSO login for each software.
It would be ideal If the big activitypub platform stacks like mastodon, Lemmy, etc could agree on some standard like a federated OIDC or DID approach for all authx/authn functions. then fediverse users could get cross-platform and even cross-instance logins “for free”
Why does it actually matter? If you’re that important, you should have your own domain and instance
I already talked about why that matters in my post (didn’t mention anything about a person’s importance), but I’m happy to clarify and expand on it!
To summarize again, this would allow users to follow a person across platforms. Part of the benefit of the fediverse is I can choose to get content from a microblogging platform as well as macro blogging or threaded like lemmy. It would be a good feature for me to be able to follow someone across all federated platforms without having to scavenge for them.
Moreover, it would allow me to use other types of platforms without having to sign up on each one. This would also be useful for instance admins. If instance A trusts instance B, then it can allow instance B users to sign in without having to sign up separately.
This could also mean that instance A could be an identity provider only
Ooh that’s nice. Wasn’t Kbin trying to do this?
AFAIK, the only practical thing in the way of having a separate server that just hosts identity accounts for all types of fediverse content (while the content itself is hosted on other servers) is that your host server is responsible for presenting the interface through which you view the rest of the fediverse, and the interfaces are specialized for a particular content type. You could have a server running a variety of fediverse software (mastodon, lemmy, etc.) which automatically generates similar accounts for each user on each service, so users could sign up once and then switch interfaces; but I think the rest of the fediverse would still treat them as separate identities.
I would think that it’s naturally an opt-in feature and therefore essentially fine with only a practical upside.
So if every users would spin up their own instance or “email server” like “me@matcha_addict.com”, could that actually work? Or would that break the activity pub protocol with too many instances?
AFAIK you can already sign into pixelfed with your mastodon account. It is a good idea, I think the only problem would be you would be completely reliant on Instance and if that goes down everything is gone
I agree, but reliance on an instance is already a big issue.
Theoretically, if this gets implemented, it could be possible to federate the ability to sign up elsewhere, or at least make your user downloadable and sign up with it elsewhere
IMO, if you choose a common username (except for alt accounts) for all your platforms (in my case, dch82) it’s fairly easy to find all the accounts. If you want to, you can also link your other platforms in the bio.
If you choose a username, and I sign up with your same username before you do, then now you’re screwed. So I agree this is a solution, but it is not without faults. No one prevents someone from signing up with your username (either maliciously or they just liked the same name)
That’s going to be a problem whatever solution you come up with, because of the federated nature of the lemmy system.
There’s no central authority to hand out usernames, so if two people sign up to different instances with the same username, any design which didn’t attach instance name to each username would fail. The only way around it would be for each instance to contact every other instance which exists, including the ones which haven’t federated yet, and negotiate ownership of the new username, and that’s just not possible
That’s fine. I may be matcha_addict@lemy.lol someone else might be matcha_addict@someOtherInstance.com, but I am the only matcha_addict@lemy.lol and anytime someone sees that full ID, they know for a fact it’s me. But if they see matcha_addict@mastodon.social, they cannot know for sure.
You can also setup a little linktree page and just have all your profiles link to that so you don’t have to update 10000 links on every profile.
Separating identity from instance was invented in 2011, first implemented in 2012, and it has been stable since 2013. Zot protocol, Red, Red Matrix, nowadays known as Hubzilla. It is called nomadic identity.
Separating identity from platform is a current WIP: Nomadic identity is to be introduced to ActivityPub and then made project-agnostic. The idea is to be able to clone your Lemmy account to Mastodon and Pixelfed and Mobilizon and Hubzilla and Funkwhale all the same. You won’t be able to use all features of everywhere everywhere (go ahead, try to edit a Hubzilla wiki or article or webpage on Lemmy, haha), but it’ll be the same identity. Still, it would require one account on each server on which you have an instance of your identity.
But what you’re talking about is full, unlimited user write access to over tens of thousands of instances of over 100 projects. Like, visiting any one of these tens of thousands of servers and being able to do absolutely everything a locally registered user can do, no exceptions, right away.
Like it or not, but this will require a local account. Even OpenWebAuth doesn’t grant you full local user write access, nor does it allow for drive-by, on-the-spot creation of full-blown local user accounts on any instance, regardless of registration of local user accounts is allowed or not. Like, you can’t just visit hub.netzgemeinde.eu and, within a split-second, have a local user account with the same login credentials as on lemy.lol and a nomadic clone of matcha_addict@lemy.lol so it’s the exact self-same Fediverse identity on Lemmy and Hubzilla.
So it’s either this. Immediate drive-by nomadic cloning of your logged-in Fediverse to any instance that you visit for the first time.
Or every Fediverse user must have a user account on every instance of every project out there, and their Fediverse identity must be nomadic everywhere and cloned to everywhere all the same.
Like, you register an account on lemy.lol. Simultaneously, the same account with the self-same credentials will be created on all other Fediverse instances out there. Immediately afterwards, whatever will contain your identity on Lemmy will automatically be cloned to all these other instances of everything. That way, you can immediately use all instances of all projects of the Fediverse just the same.
Or the Fediverse has only one central login server which controls the credentials for all instances of everything out there. You don’t register with lemy.lol, you register with this central behemoth. And all tens of thousands of Fediverse instances connect to this central server for login credentials. And, again, your identity with all your data will have to be cloned and mirrored all across the Fediverse.
By the way, I’ve cloned Hubzilla and (streams) channels before. One channel from one server to one other server. This can take multiple minutes even with not so much content. Guess how long it’ll take to clone one identity container from one Lemmy instance to 20,000++ other instances out there.
Yeah sadly
My potential argument against it starts with asking where the credentials are stored for authenticating this identity.
Currently the home instance stores the hashed password and performs authentication.
In a way, the identity “belongs to” the place that does authentication, which now happens to be the instance.
If identity is decoupled from an instance, that means authentication decouples from an instance.
If the identity “belongs to” the fediverse as a whole, then that means the fediverse as a whole has an authentication mechanism.
Unless we can come up with a distributed authentication mechanism, that means the fediverse as a whole has some authentication service, as in one, which means centralized.
This therefore breaks decentralization, unless the authentication is somehow handled in a distributed way. Maybe consensus or something on a hashed password? But if those hashed passwords are stored in a distributed manner, then you’d need a super long password to prevent rainbow table attacks on the passwords, given the hashed values would essentially be public information.
Maybe public keys are stored in a blockchain? I don’t know this is beyond me in the details.
But to summarize the problem at a data model level, an identity belongs to an instance, because the instance can authenticate them. If the identity now belongs to the whole fediverse, then the whole fediverse needs to be able to authenticate them, which if not handled correctly could lead to centralized authentication, centralized banning, censorship, reddit, etc.
That’s a solved problem from a technical perspective. Use OAuth. Just look at “sign in with google/facebook/github/etc”
Who is the OAuth provider in this case? The instance you sign up on? That’s already the case.
Yes, the instance you signed up on would be the identity provider
Then the identity still has a home.
I’ve implemented Oauth and you still have an identity provider.