• Topic
  • Discussion
  • VOS.VirtSPARQLSecurityWebID(Last) -- Owiki? , 2018-04-13 12:07:24 Edit owiki 2018-04-13 12:07:24

    Securing your SPARQL Endpoint via WebID?

    SPARQL endpoints are easy for random visitors to accidentally overload. Virtuoso allows you to secure your SPARQL endpoint against such abuses in various ways, including the WebID? Protocol.

    The WebID? Protocol links a Web ID to a public key, to create a global, decentralized/distributed, and open -- yet secure! -- authentication system that functions with existing browsers.

    Virtuoso lets you set WebID? Protocol-based ACLs (Access Control Lists) to restrict and permit various levels of activity based on the visitor's WebID?, through the SPARQL-WebID? endpoint, <https://<cname>:<port>/sparql-webid>, e.g., https://virtuoso.example.com:8889/sparql-webid.

    Accessing Virtuoso's WebID? Protocol ACLs

    1. Load the Conductor in your browser, http://<cname>:<port>/conductor, e.g., http://virtuoso.example.com:8889/conductor.
    2. Log in as a DBA-privileged user, e.g., dba.
    3. Drill down to to Linked Data -> Access Controls -> SPARQL-WebID?.

    Sample scenario

    The following sample scenario demonstrates setting WebID? Protocol ACLs using the Virtuoso Authentication Server UI:

    1. Download and install the conductor_dav.vad package.
    2. Generate an X.509 Certificate hosted WebID.
    3. Create SPARQL-WebID based Endpoint.
    4. Go to http://<cname>:<port>/conductor, where <cname>:<port> are replaced by your local server values.
    5. Log in as user "dba" or another user with DBA privileges
    6. Go to Linked Data -> Access Controls -> SPARQL-WebID?

    7. In the shown form:
      1. Enter for Web ID for ex.:


      2. Select "SPARQL Role" for ex. "Sponge".

    8. Click the "Register" button.
    9. As result the WebID? Protocol ACLs will be created.

    10. Go to the SPARQL+WebID? endpoint https://<cname>:<port>/sparql-webid
    11. Select the user's certificate from above:

    12. As result the SPARQL Query UI will be presented:

    13. Execute sample query and view the results:

    More Examples

    More examples with the ACL engine rules for using SPARQL ASK to make sophisticated data access policies based on social entity relationship semantics:

    1. Using Social Relationship Semantics & WebID to Drive Resource Access Control
    2. Confining Resource (Data) Access to a Group Entity


    CategoryWebID CategoryVirtuoso CategoryODS CategoryRDF