Requested Attributes in SP metadata
RequestedAttribute
elements allow an SP operator to document the attributes that the SP can use.
For a typical e-journal use case, the eduPersonScopedAffiliation
attribute is the only attribute that is required to allow access to protected content. However other SPs might include personalisations (saved searches, tailored content or display settings) which require a persistent and unique identifier for each user such as eduPersonTargetedID
. And collaboration sites may request that the IdP releases an email address for each user to allow notifications to be sent.
Requested Attributes are most useful for SPs that interoperate with IdPs which are registered outside the UK federation for two reasons:
- There is no guarantee that other federations will define the same core attributes as the UK federation, although many other federations do use the
eduPerson
schema - Some federations recommend that their IdPs configure attribute release rules based on input from
RequestedAttribute
elements
The presence of an attribute in the RequestedAttribute
element does not imply that the attributes are required, although that may be the case. It also does not imply that the IdP operator must release the attributes (or automatically does so). It is the IdP operator's responsibility to configure attribute release according to their organization's policy, and RequestedAttribute
elements can inform that decision.
For further information on attributes and their usage see section 7 of the Technical Recommendations for Participants.
There is more information about Requested Attributes on the Shibboleth website.
Recommendations
As your SP is operating in a federated system, you should only request attributes which have been standardized, for example in the eduPerson
specification or inetOrgPerson
specification, and which have OIDs that are widely known.
We recommend that only the OID-forms of attributes are listed in an SP registration, even if your SP supports SAML 1 (which typically would use urn:mace
forms of attributes).
- Ensure your SP is preferentially using SAML 2 over SAML 1. First, ensure that your SP is configured to prefer SAML 2 when in an SP-first flow (for example, from a login link on your SP). Secondly, check whether any accesses to your SP are from SAML 1 IdP-first login flows. Please contact the UK federation helpdesk for further advice and assistance in this area.
- If your SP is SAML 1-only, you must upgrade it to SAML 2 operation before considering
RequestedAttribute
elements.
Procedure for adding RequestedAttribute elements
Let us know the SAML attributes your SP requires during registration. If the attributes are in the core set of UK federation attributes, you only need to include the name of the attribute, for example eduPersonScopedAffiliation & eduPersonTargetedID. If the attribute is outside the core set, please provide both the name and OID of the attribute to reduce ambiguity.
If your SP requires one or more attributes to make authorization decisions, please ask us to set the isRequired
flag for those attributes. We have also heard that some other federations need the isRequired
flag to automatically determine attribute release. Please contact the UK federation helpdesk for further advice and assistance in this area.
RequestedAttributes can also be added at any time after registration.
Example RequestedAttribute elements
This example is for an SP that can use all 4 UK federation core attributes, and which requests an email address.
<AttributeConsumingService index="0"> <ServiceName xml:lang="en">Your Service Name here</ServiceName> <!-- eduPersonScopedAffiliation --> <RequestedAttribute FriendlyName="eduPersonScopedAffiliation" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.9" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/> <!-- eduPersonTargetedID --> <RequestedAttribute FriendlyName="eduPersonTargetedID" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.10" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/> <!-- eduPersonPrincipalName --> <RequestedAttribute FriendlyName="eduPersonPrincipalName" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/> <!-- eduPersonEntitlement --> <RequestedAttribute FriendlyName="eduPersonEntitlement" Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.7" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/> <!-- inetOrgPerson: mail --> <RequestedAttribute FriendlyName="mail" Name="urn:oid:0.9.2342.19200300.100.1.3" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"/> </AttributeConsumingService>