<docbook><section><title>VirtSPARQLSecurityWebID</title><para> </para>
<title> Securing your SPARQL Endpoint via WebID</title> Securing your SPARQL Endpoint via <ulink url="WebID">WebID</ulink>
<para>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 <ulink url="WebID">WebID</ulink> Protocol.</para>
<para>The <ulink url="WebID">WebID</ulink> 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.</para>
<para>Virtuoso lets you set <ulink url="WebID">WebID</ulink> Protocol-based ACLs (Access Control Lists) to restrict and permit various levels of activity based on the visitor&#39;s <ulink url="WebID">WebID</ulink>, through the SPARQL-<ulink url="WebID">WebID</ulink> endpoint, &lt;https://&lt;cname&gt;:&lt;port&gt;/sparql-webid&gt;, e.g., <ulink url="https://virtuoso.example.com:8889/sparql-webid">https://virtuoso.example.com:8889/sparql-webid</ulink>.</para>
<bridgehead class="http://www.w3.org/1999/xhtml:h2"> Accessing Virtuoso&#39;s <ulink url="WebID">WebID</ulink> Protocol ACLs</bridgehead>
<orderedlist spacing="compact"><listitem>Load the Conductor in your browser, http://&lt;cname&gt;:&lt;port&gt;/conductor, e.g., <ulink url="http://virtuoso.example.com:8889/conductor">http://virtuoso.example.com:8889/conductor</ulink>.
</listitem>
<listitem>Log in as a DBA-privileged user, e.g., <emphasis>dba</emphasis>.
</listitem>
<listitem>Drill down to to <emphasis>Linked Data</emphasis> -&gt; <emphasis>Access Controls</emphasis> -&gt; <emphasis>SPARQL-<ulink url="WebID">WebID</ulink></emphasis>.
<figure><graphic fileref="VirtSPARQLSecurityWebID/auth2.png" /></figure></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2"> Sample scenario</bridgehead>
<para>The following sample scenario demonstrates setting <ulink url="WebID">WebID</ulink> Protocol ACLs using the Virtuoso Authentication Server UI:</para>
<orderedlist spacing="compact"><listitem>Download and install the <emphasis><ulink url="https://virtuoso.openlinksw.com/download/">conductor_dav.vad</ulink></emphasis> package.
</listitem>
<listitem><ulink url="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSGenerateX509Certificate">Generate an X.509 Certificate hosted WebID</ulink>.
</listitem>
<listitem><ulink url="VirtSPARQLSSL">Create SPARQL-WebID based Endpoint</ulink>.
</listitem>
<listitem>Go to <emphasis>http://&lt;cname&gt;:&lt;port&gt;/conductor</emphasis>, where &lt;cname&gt;:&lt;port&gt; are replaced by your local server values.
</listitem>
<listitem>Log in as user &quot;<emphasis>dba</emphasis>&quot; or another user with DBA privileges </listitem>
<listitem>Go to Linked Data -&gt; Access Controls -&gt; SPARQL-<ulink url="WebID">WebID</ulink> <figure><graphic fileref="VirtSPARQLSecurityWebID/auth1.png" /></figure> </listitem>
<listitem>In the shown form: <orderedlist spacing="compact"><listitem>Enter for Web ID for ex.: <programlisting>http://id.myopenlink.net/dataspace/person/demo#this
</programlisting></listitem>
<listitem>Select &quot;SPARQL Role&quot; for ex.
 &quot;Sponge&quot;.
