DynamicHTTPMetadataProvider
Namespace: urn:mace:shibboleth:2.0:metadata
Schema: http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
Overview
The DynamicHTTPMetadataProvider
fetches entity metadata just-in-time from a remote HTTP server. The metadata request URL is constructed by applying a transform to the entityID
. The transform strategy is configurable, with a simple way to configure support for the Metadata Query Protocol.
Metadata is cached in memory subject to a complex set of interacting settings and the cache indicators within the metadata itself, and also can be saved to disk and reloaded back into memory at reload or startup time to restore the state of the cache. This isn't a fully redundant safety net but can be used as part of an overall strategy to reduce the risk of relying on remote sources in real-time. Ultimately, remote sources have to be bulletproof or there will be outages. This can be mitigated but not fully eliminated as a risk.
As part of this “machinery”, the default HTTP client used with this provider is the “memory-caching” variant mentioned on the HttpClientConfiguration page, which automatically honors HTTP caching headers and caches results in memory. This mechanism operates independently of, and in addition to, all of the other caching behavior defined below, so bear this in mind when implementing your own metadata services for use with this provider. If you don’t want this behavior, simply define your own non-caching client to inject via the httpClientRef
XML attribute.
Use this provider with remote metadata
The DynamicHTTPMetadataProvider
is used with remote metadata. See the MetadataManagementBestPractices topic for more information.