<div>On Fri, Jul 7, 2017 at 9:44 AM <a href="mailto:rhys.bower@alumni.ubc.ca">rhys.bower@alumni.ubc.ca</a> <<a href="mailto:rhys.bower@alumni.ubc.ca">rhys.bower@alumni.ubc.ca</a>> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">
Hi Greg,
<div><br>
</div>
<div>Thanks for all of the info and sorry for the slow reply. I think I’ll take a closer look at saml2-js.</div>
<div></div></div></blockquote><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto">On detail I missed until I actually went to implement it is that saml2-is doesn't currently expose authentication context class, with instant, etc. I'm probably going to patch and submit a pull request.</div><div dir="auto"><br></div><div dir="auto">Greg</div><div dir="auto"><br></div><div dir="auto"><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br>
</div>
<div>Thanks,</div>
<div>Rhys</div></div><div style="word-wrap:break-word">
<div><br>
<div>
<blockquote type="cite">
<div>On Jul 4, 2017, at 7:53 PM, Greg Haverkamp <<a href="mailto:gahaverkamp@lbl.gov" target="_blank">gahaverkamp@lbl.gov</a>> wrote:</div>
<br class="m_-2797770103830963462Apple-interchange-newline">
<div>
<div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">On Tue, Jul 4, 2017 at 10:49 AM <a href="mailto:rhys.bower@alumni.ubc.ca" target="_blank">
rhys.bower@alumni.ubc.ca</a> <<a href="mailto:rhys.bower@alumni.ubc.ca" target="_blank">rhys.bower@alumni.ubc.ca</a>> wrote:<br>
</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I’m working on setting up a Node and Express application. There are a few different options I am investigating.<br>
</blockquote>
<div dir="auto"><br>
</div>
<div dir="auto">We do all of our (identity and access management) custom development in Node, so we've done it a few times.<br>
</div>
<div dir="auto"><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
First, placing Apache in front of Node/Express and handling the authentication there.</blockquote>
<div dir="auto"><br>
</div>
<div dir="auto">
<div dir="auto">Typically, we use Apache and Shibboleth. For sessions, we've used Passport with a simple strategy to create a session by checking headers, </div>
<div dir="auto">after which Passport sessions are used. It's fine, but it's proving more difficult as we start pushing our Node apps to central Docker container hosts. We multiplex everything through our BigIP load balancers, which dispatch the traffic
to the appropriate location, one of which is an Apache reverse proxy.</div>
</div>
<div dir="auto"><br>
</div>
<div dir="auto"><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
Second, using a Node SAML plugin such as express-saml2 or saml2-js.<br>
<br>
Does anyone have experience setting up this stack and have thoughts on which one (or another option) would be the best in terms of ease of setup and maintainability?</blockquote>
<div dir="auto"><br>
</div>
<div dir="auto">
<div dir="auto">We tried Passport-SAML. I wasn't impressed with it. In particular, we needed to federate with Cirrus for social integration, and without moving to their IdP proxy, it wouldn't have worked without creating a separate handler and strategy
for each SP.</div>
<div dir="auto"><br>
</div>
<div dir="auto">In my most recent application, I decided to give saml2-js a try. We're just in testing, but so far, so good. It's pretty simple to drop in place, has worked with everything I've dropped in place, and since this particular application
needs a lot of flexibility in authentication-time options -- it's providing integration with our new OpenID Connect provider and needs to be able to trigger different actions based on the OIDC prompts -- and so far, so good.</div>
<div dir="auto"><br>
</div>
<div dir="auto">I haven't spent as much time as I perhaps should trying to figure out how rigorously they've implemented everything, so I'll leave that as a caveat. The other thing is that unless you use one of the other modules that encapsulates
it, saml2-js will require you to manage your own sessions. (I use the Mozilla client-sessions for that.)</div>
<div dir="auto"><br>
</div>
<div dir="auto">Greg</div>
</div>
<div dir="auto"><br>
</div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
Thanks,<br>
Rhys<br>
--<br>
To unsubscribe from this list send an email to <a href="mailto:users-unsubscribe@shibboleth.net" target="_blank">
users-unsubscribe@shibboleth.net</a></blockquote>
</div>
</div>
-- <br>
To unsubscribe from this list send an email to <a href="mailto:users-unsubscribe@shibboleth.net" target="_blank">
users-unsubscribe@shibboleth.net</a></div>
</blockquote>
</div>
<br>
</div>
</div>
--<br>
To unsubscribe from this list send an email to <a href="mailto:users-unsubscribe@shibboleth.net" target="_blank">users-unsubscribe@shibboleth.net</a></blockquote></div></div>