You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jena.apache.org by Andy Seaborne <an...@telicent.io> on 2023/04/18 12:27:42 UTC

Preview release - RDF ABAC data access

This is a preview open source release from Telicent of a system for 
data-level access control for Apache Jena Fuseki.

     https://github.com/Telicent-io/public-rdf-abac

The license is Apache License 2.0.

ABAC - Attribute Based Access Control - allows data owners to define and 
manage access controls. Different parts of an RDF dataset can be given 
different access requirements. These requirements control the visibility 
of the data for read access (SPARQL query or Graph Store Protocol). The 
access-controlled dataset is a view of the underlying RDF dataset.

The access requirements are expressed as labels on the data. Every 
triple has a set of labels associated with it. These labels can be 
specified at the triple level, or on all triples with a specific 
property, or on triples with the same subject.

A request has a set of attributes for the user (or software system) 
making the request. Triples are visible to the read request only if the 
attributes of the request satisfy the requirements specified by the data 
labels.

The access controls are self-contained and can be transported with the 
data.

A local user attribute store for stand-alone operation is provided in 
this preview release.

   Request: "status=employee".
   Visible Data:
   :s :p :o  -- label "status=employee || status=contractor".


Hierarchies are provided whereby some attribute values imply other 
attribute values.

    public < restricted < company confidential < company private

A request at level "company confidential" has visibility of data 
labelled with "company confidential", "restricted" or "public".

   Request: "level=confidential"
   Visible Data:
   :s :p :o  -- label "level=restricted"


This is a snapshot of on-going work within Telicent and the system is in 
active use and active development. Telicent primarily uses per-triple 
labelling.

Documentation:

https://github.com/Telicent-io/public-rdf-abac/blob/main/docs/abac.md

This preview release is subject to design change.
This is a source-only preview. There are no public maven artifacts.

User authentication is not part of this system.

This preview release has restrictions:

* Data labelling only applies to the default graph.
* Per graph access is not yet provided
   (c.f. 
https://jena.apache.org/documentation/fuseki2/fuseki-data-access-control)

     Andy

https://www.telicent.io/