Skip to content

Unable to specify a policy where child resources can be accessed if there are permissions specified for the parent container. #48

@argahsuknesib

Description

@argahsuknesib

With the implementation of the Privacy Preserved Stream Monitoring Service, stream events are written to a particular container. The container stores the stream events, which are then fetched with a GET request to do further stream reasoning.

To write a policy allowing the stream writer service to write stream events in a container the policy specified is,

ex:replayerPolicy a odrl:Agreement .
ex:replayerPolicy odrl:permission ex:replayerPermission .
ex:replayerPermission a odrl:Permission .
ex:replayerPermission odrl:action odrl:modify, odrl:read, odrl:create, odrl:append .
ex:replayerPermission odrl:target </pod/accelerometer-data/> .
ex:replayerPermission odrl:assignee <replayer#me> .
ex:replayerPermission odrl:assigner </pod/profile/card#me> .

Doing either POST or PUT requests will create resources which will be stored inside the /accelerometer-data/ container.

To read the stream events stored in these resources, with a GET request. Currently, a new policy check has to be done for each of the resources, even though the odrl:assignee has the right to read the parent container i.e. the /accelerometer-data/.

This creates extra policy check overheads, as well as uncertainty on how to specify the policies as then one has to write the policy for each of the files on the fly. Writing the policies can be cumbersome for each of the child resource created, as then the flow will be,

  • Stream writer service writes to the pod with a POST request.
  • Stream writer service updates the policies and appends the policy the exact child resource to be read by the service wishing to do a GET request (e.g. the monitoring service).
  • The Authorization Service maintains a view to be updated with the latest policy being written.
  • Monitoring Service does a GET request for the latest event, and the AS service evaluates the access for the exact child resource.

In a streaming scenario, with streams creating more than 4 events per second such flows can't be realized without adding additional latency which decreases the usability of the service.

Is there a way where one can specify the policy such that one can specify the policy on the container, and is allowed to read the child resources present inside the container as well?

Thanks!

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