solid / authorization-panel

Github repository for the Solid Authorization Panel
MIT License
19 stars 20 forks source link

define a 2nd relation for ACRs to go with "acl" #248

Open bblfish opened 3 years ago

bblfish commented 3 years ago

On proposal

WAC, ACP

note: this could also be used by ACP. It would allow ACP to have virtual ACRs for a resource that are not created until needed, with a fallback to a default further up the hierarchy.

Details

There is currently a problematic tension in WAC between two things the acl link can point to:

  1. it can point to the effective acl so that </foo/bar/baz/x> could return a Link: </.acr>; rel="acl" header
  2. it could point to a not-yet-existing ACR, that a client with control access could edit if it wanted to specifically change rules for that resource

Both of these have problems, even if combined:

Link: </.default.acr>; rel="acl"
Link: </foo/bar/baz/x.acr>; rel="acl"

The problem comes from there being two needs to discover an ACR:

It is very likely that most resources will receive hugely more requests - to speak american english - from clients interested in Read modes than for clients wishing to change the ACL. So that would indicate that acls should link to the effective ACR. On the other hand it is critical the clients with Control access be able to set ACLs for individual resources.

One way to solve this is to have another link relation type in addition to the "acl" one we currently have. Call this relation type "control". Then we could have the following

Link: </.default.acr>; rel="acl"
Link: </foo/bar/baz/x.acr>; rel="control"

This would allow servers to point clients to the active ACR, without having to create pretty much empty resources everywhere. Since it is likely that using default ACRs is more maintainable than having ACR's for every resource, this seems like a good pragmatic way to solve the dilemma.

Acceptance criteria

What actions are needed to resolve this issue? (checklist)

csarven commented 3 years ago

https://github.com/solid/web-access-control-spec/issues/99#issuecomment-913432659