-
Notifications
You must be signed in to change notification settings - Fork 47
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ATProto: indicate that we don't serve OAuth #1762
Comments
Hi @QuinnyPig! I'm a big fan of your work! This is a funny one. In some ways, eg in that it hosts user repos, Bridgy Fed is a Bluesky PDS...but in many other ways, like this one, it's not. I don't support users OAuthing or otherwise logging into clients with bridged accounts because those accounts really are not normal accounts. They don't support direct usage or writing arbitrary records like normal PDSes do. Bridged accounts are only intended for Bridgy Fed itselt to drive them, strictly mirroring whatever the "original" (eg fediverse) account does. https://fed.brid.gy/docs#use-like-normal |
Ah, I got you. Now the challenge becomes "how do we communicate that in an error message so that the errors in client logs don't drive every BlueSky developer down the same insanity-inducing rabbit hole that I just spent two hours in?" |
Ugh, yes, definitely agreed. If you find a programmatic way for Bridgy Fed to communicate to clients, "yes, this is an ATProto PDS, but no, you can't log into your account here," I'll happily implement it! |
HTTP 405 Method Not Allowed with empty You could serve a plaintext body that says "Bridgy Fed intentionally cannot be used as identity provider." to clarify further. |
Or alternatively, you could implement the entire flow and then present the user who tries to log in with a message that this is not supported instead of a login form. That would require no special handling at all on the part of app developers and likely wouldn't generate logged errors at all (but wouldn't be programmatically detectable). |
Both true! But if we're expecting clients to add support for whatever scheme we come up with, I'd think our current status quo of returning 404 for |
According to the AT Protocol OAuth spec, every PDS (Personal Data Server) must implement OAuth endpoints at
/.well-known/oauth-protected-resource
. However, atproto.brid.gy currently does not implement these endpoints.This is causing issues with OAuth clients that try to authenticate with Bridgy-federated handles. For example:
cowperthwait.sfba.social.ap.brid.gy
correctly points to a DID (did:plc:3rdqbdhx5ksan4ehd7ddw7rs
)https://atproto.brid.gy
/.well-known/oauth-protected-resource
fromatproto.brid.gy
to find the OAuth serverAccording to the spec at https://atproto.com/specs/auth#authorization-servers, every PDS must:
/.well-known/oauth-protected-resource
endpointauthorization_servers
array pointing to the OAuth server (in this case, probablyhttps://bsky.social
)From where I sit, I think are two ways to fix this:
atproto.brid.gy
(recommended if you want to eventually support your own OAuth server)bsky.social
since that's where the auth happens--at least until ATproto federation kicks into gear.The text was updated successfully, but these errors were encountered: