Siphon.IO Simple SSO strategy for Passport


Siphon.IO Simple SSO strategy for Passport.

This module is an interim solution for Siphon.IO related SSO functionality. It will be superseded in normal use by a fully featured SAML implementation.

Despite this, it is a fully featured authentication solution, and is quite secure. It takes advantage of public/private key signatures for requests and responses to avoid any necessity for inter-server communication via any channel other than the operating agent.

The server component is not open source and probably will not be released. As such, this module is only useful if you're authenticating users with internal Siphon.IO services, or if you want a really simple example of how to do a multi-step redirection-based passport.js strategy.

$ npm install passport-siphonsimple


$ git clone git:// node_modules/passport-siphonsimple

This is pretty much it for how to use it.

#!/usr/bin/env node
var express = require("express"),
    passport = require("passport"),
    SiphonSimpleStrategy = require("passport-siphonsimple");
passport.use("siphon", new SiphonSimpleStrategy({
  // this is the authentication provider URL 
  provider_url: "",
  provider_public_key: "-----BEGIN PUBLIC KEY-----\n...",
  consumer_url: "",
  consumer_private_key: "-----BEGIN RSA PRIVATE KEY-----\n...",
  // this is optional - it's the expiry time in ms for requests 
  request_ttl: 1000 * 60,
// ... express app setup ... 
app.get("/login", passport.authenticate("siphon", {
  successRedirect: "/",
  failureRedirect: "/login",

3-clause BSD. A copy is included with the source.