Skip to content

Enforce a secure default for client restrictions #292

@matthieubosquet

Description

@matthieubosquet

During the authorization panel on 2022-03-02, we discussed open by default client permissions being a security issue.

Currently, in ACP for example, an access mode can be granted without ever requiring a client to be matched. More specifically, the current axiom states:

An access mode MUST be granted over a resource if and only if in the set of policies mandating access over it:

  • A satisfied policy allows it; and
  • No satisfied policy denies it.

ACP Specification - 3.3.2. Granted access modes

That is, an access mode could be granted without even matching an agent (whether via a specific WebID or via the acp:PublicAgent matcher).

One way to restrict client access for an agent could be to enforce it via claims in the access token, for example, via adding a set of trusted web apps to a WebID document. However, declaring trusted web apps in the WebID document comes with some privacy issues as discussed during the authorization panel on 2022-03-02.

Another solution could be, for example, to require at least one acp:agent (could be implicit for the owner agent) and acp:client match for an access mode to be granted. One downside of that approach is that it would increase complexity of ACP implementations and begs questions such as: Would an explicit match in a noneOf matcher count?

The logical follow up question to this might be: Which context attributes must be closed by default? Does this requirement apply at the ACP spec level or at the Solid-ACP level (maybe WAC?) or as a best current practice?

How would we enforce this requirement from a WAC/ACL perspective?

/cc @elf-pavlik @acoburn

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions