Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Here's an example policy (more or less matching an example in the default file) that applies this tag test :

...

to a couple of attributes. A couple of subtle points here.

One is that this approach is really a purely "local" one because the IdP Attribute names are local/internal only. You might assume most people use similar conventions and you'd be right, but you can't expect that to be true universally, so it is not appropriate to ever try and use this kind of metadata tag outside of a scenario that does not involve control of the IdP. It's not a fix for the brokenness of the more general SAML <RequestedAttribute> metadata element, which is unusable for a variety of reasons.

Less critically, note that this policy example demonstrates an optimization in that it applies the tag check in the <AttributeRule>(s) and not up in the <PolicyRequirementRule>. This has the advantage of requiring less XML to express and is about the same or better in performance than running multiple policies. It's not as good for an attribute that might have 3-5 or more values, since that would force the cost of checking for the tag to be paid for each value.

Code Block
<AttributeFilterPolicy id="Per-Attribute-singleValued">
	<PolicyRequirementRule xsi:type="ANY"/>

	<AttributeRule attributeID="eduPersonPrincipalName">
		<PermitValueRule xsi:type="EntityAttributeExactMatch"
			attributeName="http://macedir.org/entity-category"
                attributeValue="urn:mace:osu.edu:shibboleth:attribute-def:FERPA" />
        </PolicyRequirementRule>

        shibboleth.net/ns/attributes/releaseAllValues"
			attributeNamespace="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
			attributeValue="eduPersonPrincipalName" />
	</AttributeRule>

	<AttributeRule attributeID="eduPersonPrincipalName">
            mail">
		<PermitValueRule xsi:type="EntityAttributeExactMatch"
			attributeName="http://shibboleth.net/ns/attributes/releaseAllValues"
			attributeNamespace="urn:mace:osu.edu:shibboleth:attribute-release"
                attributeValue="eduPersonPrincipalNameoasis:names:tc:SAML:2.0:attrname-format:uri"
			attributeValue="mail" />
        	</AttributeRule>
	
</AttributeFilterPolicy>

Reference

Bean ID
Type
Function
RelyingParty.MDDrivenRelyingPartyConfigurationA template bean for use in defining metadata-driven RelyingParty overrides by hand
RelyingPartyByName.MDDrivenRelyingPartyConfigurationA template bean for defining metadata-driven RelyingParty overrides based on matching by name
RelyingPartyByGroup.MDDrivenRelyingPartyConfigurationA template bean for defining metadata-driven RelyingParty overrides based on matching by <EntitiesDescriptor> groups
RelyingPartyByTag.MDDrivenRelyingPartyConfigurationA template bean for defining metadata-driven RelyingParty overrides based on matching <EntityAttributes> extension content

Shibboleth.SSO.MDDriven

BrowserSSOProfileConfigurationDefault metadata-driven configuration for SAML 1.1 SSO profile
SAML1.AttributeQuery.MDDrivenAttributeQueryProfileConfigurationDefault metadata-driven configuration for SAML 1.1 Attribute Query profile
SAML1.ArtifactResolution.MDDrivenArtifactResolutionProfileConfigurationDefault metadata-driven configuration for SAML 1.1 Artifact Resolution profile
SAML2.SSO.MDDrivenBrowserSSOProfileConfigurationDefault metadata-driven configuration for SAML 2.0 SSO profile
SAML2.ECP.MDDrivenECPProfileConfigurationDefault metadata-driven configuration for SAML 2.0 Enhanced Client/Proxy profile
SAML2.Logout.MDDrivenDefault metadata-driven configuration for SAML 2.0 Single Logout profile
SAML2.AttributeQuery.MDDrivenAttributeQueryProfileConfigurationDefault metadata-driven configuration for SAML 2.0 Attribute Query profile
SAML2.ArtifactResolution.MDDrivenArtifactResolutionProfileConfigurationDefault metadata-driven configuration for SAML 2.0 Artifact Resolution profile
Liberty.SSOS.MDDrivenSSOSProfileConfigurationDefault metadata-driven configuration for Liberty ID-WSF Delegated SSO profile
CAS.LoginConfiguration.MDDrivenLoginConfigurationDefault metadata-driven configuration for CAS login prototol
CAS.ProxyConfiguration.MDDrivenProxyConfigurationDefault metadata-driven configuration for CAS proxy login protocol
CAS.ValidateConfiguration.MDDrivenValidateConfigurationDefault metadata-driven configuration for CAS ticket validation protocol
shibboleth.DefaultMDProfileAliasesList<String>A built-in list of alternate URL "prefixes" to property names, this is used to automate the generation of property tag names that apply to all profiles at the same time.
shibboleth.MDProfileAliasesList<String>An optional user-supplied list of additional URL prefixes to support custom property tag names
shibboleth.MDDrivenStringPropertyStringConfigurationLookupStrategyParent bean for defining new lookup strategies for string settings
shibboleth.MDDrivenBoolPropertyBooleanConfigurationLookupStrategyParent bean for defining new lookup strategies for boolean settings
shibboleth.MDDrivenIntPropertyIntegerConfigurationLookupStrategyParent bean for defining new lookup strategies for integer settings
shibboleth.MDDrivenLongPropertyLongConfigurationLookupStrategyParent bean for defining new lookup strategies for long integer settings
shibboleth.MDDrivenDoublePropertyDoubleConfigurationLookupStrategyParent bean for defining new lookup strategies for double settings
shibboleth.MDDrivenDurationPropertyDurationConfigurationLookupStrategyParent bean for defining new lookup strategies for Duration settings
shibboleth.MDDrivenListPropertyListConfigurationLookupStrategyParent bean for defining new lookup strategies for List settings
shibboleth.MDDrivenSetPropertySetConfigurationLookupStrategyParent bean for defining new lookup strategies for Set settings
shibboleth.MDDrivenBeanPropertyBeanConfigurationLookupStrategyParent bean for defining new lookup strategies for arbitrary Spring bean settings