RE: mastodon.social/@mcc/116047636

I can quite firmly say that this isn't the case anymore. AT Protocol's OAuth had a bit of a rocky start because of permissions, but permission sets are now pretty much generally available.

Basically this was a UX issue where users believed an app password was more secure than OAuth.

But now more and more AT Protocol applications are using OAuth since they can request granular access that way. i.e., "I want to just write into this specific collection or call these specific XRPC endpoints" is now a thing.

atproto.com/specs/permission

AT Protocol doesn't use OIDC, because OIDC doesn't make a whole lot of sense in decentralized applications β€” there are parts that do, but also parts that don't. For example, what do you return for the profile response when there is no global "profile"?

OIDC also mandates JWTs in places where it may not make sense to use them (e.g., ID Tokens are JWTs as are refresh tokens in OIDC)

AT Protocol is however implementing OAuth 2.1, which incorporates many security considerations.

I think we can probably borrow both the prompt, login_hint and id_tokens from OIDC, but I don't think full OIDC would actually make sense here.

It's just like how Mastodon now borrows some ideas from OIDC whilst not fully doing OIDC. (see the profile scope and userinfo endpoint)

OIDC works well in more centralized systems, OAuth 2.1 with DPoP works better for decentralized systems.

0

If you have a fediverse account, you can quote this note from your own instance. Search https://hachyderm.io/users/thisismissem/statuses/116048071189722509 on your instance and quote it. (Note that quoting is not supported in Mastodon.)

Okay so when I complained above about Bluesky apps having you put in your password instead of OAUTHing on your PDS as they shouldβ€” my offender #1 was Bluesky/Blacksky Social.

It turns out Blacksky fixed this literally this morning, six hours before I posted,
and the reason it didn't work when I tested it was my PDS hadn't picked up an update yet.

It works now.

…although I regret the error, this one might not be my fault 🀷

hachyderm.io/@thisismissem/116

0
0