<figure><graphic fileref="VirtSPARQLSecurityWebID/auth3.png" /></figure> </listitem>
</orderedlist></listitem>
<listitem>Click the &quot;Register&quot; button.
</listitem>
<listitem>As result the <ulink url="WebID">WebID</ulink> Protocol ACLs will be created.
<figure><graphic fileref="VirtSPARQLSecurityWebID/auth4.png" /></figure> </listitem>
<listitem>Go to the SPARQL+<ulink url="WebID">WebID</ulink> endpoint <emphasis>https://&lt;cname&gt;:&lt;port&gt;/sparql-webid</emphasis> </listitem>
<listitem>Select the user&#39;s certificate from above: <figure><graphic fileref="VirtSPARQLSecurityWebID/auth5.png" /></figure> </listitem>
<listitem>As result the SPARQL Query UI will be presented: <figure><graphic fileref="VirtSPARQLSecurityWebID/auth6.png" /></figure> </listitem>
<listitem>Execute sample query and view the results: <figure><graphic fileref="VirtSPARQLSecurityWebID/auth7.png" /></figure></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">More Examples</bridgehead>
<para>More examples with the ACL engine rules for using SPARQL ASK to make sophisticated data access policies based on social entity relationship semantics:</para>
<orderedlist spacing="compact"><listitem><ulink url="VirtSPARQLSecurityWebIDSocialRelationshipSPARQLASKExample">Using Social Relationship Semantics &amp; WebID to Drive Resource Access Control</ulink> </listitem>
<listitem><ulink url="VirtSPARQLSecurityWebIDSPARQLASKExample">Confining Resource (Data) Access to a Group Entity</ulink></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2"> Related</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="VirtSPARQLEndpointProtection">Safeguarding your Virtuoso-hosted SPARQL Endpoint</ulink> </listitem>
<listitem><ulink url="VirtTipsAndTricksGuideSPARQLEndpointProtection">SPARQL Endpoint Protection Methods Collection</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/">Virtuoso documentation</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpoint">SPARQL Service Endpoint</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri">Service Endpoint Security</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html#sparqwebservicetbl">Managing a SPARQL Web Service Endpoint</ulink> </listitem>
<listitem><ulink url="http://docs.openlinksw.com/virtuoso/rdfsparql.html">SPARQL</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="VirtTipsAndTricksGuide">Virtuoso Tips and Tricks Collection</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="VirtSPARQLDET">SPARQL Endpoint DET Configuration Guide</ulink> </listitem>
<listitem><ulink url="VirtOAuthSPARQL">SPARQL OAuth Tutorial</ulink> </listitem>
<listitem><ulink url="VirtTipsAndTricksGuideSPARQLEndpoints">Securing SPARQL endpoints</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/OdsSPARQLAuth">SPARUL over SPARQL using the http://cname:port/sparql-auth endpoint</ulink> </listitem>
<listitem><ulink url="VirtAuthServerUI">Virtuoso Authentication Server UI</ulink> </listitem>
<listitem><ulink url="VirtSPARQLSSL">Manage a SPARQL-WebID based Endpoint</ulink> </listitem>
<listitem><ulink url="VirtSetupSSL">Configure Virtuoso instance as an X.509 Certificate Authority and HTTPS listener</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSSetupSSL">Configure Virtuoso+ODS instance as an X.509 Certificate Authority and HTTPS listener</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/VirtODSSecurityWebID">WebID Protocol Support in OpenLink Data Spaces</ulink>.
</listitem>
<listitem>Manage ODS Datadspaces Objects <ulink url="WebID">WebID</ulink> Access Control Lists (ACLs): <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBriefcaseWebID">ODS Briefcase WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBriefcaseWebIDPerson">Person Entity WebID based ACL Guide</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBriefcaseWebIDGroup">Group Entity WebID based ACL Guide</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBriefcaseWebIDPublic">Public WebID based ACL Guide</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSFeedManagerWebIDACL">ODS Feed Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSFeedManagerWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSFeedManagerWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSFeedManagerWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSCalendarWebIDACL">ODS Calendar WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSCalendarWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSCalendarWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSCalendarWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBookmarksWebIDACL">ODS Bookmark Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBookmarksWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBookmarksWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBookmarksWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSAddressBookWebIDACL">ODS Addressbook  WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSAddressBookWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSAddressBookWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSAddressBookWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSPkiSetup">Guide for Set up a X.509 certificate issuer and HTTPS listener and generate ODS user certificates.</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/VirtODSPubSubHub">Setting up PubSubHub in ODS</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/VirtPubSubHub">PubSubHubBub Demo Client Example</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/VirtFeedPubSubHub">Feed subscription via PubSubHub protocol Example</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/VirtPubSubHubACL">Setting Up PubSubHub to use WebID Protocol or IP based control lists</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/OdsKeyImport">CA Keys Import using Conductor</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSGenerateX509Certificate">Generate an X.509 Certificate hosted WebID Guide</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSGenerateWebIDX509CertOSKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by host operating system keystore</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSGenerateWebIDX509CertBrsKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by a browser-based keystore</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSWebIDIdP">Using Virtuoso&#39;s WebID Verification Proxy Service with a WebID-bearing X.509 certificate</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSWebIDIdpProxy">Using Virtuoso&#39;s WebID Identity Provider (IdP) Proxy Service with an X.509 certificate</ulink> </listitem>
<listitem><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSBriefcaseWebIDShareFile">ODS Briefcase WebID Protocol Share File Guide</ulink> </listitem>
<listitem><ulink url="http://esw.w3.org/topic/foaf+ssl">WebID Protocol Specification</ulink> </listitem>
<listitem><ulink url="https://foaf.me/simpleLogin.php">Test WebID Protocol Certificate page</ulink> </listitem>
<listitem><ulink url="http://test.foafssl.org/cert/">WebID Protocol Certificate Generation page</ulink></listitem>
</itemizedlist><para> <ulink url="CategoryWebID">CategoryWebID</ulink> <ulink url="CategoryVirtuoso">CategoryVirtuoso</ulink> <ulink url="CategoryODS">CategoryODS</ulink> <ulink url="CategoryRDF">CategoryRDF</ulink></para>
</section></docbook>