WebID Protocol Implementations
Implementation Comparisons
Comparisons between implementations of the WebID Protocol
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
| 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/).