InputDataConnector

Namespace: urn:mace:shibboleth:2.0:resolver
Schema: http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd

Overview

This element defines a multiple input source to a containing <AttributeDefinition> or <DataConnector>. The precise semantics depend on the type of the enclosing element.

Multi-Attribute Definitions

Multi-attribute definitions are <AttributeDefinition> or <DataConnector> types which can consume multiple input attributes at once. The currently supported cases include:

In this case, all of the specified input attributes are made available to the enclosing definition. If an attribute of the same name has already been provided, then the values are combined with it.

Multi-Value Definitions

Multi-value definitions are <AttributeDefinition> or <DataConnector> types which consume multiple attribute values at once. These values are often, but not always, from one input. Nearly all AttributeDefinition types are multi-value capable. In this case all the attributes and values are made available and values from multiple like-named attributes are combined.

In this situation it is common to only specify a single attribute via attributeNames, but this is by no means required and so this mechanism can be used to combine the values from multiple attributes from the same DataConnector into one output attribute.

The ComputedId and StoredId DataConnectors in contrast require a single value (which may come from multiple sources, all but one of which would need to be empty).

Reference

Name

Type

Description

Name

Type

Description

ref

String

This is the identifier of a DataConnector plugin to include as a dependency

attributeNames

Space-delimited list

These are the attributes to pull from the connector's results as dependencies (a single name can of course be specified).

Mutually exclusive with allAttributes

allAttributes

boolean

If present and "true", indicates that all the connector's attributes should be supplied as dependencies.

Mutually exclusive with attributeNames

Examples

The following attribute definition combines the attribute values from four attributes from three input sources.  After this runs the output attribute "MultiIn" will contain:

  • All the values from the attribute definition 'attribute1'

  • All the values from the attributes 'attribute2' and 'attribute3' sourced from the data connector 'connector1'

  • All the values from the attributes 'attribute4'  sourced from the data connector 'connector2'

This is because Simple attribute definitions are multi-value definitions

<AttributeDefinition id="MultiIn" xsi:type="Simple"> <InputAttributeDefinition ref="attribute1"/> <InputDataConnector ref="connector1" attributeNames="attribute2 attribute3" /> <InputDataConnector ref="connector2" attributeNames="attribute4" /> </AttributeDefinition>

The following attribute definition shows how to provide multiple input attributes to a Scripted Attribute Definition.  When this runs the definition will have access to four attributes:

  • An attribute called 'attribute1' (with values from that attribute definition)

  • Attributes called 'attribute2' and 'attribute3' with values sourced from the attributes of those names in data connector 'connector1'

  • An attribute called 'attribute4'  with values sourced from the data connector 'connector2'

This is because Scripted attribute definitions are multi-attribute definitions

<AttributeDefinition id="Scripted" xsi:type="Scripted"> <InputAttributeDefinition ref="attribute1"/> <InputDataConnector ref="connector1" attributeNames="attribute2 attribute3" /> <InputDataConnector ref="connector2" attributeNames="attribute4" /> </AttributeDefinition>

In the following definition all the attributes from data connector DC1 are made available to the definition

<AttributeDefinition id="Scripted" xsi:type="Scripted"> <InputDataConnector ref="DC1" allAttributes="true" /> </AttributeDefinition>