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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions