Siphon.IO Simple SSO strategy for Passport
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


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.