Working to Decentralize FedCM
Working to Decentralize FedCM
What you’re missing is that OIDC is innately centralized and FedCM, in particular thanks to this work, isn’t.
This is all building on or complementing the same underlying OAuth standards, like the CIMD spec that Emelia originally intended for adoption into Mastodon/ActivityPub to set the stage for decentralized OAuth, but it was never brought in. The AT protocol on the other hand adopted it into their decentralized oauth-atproto standard, which is on track to become a protocol-agnostic oauth-dweb standard.
Anyone who cares about decentralized software should be dissatisfied with how OIDC works. If you wanna use your primary fediverse account to log into other fedi apps, this work is for you.
This specification defines a mechanism through which an OAuth client can identify itself to authorization servers, without prior dynamic client registration or other existing registration. This is through the usage of a URL as a client_id in an OAuth flow, where the URL refers to a document containing the necessary client metadata, enabling the authorization server to fetch the metadata about the client as needed.
OIDC is innately centralized
Huh, that’s not my understanding. I was there when it first came out, and the whole point was to allow you to use any URI of your choice as an authenticator. Let’s see what the first line of Wikipedia has to say:
OpenID is an open standard and decentralized authentication protocol
Huh. 🤔
Forgejo has a feature (that people usually disable) where you can bring your own openid connect url and use it to auth. So if I have my own OIDC provider I am self hosting, I can just use that to log in.
Most people only use it for google and microsoft and whatnot but it’s very possible. I don’t realkly see what FedCM offers that OIDC doesn’t or can’t, or why we shouldn’t be adding features to the existing and popular OIDC instead.
This requires manually enabling every additional provider.
No, it doesn’t. The docs are confusing on this, but forgejo has two methods to enable oauth/oidc. One is to manually enable them, but there is a second, where people bring their own oauth link.
The docs contain 3 things related to oauth:
You might be confusing the old OpenID with OIDC (short for Open ID Connect), which is based on Oauth2, an entirely different technology.
OpenID was definitely more decentralized compared to how OIDC is commonly used these days, but OIDC has various little know options to do similar things.