-
Notifications
You must be signed in to change notification settings - Fork 475
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shibboleth update #10
Comments
@simong the crypto stuff in passport-saml is handled via the xml-crypto module, so the first thing is to check if that supports the things you'd need already. I don't have a Shibboleth setup handy, so a pull request to implement the necessary changes would be great. |
I played around with this a bit more. I've written a small Java app that replaces the Before I hand over the returning request (from IdP --> Node) to I've also added anti-replay support as any intercepted message could otherwise be replayed and you would be able to log in as the user from who you intercepted the message. Would you be interested in me submitting a PR for this? (The Java .jar file is around ~12MB so it would add quite a bit of weight to this module.) |
I'd be interested in this as well. I'm attempting to connect to an IDP that sends back an encrypted assertion (as Shibboleth does) and it fails miserably. Supporting encryption would be really great. +1000 on this Pull Request. |
I've ran into the same. The module has 'Shibboleth' as keyword and well - I thought it would support it. In fact it supports just SAML and NO Shibboleth at all. A deadline was coming close and so I spent a night hacking the module to decrypt encrypted assertions and deal with the payload that comes with Shibboleth. In fact not much of the code was untouched after that - but I am in production with it now finally. |
@danielkhan , I'm interested in adding assertion decryption, is there someplace I could look at your changes? |
Yes - it can be found here: https://gist.github.com/danielkhan/69f08fa633a12d4a4d4b The important parts are from line 222. |
I've committed e027994 which adds working decryption support for a test case based on the testshib.org IDP. Will be interested to hear how well this works for folks. (and if there are cases it doesn't work on, please capture some response documents to add to the test cases) |
Can someone point me in the direction of how to add aes256-cbc Assertion encryption support... i see this lib but not sure how to put it all together |
These are the steps I performed to try to connect our Node.JS app with a Shibboleth IdP
Setup
I used testshib.org to test our setup. I copied the metadata.xml from a standard SP (running under Apache with
mod_shib
which in turn talks toshibd
) and significantly slimmed it down toAs you can see our SP only supports HTTP-POST and browser-post and a very small subset of signing/encryption mechanismes.
I used the following node code to register the SAML strategy. (slimmed down for brevity)
That's about it regarding setup.
Testing
This gets picked up by the passport-saml strategy and results in the following SAML object
Which gets succesfully turned into a suitable URL (ie: the XML gets base64'ed and the proper idp URL gets generated)
This is the point where passport-saml blows up.
The XML it receives from the shibboleth IdP looks like
This is the step where SAML blows up (not illogical as it probably doesn't expect encrypted SAML assertions.)
Now, AFAICT the only thing that needs to happen is implement the 'decryption' step. I'm not entirely sure if it's feasible to implement all the supported encryption algorithms, but it might be worth the attempt to try a couple?
I'd be interested in hearing your input.
The text was updated successfully, but these errors were encountered: