Implementations

From WebID Wiki
Revision as of 12:49, 19 January 2013 by Asambra (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Implementation Comparisons

Comparisons between implementations of the WebID Protocol

WebID Service Providers and Platforms
  WebID Serialization Format OpenID IdP X.509 Certificate Creation Supported WebID URI Schemes Authentication Methods Read-Write Web (RWW) Capabilities ACL Controlled Semantic Pingback
RDF/XML RDFa N3 Keygen IE Standalone http: mailto: ldap: acct: WebID Implementation WebID Protocol WebID Delegated OpenID RP Password WebDAV SPARQL HTML Form
xwiki N Y N N Y N N Y ??? ??? ???
JavaScript API Demo Y Y N N Y
(<keygen> not required)
Y N Y ??? ??? ??? Apache PHP Y
clerezza Y Y Y N Y Y N Y ??? ??? ??? Clerezza Y Y
id.myopenlink.net Y Y Y Y Y Y Y Y Y Y Y Virtuoso Y Y Y Y Y Y Y Y Y
foaf.me Y N N N Y N N Y ??? ??? ??? libAuthentication Y Y Y Y Y
django-webid-provider N Y N N Y Y N Y ??? ??? ??? Python-WebID Y ??? ??? ??? ??? ??? ??? ??? ???
Drupal WebID module ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ???
elgg / lorea ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ???


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
CGI::Auth::FOAF_SSL Perl Y Y note 1 Y Y Y Y N N
libAuthentication PHP Y Y Y Y N N N Y Y
Sommer foaf+ssl Java Y Y Y N N N N Y Y
Clerezza Java & Scala Y Y Y N N N N Y Y
OpenLink Data Spaces (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 N N N N
foaf-ssl ruby Ruby
django-webid-auth Python Y Y Y

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.

Implementation Comparisons, redux

Implementations actually fall into several subcategories... The table above will be split as may be obvious.

WebID Generators/Providers

incorporate relevant content from FOAF+SSL IdP list...

Cert Generating Software

Cert Generating Services (also known as "Identity Providers")

WebID Consumers

incorporate relevant content from FOAF+SSL Clients and Relying Parties lists...

Cert Verifiers (implementations of the Test Suite)

Cert Verifying Software
Cert Verifying Services

WebID-compliant Applications

Client-side (including web browsers and extensions, and other client-side libraries and executables)
Server-side (including web servers and extensions, and other server-side libraries and executables)

WebID-compliant Sites and Services (also known as "Relying Parties")

Tool Description in more detail

Clerezza

Clerezza uses KeygenApp & Clerezza mod

OpenLink Virtuoso

Virtuoso uses keygen HTML tags to instruct browser to make certificate and associated private key. Some Browsers (e.g., Chrome, Safari) implement this call via interactions with local key store. Others (e.g., Firefox and Opera) use it with their browser hosted key store. Runs on Native OS (Windows and MacOS X), Virtuoso authentication module, ODS authentication module & service.

OpenLink X.509 Certificate Generation Wizard

OpenLink X.509 Certificate Generation Wizard is an HTML based application for generating X.509 certificates and associated keys and persisting them to an Identity Provider space on a network e.g. Web. It also exists in Native form for Windows , with variants for iOS5, Mac OS X, and Android under development.

Sommer

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


People working on implementations

Github search

TODO

  • split implementation comparison table into several categories as outlined above
    • add maturity level (whether a given implementation is stable or under heavy development and subject to changes)
    • add test coverage for each implementation
  • add links to implementation guidance, e.g., examples to demonstrate how a given WebID library might be integrated into an application or service