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/).