Overview

The MappedAttributeInMetadata type is a Matcher which filters results based on <md:RequestedAttribute> elements within the request-indicated <md:AttributeConsumingService> in the SP's metadata.

In contrast to the saml:SAMLAttributeInMetadata type, the attributes are compared as native IdP attribute objects and values. That is, when the SAML metadata is loaded, the <md:RequestedAttribute> elements are examined and the attribute encoding rules defined in the AttributeResolverConfiguration are reversed to dereference the SAML names back into internal IdP-assigned attribute IDs.

The parameterization controls:

Schema Type and Location

The MappedAttributeInMetadata type is defined in the urn:mace:shibboleth:2.0:afp namespace, the schema for which can be located at http://shibboleth.net/schema/idp/shibboleth-afp.xsd

The deprecated basic:AttributeRequesterRegex type is defined in the urn:mace:shibboleth:2.0:afp:mf:basic namespace, the schema for which can be located at http://shibboleth.net/schema/idp/shibboleth-afp-mf-basic.xsd

Reference

Attributes

NameTypeDefaultDescription
matchIfMetadataSilent
BooleanfalseIf true then all input values are returned if and only if the metadata contains no <md:RequestedAttribute> information.
onlyIfRequired
Booleantrue (erroneously false prior to 3.2, see here)If this is true and the corresponding <md:RequestedAttribute> element does not specify isRequired="true" , then no values are matched.
attributeID
String
If this is present, then this is a PolicyRule returning true if the Matcher, when applied to the attribute with this ID, matches any values.
See AttributeValueString for an exmaple of how attributeID changes the meaning of a Matcher in a slightly less daunting scenario.
objectStrategyRef 3.4String
Refence to Function<SAMLMetadataContext,XMLObject> that allows the mapped attributes to be pulled from somewhere other than <md:RequestedAttribute> elements

Child Elements

None

Example

The example presumes that an attribute internal to the IdP called "eduPersonPrincipalName" is encoded to a SAML name that may be reflected in an SP's metadata. Thus, you can see that the attribute rule makes no reference to the SAML name at all, but relies on the mapping machinery within the IdP to figure out what the corresponding SAML name happens to be, and any/all attributes that will be encoded to a matching SAML name are going to match for the purposes of this rule.

<AttributeRule attributeID="eduPersonPrincipalName">
	<PermitValueRule xsi:type="MappedAttributeInMetadata" onlyIfRequired="true" matchIfMetadataSilent="true"/>
</AttributeRule>