The Shibboleth V2 IdP and SP software have reached End of Life and are no longer supported. This documentation is available for historical purposes only. See the IDP v4 and SP v3 wiki spaces for current documentation on the supported versions.

ResolverPrescopedAttributeDefinition

Prescoped Attribute Definition

A prescoped attribute definition creates scoped attribute values by splitting the values of a source attribute. The first atom becomes the attribute value and the second becomes the scope. For example, staff@example.org, when using the default scope delimiter '@', will have a value of 'staff' and a scope of 'example.org'.

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="Prescoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad"> with the following required attribute:

  • id - assigns a unique, within the resolver, identifier that may be used to reference this definition

and the following optional attributes:

  • scopeDelimiter - specifies the delimiter between the value and the scope within the source attribute values (default value: @)
  • dependencyOnly - a boolean flag that indicates that the attribute produced by this definition is used only by other resolver components and should not be released from the resolver; defaults to false
  • sourceAttributeID - the ID of the attribute, from the dependency connectors, used to construct this attribute (default value: ID of this attribute)
Prescoped Attribute Definition
<resolver:AttributeDefinition xsi:type="Prescoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
                              id="UNIQUE_ID">

     <!-- 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.

Basic Scoped Attribute Definition with Dependencies
<resolver:AttributeDefinition xsi:type="Prescoped" xmlns="urn:mace:shibboleth:2.0:resolver:ad"
                              id="UNIQUE_ID">

     <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>