MWS: Auth^2 (Authentication/Authorization) #7977
Replies: 4 comments 7 replies
-
I will start by saying I am fairly well versed in the tech powering most Web2 Auth (day job), and also learning new "Web3" models of Auth^2 - primarily the decentralized and local-first approach taken by the Fission.codes crew. Something @Jermolene wrote in the parent-thread made me think of my struggles building web2 style Auth into a websocket-server-plugin architecture based on Jed's "Bob Server":
Of course, TW is a robust data store, why not just hold everything as tiddlers? It is following the TW philosophy. I took that approach. It was stable enough... that I then got lost in conflict resolution on synchronous changes, and also the realization that the "tiddler revision count" resets upon Server restart (making any disconnected client still in memory instantly have syncing bugs). At this time I would argue following the Fission.codes "Distributed Itentity + UCAN" id+capabilities model. (Or similar.) This could be as simple as putting an Auth flow into the rendered HTML page "before the wiki boots". This would check if the current user+browser(device) or "agent" is already authed AND AS WHO without checking the internet. If anon, it could redirect to the Fission Auth lobby to bind an email address you own to a username and this device. After that one internet flow, Authentication is always a local check against a DID's self-reporting hash (did this identity document get changed or is it genuine?). Similarly, now we can manage permissions for our "group" in more flexible ways if we can rely on self-signed "I have XYZ access" documents to go along with Identity. And these data structures can be kept as tiddlers without as much worry about that data "leaking" - due to the "self-signed self-destructs-if-you-edit-it" design. Finally, I saw this blog post from an MS Engineer doing an autopsy on the WORST AUTH DESIGN EVER TO MAKE IT TO PRODUCTION, and it frankly gave me the void-shivers as to how much Account/Auth data you could get for other users by changing one query parameter: https://www.troyhunt.com/how-spoutibles-leaky-api-spurted-out-a-deluge-of-personal-data/ |
Beta Was this translation helpful? Give feedback.
-
I think, we should make a clear differentiation between Authentication and Authorisation. IMO this are 2 completely different things and should be covered in separated threads. |
Beta Was this translation helpful? Give feedback.
-
Here are some resources that clearly explain the current OIDC model, and also how misconfiguring your Auth opens vulnerabilities. Good pictures too! https://salt.security/blog/traveling-with-oauth-account-takeover-on-booking-com https://salt.security/blog/a-new-oauth-vulnerability-that-may-impact-hundreds-of-online-services https://salt.security/blog/oh-auth-abusing-oauth-to-take-over-millions-of-accounts |
Beta Was this translation helpful? Give feedback.
-
Still researching this. I think the best approach I have seen so far is from the Going to read through those, and see if I can come up with a model that retain tiddlywiki's decentralized own-your-own-data focus. |
Beta Was this translation helpful? Give feedback.
-
A discussion thread to dig into the topics of Authentication ("who you are") and Authorization ("what you can do") in context of the new Mukti Wiki Server efforts.
Beta Was this translation helpful? Give feedback.
All reactions