express-webid v0.0.1
WebID middleware for express/connect
A WebID authentication middleware module for express/connect applications.
See also:
Usage
Example code:
var expressWebId = require('express-webid');
var options = {'getCertificateCallback': expressWebId.getCertificateFromConnection, 'defaultAgent': 'http://example.com/card#me'};
app.use(expressWebId.login(options));
This code registers the middleware to the express application.
The certificate will be read from the connection.
If the authentication fails the agent http://example.com/card#me will be used for the session.
API
login(options)
Returns the middleware function. The following options are accepted:
- getCertificateCallbackThe function which should be used to fetch the certificate (default:- getCertificateFromConnection)
- defaultAgentThe default agent if the authentication process fails (default: '_:anonymous')
- doRenegotiationUse renegotiation to ask for a certificate (currently not supported by Node.js, default: false)
getCertificateFromConnection(req)
Returns the certificate bind to the connection.
getCertificateFromHeader(req)
Returns the certificate from the header field ssl_client_cert.
This should be used only for applications behind reverse proxies!
Currently this is the only workaround to use renegotiation for a single resource.
Example Apache configuration:
<Location /login-webid>
  SSLOptions +ExportCertData
  SSLVerifyClient optional_no_ca
  # clear header field -> prevent injection!
  RequestHeader set SSL_CLIENT_CERT ""
  RequestHeader set SSL_CLIENT_CERT "%{SSL_CLIENT_CERT}s"
</Location>12 years ago