<docbook><section><title>ODSWebIDIdPPHPEx1</title><bridgehead class="http://www.w3.org/1999/xhtml:h2">Using Virtuoso&#39;s <ulink url="WebID">WebID</ulink> Verify Proxy Service with an X.509 certificate <ulink url="WebID">WebID</ulink>: PHP Example</bridgehead>
<programlisting>&lt;?php
  function apiURL()
  {
    $pageURL = $_SERVER[&#39;HTTPS&#39;] == &#39;on&#39; ? &#39;https://&#39; : &#39;http://&#39;;
    $pageURL .= $_SERVER[&#39;SERVER_PORT&#39;] &lt;&gt; &#39;80&#39; ? $_SERVER[&#39;SERVER_NAME&#39;] . &#39;:&#39; . $_SERVER[&#39;SERVER_PORT&#39;] : $_SERVER[&#39;SERVER_NAME&#39;];
    return $pageURL . &#39;/ods/webid_demo.php&#39;;
  }

	$_webid = isset ($_REQUEST[&#39;webid&#39;]) ? $_REQUEST[&#39;webid&#39;] : &#39;&#39;;
	$_error = isset ($_REQUEST[&#39;error&#39;]) ? $_REQUEST[&#39;error&#39;] : &#39;&#39;;
	$_action = isset ($_REQUEST[&#39;go&#39;]) ? $_REQUEST[&#39;go&#39;] : &#39;&#39;;
  if (($_webid == &#39;&#39;) &amp;&amp; ($_error == &#39;&#39;))
  {
    if ($_action &lt;&gt; &#39;&#39;)
    {
      if ($_SERVER[&#39;HTTPS&#39;] &lt;&gt; &#39;on&#39;)
      {
        $_error = &#39;No certificate&#39;;
      }
      else
      {
        $_callback = apiURL();
        $_url = sprintf (&#39;https://id.myopenlink.net/ods/webid_verify.vsp?callback=%s&#39;, urlencode($_callback));
        header (sprintf (&#39;Location: %s&#39;, $_url));
        return;
      }
    }
  }
?&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;WebID Verification Demo - PHP&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;h1&gt;WebID Verification Demo&lt;/h1&gt;
    &lt;div&gt;
      This will check your X.509 Certificate&#39;s WebID  watermark. &lt;br/&gt;Also note this service supports ldap, http, mailto, acct scheme based WebIDs.
    &lt;/div&gt;
    &lt;br/&gt;
    &lt;br/&gt;
    &lt;div&gt;
      &lt;form method=&quot;get&quot;&gt;
        &lt;input type=&quot;submit&quot; name=&quot;go&quot; value=&quot;Check&quot;/&gt;
      &lt;/form&gt;
    &lt;/div&gt;
    &lt;?php
      if (($_webid &lt;&gt; &#39;&#39;) || ($_error &lt;&gt; &#39;&#39;))
      {
    ?&gt;
      &lt;div&gt;
      	The return values are:
  	    &lt;ul&gt;
          &lt;?php
            if ($_webid &lt;&gt; &#39;&#39;)
            {
          ?&gt;
  	      &lt;li&gt;WebID -  &lt;?php print ($_webid); ?&gt;&lt;/li&gt;
  	      &lt;li&gt;Timestamp in ISO 8601 format - &lt;?php print ($_REQUEST[&#39;ts&#39;]); ?&gt;&lt;/li&gt;
          &lt;?php
            }
            if ($_error &lt;&gt; &#39;&#39;)
            {
          ?&gt;
  	      &lt;li&gt;Error - &lt;?php print ($_error); ?&gt;&lt;/li&gt;
          &lt;?php
            }
          ?&gt;
  	    &lt;/ul&gt;
      &lt;/div&gt;
    &lt;?php
      }
    ?&gt;
  &lt;/body&gt;
&lt;/html&gt;

</programlisting><itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLEndpointProtection">Safeguarding your Virtuoso-hosted SPARQL Endpoint</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/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="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuide">Virtuoso Tips and Tricks Collection</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLDET">SPARQL Endpoint DET Configuration Guide</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLSecurityWebID">WebID Protocol &amp; SPARQL Endpoint ACLs Tutorial</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtOAuthSPARQL">SPARQL OAuth Tutorial</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtTipsAndTricksGuideSPARQLEndpoints">Securing SPARQL endpoints</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="OdsSPARQLAuth">SPARUL over SPARQL using the http://cname:port/sparql-auth endpoint</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAuthServerUI">Virtuoso Authentication Server UI</ulink> </listitem>
<listitem><ulink url="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLSSL">Manage a SPARQL-WebID based Endpoint</ulink> </listitem>
<listitem><ulink url="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="ODSBriefcaseWebID">ODS Briefcase WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBriefcaseWebIDPerson">Person Entity WebID based ACL Guide</ulink> </listitem>
<listitem><ulink url="ODSBriefcaseWebIDGroup">Group Entity WebID based ACL Guide</ulink> </listitem>
<listitem><ulink url="ODSBriefcaseWebIDPublic">Public WebID based ACL Guide</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSFeedManagerWebIDACL">ODS Feed Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSFeedManagerWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSFeedManagerWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSFeedManagerWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSCalendarWebIDACL">ODS Calendar WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSCalendarWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSCalendarWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSCalendarWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSBookmarksWebIDACL">ODS Bookmark Manager WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSBookmarksWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSBookmarksWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSBookmarksWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSAddressBookWebIDACL">ODS Addressbook  WebID based ACL Guide</ulink> <itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="ODSAddressBookWebIDACLPerson">Person Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSAddressBookWebIDACLGroup">Group Entity Specific ACL</ulink> </listitem>
<listitem><ulink url="ODSAddressBookWebIDACLPublic">Public Specific ACL for anyone with a WebID</ulink> </listitem>
</itemizedlist></listitem>
</itemizedlist></listitem>
<listitem><ulink url="ODSPkiSetup">Guide for Set up a X.509 certificate issuer and HTTPS listener and generate ODS user certificates.</ulink> </listitem>
<listitem><ulink url="VirtODSPubSubHub">Setting up PubSubHub in ODS</ulink> </listitem>
<listitem><ulink url="VirtPubSubHub">PubSubHubBub Demo Client Example</ulink> </listitem>
<listitem><ulink url="VirtFeedPubSubHub">Feed subscription via PubSubHub protocol Example</ulink> </listitem>
<listitem><ulink url="VirtPubSubHubACL">Setting Up PubSubHub to use WebID Protocol or IP based control lists</ulink> </listitem>
<listitem><ulink url="OdsKeyImport">CA Keys Import using Conductor</ulink> </listitem>
<listitem><ulink url="ODSGenerateX509Certificate">Generate an X.509 Certificate hosted WebID Guide</ulink> </listitem>
<listitem><ulink url="ODSGenerateWebIDX509CertOSKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by host operating system keystore</ulink> </listitem>
<listitem><ulink url="ODSGenerateWebIDX509CertBrsKeystore">Generate an X.509 Certificate (with a WebID watermark) to be managed by a browser-based keystore</ulink> </listitem>
<listitem><ulink url="ODSWebIDIdP">Using Virtuoso&#39;s WebID Verification Proxy Service with a WebID-bearing X.509 certificate</ulink> </listitem>
<listitem><ulink url="ODSWebIDIdpProxy">Using Virtuoso&#39;s WebID Identity Provider (IdP) Proxy Service with an X.509 certificate</ulink> </listitem>
<listitem><ulink url="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></section></docbook>