WebID Protocol Implementations

From W3C Wiki

Implementation Comparisons

Comparisons between implementations of the WebID Protocol

Service Providers and Platforms

WebID Service Providers and Platforms
  WebID Serialization Format OpenID IdP X.509 Certificate Creation Authentication Methods RWW Capabilities ACL Controlled Semantic Ping
RDF/XML RDFa N3 Keygen IE Standalone WebID Implementation WebID Protocol WebID Delegated OpenID RP Password WebDAV SPARQL HTML Form
xwiki Y Y
JavaScript API Demo Y Y Y(no <keygen> required) Y Apache PHP Y
clerezza Y Y Y Y Y Clerezza Y Y
id.myopenlink.net Y Y Y Y Y Y Y Virtuoso Y Y Y Y Y Y Y Y Y
foaf.me Y Y libAuthentication Y Y Y Y Y
Drupal Y Y (via MyProfile) LibAuthentication Y
elgg / lorea
Liferay Y Y Sommer foaf+ssl (Jena) Y
Sociddea Y Y Y Y Y IIS .NET WebID Module Y Y Y


Authentication Implementations

WebID Authentication Implementation across Developer Libraries, Frameworks, and Services
  Language/System RDF/XML RDFa N3 Multi-Certificate Keys Multiple SAN Webfinger Fingerpoint Delegated WebID Literals Test Endpoint
Web::ID Perl Y Y note 1 Y Y Y Y N N
libAuthentication PHP Y Y Y Y Y Y
Sommer foaf+ssl Java Y Y Y Y Y
Clerezza Java & Scala Y Y Y Y Y
ODS SQL Stored Procedures / C Y Y Y Y Y Y Y Y Y
mod_authn_webid Apache 2 module Y Y Y Y Y
foaf-ssl ruby Ruby
ResourceMe login-webid PHP Y N N Y N Y N N Y note 2
WebIDRealm Java Y Y Y Y N N N Y note 3
WebIDauth PHP Y Y Y Y Y note 4

Notes:

1. CGI::Auth::FOAF_SSL supports Turtle and N-Triples out of the box, and full Notation 3 if the optional RDF-TriN3 module is used.

2. ResourceMe login-webid test endpoint produces EARL RDF output in RDF/XML and RDFa

3. WebIDRealmTestServer has a debug section with 16 tests here showing details about the certificate and webIDProfileDocument

4. WebIDauth provides a "verbose" debug section, intended for human readers.

Tool Description in more detail

Virtuoso

Virtuoso will use <keygen /> to issue CSR requests to Safari and Chrome on Mac OS X en route to persisting X.509 hosted claims into the local keychain. Virtuoso also produces PKCS#12 files for use with browsers that do not integrate the local keychain, and across a wide variety of systems including iOS5, Windows, Linux, Solaris, and others. This functionality is native to Virtuoso and integrated into the ODS framework.

Clerezza

Clerezza uses KeygenApp & Clerezza mod

Sommer

So(m)mer libraries are currently on github: keygen & foaf-ssl.

In addition to the main Sesame-based implementation, the Liferay implementation also provides a reimplementation using Jena.

Drupal

The Drupal WebID module has 2 components independant from each other: a WebID provider and a WebID authentication module. Currently both components rely heavily on MyProfile to generate the certificate (certgen.php) and to authenticate (delegated verifier via https://auth.my-profile.eu/).