<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Delegations in the Solid Dataspace: a proxy for rights delegation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sebastian Schmid</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Schraudner</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Harth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Fraunhofer Institute for Integrated Circuits IIS</institution>
          ,
          <addr-line>Nuremberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Friedrich-Alexander-Universität Erlangen-Nürnberg</institution>
          ,
          <addr-line>Nuremberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We focus on the problem how delegations in dataspaces building on Solid are realized. For this, we propose to use the Rights Delegation Proxy that shall ensure on the one hand privacy by keeping delegation details hidden, and on the other hand validate delegated actions against defined policies for legitimacy. We showcase our architecture in a scenario for giving a signature for a loan contract, where a natural person is delegated signature rights on behalf of an enterprise.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        the requirements delegators have for a delegation, a delegation should be (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ) private, so an
afiliate shall not necessarily be informed, whether a delegation has happened and who is the
delegate, (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ) legitimate, with every taken action by the delegate validated against the delegator’s
policies, and (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) complete, where every initiated action by a potential delegate shall receive a
response.
      </p>
      <p>Approaches exist to bring delegations to the Web, with a public online registry, e.g. the
German Commercial Registry1, where companies as delegators publish information on their
delegates, and afiliate look up the information at any time. Closer to dataspaces, an approach
for the International Data Space (IDS) [6] proposed the use of Verifiable Credentials [ 7], where
the delegator issues Verifiable Credentials for a delegate’s claim to act on behalf of the delegate,
with the evaluation of the claim done by the afiliate via cryptographic proof. In both cases the
delegate’s identity is made known to the afiliate to ensure a legitimate delegation.</p>
      <p>To describe data access and sharing in Solid, the most basic way uses access rights for
resources based on Access Control Lists2 (ACL) to ensure that specifically stated agents may use
the granted rights. Groups of agents can be described by using vCard groups3, but the hierarchy
stays flat to avoid nesting, while group members need to be shared to check for their membership.
A currently developed approaches for Solid is the Solid Application Interoperability4 that uses an
Authorization Agent to manage requests of agents based on ShapeTrees. If an agent’s intention
has to be captured, Open Digital Rights Language5 or Policy Language for Solid’s
Metadatabased Access Control (PLASMA) [8] can be used. Overall, considering privacy issues with
General Data Protection Regulation [9], a delegate’s identity and the delegation are revealed
to an afiliate to set the corresponding ACLs, despite the delegate’s potential interest to stay
hidden.</p>
      <p>As we see the SDS approach as promising to realize dataspaces, as Solid builds on Web
standards, is easily adopted, interoperable, and inherently decentralized, we propose to extend
Solid’s architecture on the dataspace application layer, where currently aspects of certification
and policy enforcement are lacking [5]: we propose the Rights Delegation Proxy (RDP) as an
approach for private and legitimate data sharing and delegations, where the overall architecture
shall be compatible with the architecture of the Web and allow automated validation and
execution of actions in a delegation. Our implementation of the RDP is available online 6.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Example scenario</title>
      <p>Consider the following example with the banking institution BigBank and the enterprise
SME, both as legal entities, and Alice, a natural person. The three actors are represented as
authenticated Solid agents and the delegation from SME to Alice is realized using the Rights
Delegation Proxy. The overall flow of messages is shown in Fig. 1.</p>
      <p>1https://www.handelsregister.de/
2https://solidproject.org/TR/wac
3https://www.w3.org/2006/vcard/ns#Group
4https://solid.github.io/data-interoperability-panel/specification/
5ODRL: https://www.w3.org/TR/odrl-model/
6https://github.com/wintechis/delegation-proxy
alice.solidcommunity.net
(delegate)
rdp.org
(RDP)
PUT /signHere?uri=bankpod.net
2</p>
      <p>Authorize proxy</p>
      <p>3
GET /policies
200 OK
s(mdeelepgoadt.onre)t ba(nakffpilioadte.n)et</p>
      <p>Existing business relation
1 pDoelfiicnye
Example: SME has to sign a loan ofer from BigBank. To receive the signature, BigBank
prepared a resource https://bankpod.net/signHere. As BigBank expects SME to sign
the contract, BigBank created an ACL signHere.acl with acl:Read and acl:Write rights
exclusively for SME’s WebID https://smepod.net/profile/card#me.</p>
      <p>
        SME defines a policy at https://smepod.net/policies that Alice, authenticated by her
WebID https://alice.solidcommunity.net/profile/card#me, has the right to sign
loan ofers from BigBank (
        <xref ref-type="bibr" rid="ref1">1</xref>
        ), where pre- and post-condition are given as Shape Expressions
(ShEx)7 that allow the structural description.
      </p>
      <p>
        Alice sends an HTTP PUT request to the RDP pointing to
https://bankpod.net/signHere to give the signature (
        <xref ref-type="bibr" rid="ref2">2</xref>
        ). The RDP receives
Alice’s authenticated request and her WebID. RDP gets (
        <xref ref-type="bibr" rid="ref3">3</xref>
        ) the SME’s defined policies, executes a
preflight request (
        <xref ref-type="bibr" rid="ref4">4</xref>
        ) and checks (
        <xref ref-type="bibr" rid="ref5">5</xref>
        ) the policies against the result of this request whether Alice
has a delegation for https://bankpod.net/signHere, and logs the request (
        <xref ref-type="bibr" rid="ref6">6</xref>
        ). As Alice
fuliflls the policy, RDP forwards the request to the specified https://bankpod.net/signHere
(
        <xref ref-type="bibr" rid="ref7">7</xref>
        ), but changes the authentication to SME. At BigBank, the request arrives from SME’s
WebID. As the ACL is set for SME the signature is created (
        <xref ref-type="bibr" rid="ref8">8</xref>
        ) and the response forwarded to Alice (
        <xref ref-type="bibr" rid="ref9">9</xref>
        ).
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Rights Delegation Proxy</title>
      <p>We present an overview of the interactions between the Solid agents and the Rights Delegation
Proxy during the delegation process. Fig. 2 and 3 show illustrative data used during the
delegation with respect to the example scenario in Sec. 2:
1. The delegator defines a policy that states the delegate’s rights of transactions towards
https://bankpod.net/signHere.acl
&lt;&gt; a acl:Authorization ;
acl:accessTo &lt;./signHere&gt; ;
acl:agent sme:me ;
acl:mode acl:Write .
https://bankpod.net/signHere
&lt;&gt; rdf:type ex:LoanContract ;
ex:forCustomer sme:me .</p>
      <p>GET
https://smepod.net/policies 3</p>
      <p>GET /signHere
(authenticated as sme:me)
4
200 OK</p>
      <p>Evaluate policies</p>
      <p>5
rdp.org
&lt;LoanContractShape&gt;
CLOSED{
ex:forCustomer [sme:me];
rdf:type [ex:LoanContract] }
&lt;LoanContractSignedShape&gt;
CLOSED{
ex:forCustomer [sme:me];
rdf:type [ex:LoanContract];
ex:signed [true] }
2 PUT
/sige&lt;nx&gt;H:freodrrfeC:t?yuupsretio=emhxtet:pLrsos:am//nbeCa:monnkept;roadc.tn;et https://alpicroef.isleo/lcidacrodm#mmeunity.net/
ex:signed true .</p>
      <p>the afiliate. We discern pre-conditions and post-conditions that are evaluated, where
pre-conditions define how a resource has to look like before the delegate may access it,
and post-conditions define how a resource has to look like after the delegate accessed it.
2. The delegate makes an HTTP request to the RDP, where the accessed path is equal to the
resource at the afiliate and the query contains the host of the afiliate’s URI.
3. The RDP receives the request, checks that the delegate’s WebID is authenticated, and
extracts the afiliate’s URI as well as the path to the web resource. The RDP looks up
suiting policies at the delegator depending on the WebID or web resource.
4. The RDP does a "preflight GET request" to the requested resource.
5. The RDP evaluates if the delegate’s request is valid concerning the policies. Therefore
the preflight response is checked against the pre-condition. To check a post-condition,
the RDP evaluates if the message body, which contains the to-be-expected resource state,
adheres to the post-condition. If a condition does not hold, the RDP responds with 403
Forbidden.
6. After checking the request, the RDP logs the result as well as time, content, accessed
resource, and requesting WebID at a location defined by the delegator.
7. The RDP authenticates as delegator to forward the checked request to the resource as
specified by the delegate in the query string.
8. The afiliate responds to the RDP, and the RDP logs the response.
9. The RDP sends the afiliate’s response to the delegate and concludes the flow of messages
for the initiated request.</p>
    </sec>
    <sec id="sec-4">
      <title>4. Requirements for roles in delegation</title>
      <p>Finally, we analyse the requirements for the roles of afiliate, delegator, and delegate to take part
in the RDP system. Note that we do not make assupmtions in our system on how a delegate
is informed about the delegation coming from a delegator, or how the range of rights shall be
defined between afiliate and delegator.
https://bankpod.net/signHere.acl
&lt;&gt; a acl:Authorization ;
acl:accessTo &lt;./signHere&gt; ;
acl:agent sme:me ;
acl:mode acl:Write .
https://bankpod.net/signHere
&lt;&gt; rdf:type ex:LoanContract ;
ex:forCustomer sme:me;
ex:signed true .</p>
      <p>6
7 PUT /signHere
(authenticated as sme:me)
&lt;&gt; rdf:type ex:LoanContract ;
ex:forCustomer sme:me;</p>
      <p>ex:signed true .
8 204 No Content
./logs
&lt;&gt; a ex:Policy ;
ex:forAgent alice:me ; ex:forRessource bank:signHere;
ex:preCondition &lt;LoanContractShape&gt; ;
ex:postCondition &lt;LoanContractSignedShape&gt; .</p>
      <p>&lt;LoanContractShape&gt;
&lt;LoanContractSignedShape&gt;
PUT https://smepod.net/logs/2024-01-01
&lt;&gt; rdf:type ex:Log ;
ex:forAgent alice:me ;
ex:forRessource bank:signHere .</p>
      <p>Evaluate policies
rdp.org</p>
      <p>Afiliate As the afiliate is aware of the existing business relation, the afiliate knows the
delegator’s identity and thus the WebID. With the WebID, the afiliacte can define an appropriate
ACL including permissions for the Web resource on on Solid Storage that shall be accesses by
the delegator.</p>
      <p>Delegator As the delegator is aware of the business relation with the afiliate, too, the
delegator knows the location where the afiliate stores the shared Web resource and ideally
the rights that are granted by the afiliate. To define a delegation, the delegator has to know
the delegate’s Web ID and define policies that associate the delegate with the afiliate, e.g. via
explicitly stating the Web resource as permitted for the delegate. The rights granted by the
policy may include all or a subset of the delegator’s rights with respect to the afiliate - of course
rights that go further than the one’s granted by the afiliate will not have an efect, if the afiliate
did not grant them. To realize the actions, the delegator has to use and authorize an RDP, e.g.
hosted as its own service or by a provider, and configure the RDP with the locations on where
to find policies and store logs, e.g. the delegator’s own Soldi storage.</p>
      <p>Delegate As recipient of the delegator’s policy, the delegate ideally (but not necessarily)
knows which rights are granted by the delegator. Again, if the delegate would try to use rights
that go further than the one’s defined in the policy, the RDP would refuse to perform the action.
To realize the delegation and act on behalf of the delegator, the delegate has to know how and
where to act, that is the delegate needs to know the afiliate’s Web resource, e.g. via the URI,
and the URI of the RDP to realize the action authorized as delegator, so that the action can be
executed at the afiliate.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>We propose the RDP as a medium between the agents delegator, delegate, and afiliate. As
all delegated actions go through the RDP, which authenticates as the delegator, the RDP is a
component with high responsibility. As a consequence, we shift the power over actions to the
delegator by having exclusive control over policies, while shifting responsibility away from the
afiliate, who has to know only the delegator. The delegate powers are limited to exist only in the
defined policies, so the RDP solves the privacy problem straightforwardly: with authentication
as delegator (like a Solid App), there is no diference of the action’s origins towards an afiliate,
while the delegate’s identity is obfuscated.</p>
      <p>As of now, the RDP is a centralized component that manages all incoming delegated requests,
which poses a bottleneck and single point of failure [10]. Handling a single request, however, is
independent of other occurring requests such that multiple instances of an RDP may be run in
parallel. Here, a load balancer may distribute incoming requests to several RDP instances.</p>
      <p>Policy implementation is subject to the applied use case, but we see huge potential for complex,
custom policies for large organizations to be possible: to evaluate the pre- and post-conditions
e.g. ShEx can define the expected structural data of resource, or SPARQL 8 ASK queries can be
used instead. If the conditions in the query are met (as with shapes), the delegate request is
forwarded. Extension to use more complex workflows are also possible, e.g. to use Business
Process Model and Notation (BPMN) to be close to processes in organizations, e.g. contracts
may only be signed after an accountant agreed, or ontologies like WiLD [11] to represent and
monitor workflows similarly.</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>This work is partially funded by the German Federal Ministry of Education and Research via
the MANDAT project (FKZ 16DTM107A).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>S.</given-names>
            <surname>Russell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Norvig</surname>
          </string-name>
          , Artificial Intelligence:
          <string-name>
            <given-names>A Modern</given-names>
            <surname>Approach</surname>
          </string-name>
          , 3rd ed., Prentice Hall Press, USA,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>M. M. Hughes</surname>
          </string-name>
          ,
          <article-title>Remedying financial abuse by agents under a power of attorney for finances, Marquette Elder's Advisor 2 (</article-title>
          <year>2012</year>
          )
          <article-title>39</article-title>
          . URL: https://api.semanticscholar.org/CorpusID: 37730572.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>W. C.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <article-title>Supported decision-making proxy decision-making : A legal perspective</article-title>
          ,
          <year>2015</year>
          . URL: https://api.semanticscholar.org/CorpusID:53399327.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S.</given-names>
            <surname>Capadisli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Berners-Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Verborgh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Kjernsmo</surname>
          </string-name>
          , Solid Protocol,
          <year>2021</year>
          . URL: https: //solidproject.org/TR/protocol.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Meckler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Dorsch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Henselmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Harth</surname>
          </string-name>
          ,
          <article-title>The Web and Linked Data as a Solid Foundation for Dataspaces</article-title>
          ,
          <source>in: Companion Proceedings of the ACM Web Conference</source>
          <year>2023</year>
          , WWW '23 Companion, Association for Computing Machinery, New York, NY, USA,
          <year>2023</year>
          , p.
          <fpage>1440</fpage>
          -
          <lpage>1446</lpage>
          . URL: https://doi.org/10.1145/3543873.3587616. doi:
          <volume>10</volume>
          .1145/3543873. 3587616.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Steinbuss</surname>
          </string-name>
          , et al.,
          <source>IDS Reference Architecture Model 4. Technical Report</source>
          ,
          <year>2024</year>
          . URL: https:// github.com/International-Data-Spaces-Association/IDS-RAM_
          <article-title>4_0?tab=readme-ov-file.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7] H. Meyer zum Felde,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kollenstart</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Bellebaum</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Dalmolen</surname>
          </string-name>
          , G. Brost,
          <article-title>Extending actor models in data spaces</article-title>
          ,
          <source>in: Companion Proceedings of the ACM Web Conference</source>
          <year>2023</year>
          , WWW '23 Companion, Association for Computing Machinery, New York, NY, USA,
          <year>2023</year>
          , p.
          <fpage>1447</fpage>
          -
          <lpage>1451</lpage>
          . URL: https://doi.org/10.1145/3543873.3587645. doi:
          <volume>10</volume>
          .1145/3543873. 3587645.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B.</given-names>
            <surname>Esteves</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Pandit</surname>
          </string-name>
          ,
          <article-title>Using patterns to manage governance of solid apps</article-title>
          ,
          <source>in: Proceedings of the 14th Workshop on Ontology Design and Patterns (WOP</source>
          <year>2023</year>
          )
          <article-title>co-located with the 22nd International Semantic Web Conference (ISWC</article-title>
          <year>2023</year>
          ), CEUR,
          <year>2023</year>
          , p.
          <fpage>43</fpage>
          -
          <lpage>55</lpage>
          . URL: https://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>3636</volume>
          /paper5.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          <article-title>[9] Parliament and Council of the European Union, Regulation (EU) 2016/679 on the protection of natural persons with regard to the processing of personal data and on the free movement of such data</article-title>
          ,
          <source>and repealing directive</source>
          <volume>95</volume>
          /46/ec (General
          <source>Data Protection Regulation)</source>
          ,
          <year>2016</year>
          . https://eur-lex.europa.eu/eli/reg/2016/679/oj.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>R. de Lemos</surname>
          </string-name>
          , et al.,
          <source>Software Engineering for Self-Adaptive Systems: A Second Research Roadmap</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2013</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>32</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Käfer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Harth</surname>
          </string-name>
          , Specifying, monitoring, and
          <article-title>executing workflows in linked data environments</article-title>
          , in: D.
          <string-name>
            <surname>Vrandečić</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Bontcheva</surname>
            ,
            <given-names>M. C.</given-names>
          </string-name>
          <string-name>
            <surname>Suárez-Figueroa</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Presutti</surname>
            , I. Celino,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Sabou</surname>
            ,
            <given-names>L.-A.</given-names>
          </string-name>
          <string-name>
            <surname>Kafee</surname>
          </string-name>
          , E. Simperl (Eds.),
          <source>The Semantic Web - ISWC 2018</source>
          , Springer International Publishing, Cham,
          <year>2018</year>
          , pp.
          <fpage>424</fpage>
          -
          <lpage>440</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>