OpenSAML is a set ofC++ & Java libraries used in support of the Shibboleth Project's implementation of the Security Assertion Markup Language (SAML). It is licensed under the Apache 2.0 license.
OpenSAML 3, the current library version, supports SAML 1.0, 1.1, and 2.0. Additionally, various development groups have found the framework created to support OpenSAML useful for their own work and the Java codebase includes some code supporting WS-Addressing, WS-Security, WS-Trust and XACML.
The OpenSAML libraries do not provide a complete SAML identity or service provider. If you are looking for such software you should check out the Shibboleth project instead. Also, these libraries will not teach you any of the specifications listed above. The libraries are meant solely to support individuals who have taken the time to read and understand the specifications and are not in general a good solution for those looking for a quick way to implement SAML.
It is very dangerous to attempt to use parts of the library in isolation without making use of all of its relevant components. In particular, implementing your own XML processing code, using XML parsing classes other than the ParserPool components provided by the library, using your own security processing code, omitting proper support for SAML metadata, etc. are all risky choices that may lead to security flaws and incomplete, unsafe, and ill-advised SAML solutions. The Shibboleth Project discourages such approaches in the strongest possible terms. Use all of it that applies to the task at hand, or use none of it.
We do not have significant documentation for this version of the library. Many of the concepts and examples in the OpenSAML 2 Java documentation can be applied, with varying degrees of change, to this version (and that documentation is itself not the best). But you should recognize the inherent risk of relying on this library and you should not expect substantial improvement in this area.
Theof the Java library is the latest version available from our Nexus repository. In the very rare event that a is designated, it will be noted here, but in most cases you can assume that all prior releases are unsupported.
The following projects are those that we know to be using OpenSAML. There are probably others out there floating around, if you have such a project, add it to the list.
AuthorizationDecisionStatementelements. Other GT components (in particular, MyProxy and GridShib) are being fitted with SAML interfaces using OpenSAML.
The following organizations have provided substantial resources to the development of OpenSAML over the years.