The <Library> element specifies an extension library to load at runtime.

Extensions are dynamic/shared libraries (DLLs) with special exported functions to allow them to be loaded and managed by the Shibboleth runtime (actually by the XMLTooling-C library). Extensions can be loaded in-process or out-of-process (or both) and can tailor their behavior based on their environment.

Most new extensions come in full and "lite" versions, rather than as a single library.


Extension Content

The schema permits arbitrary child elements and attributes to be present, allowing extension libraries to include their own configuration material.

Note also that many/most of the other configuration elements in the schema are themselves extensible, allowing properly-namespaced extension content to be added for use by extension libraries. Extensions can effectively overlay their own configuration on top of that of the core components.