Scoped Attribute Definition

A scoped attribute definition creates an attribute from the values of another attribute definition or data connector combined with a specified scope value.

When an attribute created by a scoped attribute definition is being filtered, its "value" for the purposes of filters like AttributeValueString is the original, unscoped, value. To filter on the value of the scope, use filters like AttributeScopeString instead.

The following steps walk through creating a scoped attribute definition.

1. Define the Definition

The definition is defined with the element <resolver:AttributeDefinition xsi:type="Scoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad"> with the following required attribute:

and the following optional attributes:

<resolver:AttributeDefinition xsi:type="Scoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad">
                              id="UNIQUE_ID"
                              scope="example.edu">

     <!-- Remaining configuration from the next step go here -->

</resolver:AttributeDefinition>

2. Define Dependencies

It is very common for one component, like attribute definitions, within the attribute resolver to depend on information retrieved or constructed from another component.

Dependencies are expressed by the <resolver:Dependency> with a ref attribute whose value is the unique ID of the attribute definition or the data connector that this connector depends on.

<resolver:AttributeDefinition xsi:type="Scoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad">
                              id="UNIQUE_ID"
                              scope="example.edu">

     <resolver:Dependency ref="DEFINITION_ID_1" />
     <resolver:Dependency ref="DEFINITION_ID_2" />
     <resolver:Dependency ref="CONNECTOR_ID_3" />
     <resolver:Dependency ref="CONNECTOR_ID_4" />

</resolver:AttributeDefinition>