Skip to content

Clarify use of acl:default in the WebAC inheritance algorithm #55

@acoburn

Description

@acoburn

The acl:default predicate is described differently in various places.

Some of the locations where it is defined include:

Depending on which definition is used, the result leads to entirely different conclusions about how ACL inheritance works. solid/web-access-control-spec#63 is a good example of the ambiguity here.

There are (at least) two open questions from an implementation perspective.

  1. In the triple <#auth> acl:default <URL>, does the value of the object node matter? Must the object node point to the URL of the resource for which this ACL is defined? What is the implication of that object node pointing to some other URL? In that case, would that acl:Authorization statement be ignored?

  2. Is an acl:Authorization inherited only if acl:default is present? The vocabulary document suggests the answer is yes; the Solid WebAC spec document also suggests the answer is yes (but only in an example); discussion on the issue referenced above suggests that the answer is no. That is, if a resource lacks its own ACL resource and the WebAC algorithm checks the parent container, does the algorithm stop at the parent container if that parent ACL contains any acl:Authorization statements or only if it contains any statements that also include acl:default? There appear to be conflicting ideas about this.

I would like to emphasize that clarification of these points is really important.

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions