Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Current »

Overview

Indicated by type="MDQ", this MetadataProvider loads metadata on-demand from an HTTP server using the conventions defined by the Metadata Query Protocol draft specification (see base protocolSAML profile). This is essentially the same as the Dynamic MetadataProvider with a slightly simpler configuration syntax to automatically generate the appropriate URL substitutions.

The baseUrl XML attribute is also required, to point to the root of the MDQ server.

Reference

 Common XML Attributes

The type="MDQ" attribute must be present.

The following attributes are supported for all MetadataProvider types:

Name

Type

Req?

Default

Description

type

string

Y

Specifies the exact type of metadata plugin to use

id

string

A label for the metadata source, used in logging and status reporting

validate

boolean


false

Whether the XML should be schema validated before it is parsed. Note that some sources of metadata (e.g., ADFS) may contain a large number of extensions. The SP now includes a number of additional schemas to make validation of such extensions possible, but there are always exceptions.

 Dynamic Provider XML Attributes

The following attributes are supported only for the "dynamic" (on-demand) MetadataProvider types (MDQDynamicLocalDynamic):

Name

Type

Default

Description

cleanupInterval

time in seconds

1800 (30 mins)

Time in seconds between execution of background thread to scan for expired cached metadata and remove it from memory. You can set this to 0 to disable any cleanup, but this will potentially cause memory usage to grow.

cleanupTimeout

time in seconds

1800 (30 mins)

Extra time to leave recently-unused entries in the cache before the background cleanup process will remove them

maxCacheDuration 

time in seconds

28800 (8 hours)

Upper bound on time before attempt to reload metadata for an entity

minCacheDuration

time in seconds

600 (10 mins)

Lower bound on time before attempt to reload metadata for an entity

refreshDelayFactor

decimal

0.75

Factor applied to the metadata's own validity or caching period to determine the reload interval to use. Once applied, the result is bounded by the minCacheDuration and maxCacheDuration settings to determine the time of the next attempt. If reload attempts fail, the existing metadata (if any) will be reused until it actually expires

negativeCache

boolean

see description

Controls whether lookup failures are cached (for the minCacheDuration). This can avoid repeatedly accessing a server which is failing or simply has no metadata.

Defaults to "true" for remote dynamic metadata providers (MDQ, Dynamic) and "false" for the LocalDynamicProvider

 Remote Dynamic Provider XML Attributes

The following attributes are supported only for the remote dynamic MetadataProvider types (MDQDynamic):

Name

Type

Default

Description

cacheDirectory

string

Defines a directory in which downloaded metadata will be cached. During startup the directory is also scanned and the metadata loaded to prime the in-memory cache. This directory should be unique for every metadata provider configured.

A relative path will be applied relative to the /var/cache/shibboleth root, and the directory will be created if it does not exist.

backgroundInitialize

boolean

true

Flag indicating whether the plugin should initialize itself from the cache in the background to improve startup time. It has no effect if cacheDirectory is unset.

verifyHost

boolean

true

If true, attempts to resolve metadata using a TLS-enabled URL will verify the hostname in the server's certificate against the expected hostname (but this is the extent of the validation performed unless other configuration is in place)

ignoreTransport

boolean

false

If true, authentication of the transport layer will be ignored when resolving metadata. If false, a <TrustEngine> child element must be specified.

Accept 3.1

string

"application/samlmetadata+xml"

Overrides the standard Accept header used to request the SAML metadata content type

 Specific XML Attributes

The following attribute MUST be present:

Name

Type

Req?

Description

baseUrl

string

Y

Specifies the MDQ "base" URL of the metadata query service

 Common XML Child Elements

The following child elements are supported across all MetadataProvider types:

Name

Cardinality

Description

<MetadataFilter>

any

Metadata filter plugins to run

<KeyInfoResolver>

0 or 1

Not generally used, it provides an extension point to override the low-level handling of <ds:KeyInfo> elements and would be necessary to add support for some kind of custom XML key representation

 Remote Dynamic XML Child Elements

The following child elements are supported by the remote, on-demand MetadataProvider types (MDQDynamic):

Name

Cardinality

Description

<TrustEngine>

0 or 1

A TrustEngine plugin to apply to a server's certificate when resolving metadata using a TLS-enabled URL.

This trust engine obviously cannot require the use of metadata to operate. If not supplied, the ignoreTransport attribute must be set to true to avoid a configuration error. This is done to prevent a misconfigured trust engine from resulting in insecure metadata resolution.

Example

MDQ Metadata Source
<MetadataProvider type="MDQ" id="mdq.example.org" ignoreTransport="true" cacheDirectory="mdq-example-org"
		baseUrl="http://mdq.example.org/global/">
    <MetadataFilter type="Signature" certificate="metadata-signing-key.pem"/>
    <MetadataFilter type="RequireValidUntil" maxValidityInterval="8640000"/>
</MetadataProvider>

  • No labels