dk.nita.saml20 package to abstract the SAML boiler plate. We did however have to modify the source in several places to hack and patch things together. For instance we had to change the language on the service metadata to “en” rather than “da” and there were several other small things like this we changed. Customising the code also helped us work around the limitation of no metadata existing for the VANguard service.
Resources
Some resources that really helped are:
Conclusion
If we were to try to integrate to VANguard again we would do things differently. The “no metadata” is a huge limitation and makes VANAguard integration very hard. The existing libraries out there just expect an identity provider to have a metadata file (and yes I know that in theory VANguard is not an identity provider but that should be transparent). Next time we will not use an abstraction library and do all creation and parsing of SAML files manually. This seems daunting at first given the over complexity of SAML payloads but I think we would have completed the project sooner going down this path. Live and learn.