<docbook><section><title>VirtOpenIDWebIDProxyServiceGuide</title><title> Guide for OpenID+WebID Proxy Service that Enables WebID Exploitation via OpenID</title> Guide for <ulink url="OpenID">OpenID</ulink>+<ulink url="WebID">WebID</ulink> Proxy Service that Enables <ulink url="WebID">WebID</ulink> Exploitation via <ulink url="OpenID">OpenID</ulink>
<bridgehead class="http://www.w3.org/1999/xhtml:h2">What?</bridgehead>
 Virtuoso <ulink url="OpenID">OpenID</ulink>+<ulink url="WebID">WebID</ulink> Proxy Service.<bridgehead class="http://www.w3.org/1999/xhtml:h2">Why?</bridgehead>
 All of our early <ulink url="WebID">WebID</ulink> demonstrations focused on exposing the critical value that <ulink url="WebID">WebID</ulink> brings to <ulink url="OpenID">OpenID</ulink>.
 Basically, that takes the form of eliminating username-and-password-based authentication on the more obvious front, while disambiguating hyperlink-based Names and Addresses on the less obvious front, with Linked Data in mind (i.e., via <ulink url="OpenID">OpenID</ulink> you ended up with a URI based global Identifier with the requisite fidelity for <ulink url="InterWeb">InterWeb</ulink> scale User Centric Identity)<para>In recent times, we&#39;ve decoupled many of our <ulink url="WebID">WebID</ulink> implementation layers from both <ulink url="http://virtuoso.openlinksw.com/">Virtuoso</ulink> and <ulink url="http://ods.openlinksw.com/">ODS</ulink>.
 The net effects of these actions are:</para>
<itemizedlist mark="bullet" spacing="compact"><listitem><emphasis>HTML-, Windows-, and iOS5-based X.509 certificate generators</emphasis> that deliver certificates bearing <ulink url="WebID">WebID</ulink> watermarks -- <ulink url="http://id.myopenlink.net/certgen/">http://id.myopenlink.net/certgen/</ulink> </listitem>
<listitem><emphasis>HTML-based <ulink url="WebID">WebID</ulink> verifier</emphasis> that enables you quickly verify any <ulink url="WebID">WebID</ulink> -- <ulink url="http://id.myopenlink.net/ods/webid_demo.html">http://id.myopenlink.net/ods/webid_demo.html</ulink> </listitem>
<listitem><emphasis><ulink url="OpenID">OpenID</ulink>+<ulink url="WebID">WebID</ulink> proxy service</emphasis> than enables <ulink url="WebID">WebID</ulink> exploitation via <ulink url="OpenID">OpenID</ulink></listitem>
</itemizedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">How?</bridgehead>
<para>What follows is a simple step-by guide showcasing the <emphasis><ulink url="OpenID">OpenID</ulink>+<ulink url="WebID">WebID</ulink> proxy service</emphasis>:</para>
<orderedlist spacing="compact"><listitem><emphasis><ulink url="http://ods.openlinksw.com/wiki/ODS/ODSGenerateX509Certificate">Get yourself a WebID</ulink></emphasis>.
</listitem>
<listitem><emphasis>Visit a space</emphasis> on the <ulink url="InterWeb">InterWeb</ulink> that supports <ulink url="OpenID">OpenID</ulink>-based authentication.
</listitem>
<listitem><emphasis>When challenged</emphasis> for your <ulink url="WebID">WebID</ulink> URL, simply <emphasis>provide a URL in the following form</emphasis>: <programlisting>http://id.myopenlink.net/openid-proxy/id.vsp?w={Your-WebID}
</programlisting><itemizedlist mark="bullet" spacing="compact"><listitem>For instance, Kingsley Idehen&#39;s <ulink url="OpenID">OpenID</ulink>&#39;s is <ulink url="http://id.myopenlink.net/dataspace/person/KingsleyUyiIdehen">http://id.myopenlink.net/dataspace/person/KingsleyUyiIdehen</ulink> and Kingsley Idehen&#39;s <ulink url="WebID">WebID</ulink>&#39;s is <ulink url="http://id.myopenlink.net/dataspace/person/KingsleyUyiIdehen#this">http://id.myopenlink.net/dataspace/person/KingsleyUyiIdehen#this</ulink>, so the provided URL could be: <programlisting>http://id.myopenlink.net/openid-proxy/id.vsp?w=http://id.myopenlink.net/dataspace/person/KingsleyUyiIdehen#this
</programlisting> </listitem>
</itemizedlist></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h3">Observations</bridgehead>
<para>You will notice that you are able to use <ulink url="OpenID">OpenID</ulink> without username-and-password-based authentication.
 You simply present your X.509 certificate, and that&#39;s it.</para>
<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h3">Why is this important?</bridgehead>
<para><ulink url="WebID">WebID</ulink> is best understood and appreciated when experienced as a complementary enhancement of what exists.</para>
<para>Here is a sequence of screenshots that showcase <ulink url="OpenID">OpenID</ulink>+<ulink url="WebID">WebID</ulink> using the decoupled proxy service we now provide, distinct from the ODS instances used in our much earlier implementation demos:</para>
<para> </para>
<bridgehead class="http://www.w3.org/1999/xhtml:h4">Example</bridgehead>
<orderedlist spacing="compact"><listitem>Load <ulink url="http://openid-demo.appspot.com/">http://openid-demo.appspot.com/</ulink> in your web browser.
<figure><graphic fileref="VirtOpenIDWebIDProxyServiceGuide/o1.png" /></figure> </listitem>
<listitem>Enter your <ulink url="WebID">WebID</ulink>: <figure><graphic fileref="VirtOpenIDWebIDProxyServiceGuide/o2.png" /></figure> </listitem>
<listitem>When challenged for certificate authorization, select your X.509 certificate: <figure><graphic fileref="VirtOpenIDWebIDProxyServiceGuide/o3.png" /></figure> </listitem>
<listitem>You should be redirected to Virtuoso <ulink url="OpenID">OpenID</ulink> Authentication Service Endpoint, asking you how to proceed further.
 Click Accept: <figure><graphic fileref="VirtOpenIDWebIDProxyServiceGuide/o4.png" /></figure> </listitem>
<listitem>Finally, you should be successfully logged in: <figure><graphic fileref="VirtOpenIDWebIDProxyServiceGuide/o5.png" /></figure></listitem>
</orderedlist><bridgehead class="http://www.w3.org/1999/xhtml:h2">Related</bridgehead>
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://www.youtube.com/watch?v=gzqHVUb3qrw&amp;feature=share">Power of WebID + OpenID Hybrid Protocol via Internet Explorer &amp; Windows</ulink> </listitem>
<listitem><ulink url="http://www.youtube.com/watch?v=eXoxUo7Py4M&amp;feature=share">Using Safari to Demonstrate WebID + OpenID Hybrid Protocol Power!</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="VirtSPARQLSecurityWebID">WebID Protocol &amp; SPARQL Endpoint ACLs Tutorial</ulink> </listitem>
<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/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>
<listitem><ulink url="http://openid4.me/">openid4.me</ulink> -- An early <ulink url="WebID">WebID</ulink>+<ulink url="OpenID">OpenID</ulink> implementation that isn&#39;t currently functional, but still provides good insights into the inner workings of <ulink url="WebID">WebID</ulink>+<ulink url="OpenID">OpenID</ulink> </listitem>
<listitem><ulink url="http://openid-demo.appspot.com/">A nice OpenID service for testing the prowess of OpenID+WebID</ulink> </listitem>
<listitem>An <ulink url="WebID">WebID</ulink>+<ulink url="OpenID">OpenID</ulink> protocol demo using ODS ...
<itemizedlist mark="bullet" spacing="compact"><listitem><ulink url="http://www.youtube.com/watch?v=mjgXsjd8PDE">... through Firefox on Mac OS X</ulink> </listitem>
<listitem><ulink url="http://www.youtube.com/watch?v=eXoxUo7Py4M">... through Safari on Mac OS X</ulink> </listitem>
<listitem><ulink url="http://www.youtube.com/watch?v=gzqHVUb3qrw">... through IE on Windows</ulink> </listitem>
</itemizedlist></listitem>
<listitem><ulink url="http://goo.gl/oBYFD">Using WebID from an iOS5 device (iPhone or iPad) with Twitter as the Identity Provider (IdP) service</ulink></listitem>
</itemizedlist></section></docbook>