Should IDP/SP metadata contain a roleDescriptor tag?

Tom Scavo trscavo at gmail.com
Mon Jul 9 06:53:35 EDT 2012


Hi Keith,

On Sun, Jul 8, 2012 at 11:09 PM, Wessel, Keith William
<kwessel at illinois.edu> wrote:
>
> The vendor claims that the XML generated by Shibboleth's metagen.sh is flawed because it doesn't contain a <roleDescriptor> tag. I argued back that roleDescriptor is abstract and not meant to be used literally; rather, spSSODescriptor or idpSSODescriptor should be used.

RoleDescriptor is indeed abstract but it can be used literally as long
as a type is specified. Here's an example:

<md:RoleDescriptor
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:query="urn:oasis:names:tc:SAML:metadata:ext:query"
    xsi:type="query:AttributeQueryDescriptorType"
    protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol
urn:oasis:names:tc:SAML:2.0:protocol">

For details, see this spec that Scott and I co-authored a long time ago:

https://wiki.oasis-open.org/security/SstcSamlMetadataExtQuery

> The vendor responded, in explaining what was wrong with the metagen.sh generated metadata:
>
> The <RoleDescriptor> tag has to be in front of the "protocolSupportEnumeration" tag.

To be precise, <RoleDescriptor> is an element and
protocolSupportEnumeration is an XML attribute, but no, you shouldn't
use RoleDescriptor to denote an IdP or an SP. You should use
IDPSSODescriptor and SPSSODescriptor for that.

I suppose you *could* write the equivalent of IDPSSODescriptor and
SPSSODescriptor in terms of RoleDescriptor, but I haven't tried that.
My guess is that it would be schema-valid.

> This is because EntityDescriptor is picking up the SAML 1.1 version for the EntityId since there is nothing in front of those white space separated protocols listed
> in the "protocolSupportEnumeration" signifying it is not part of EntityID but should be part of the RoleDescriptor.

I have no idea what that sentence is trying to say.

> Personally, I don't think the vendor's statement explains why they need roleDescriptor with spSSODescriptor is already there. The issue that generated all of this is that the vendor, acting as an IDP, is reading in metadata on one of our SPs and recognizing it as only SAML 1.1 capable which it, obviously, is more than that.

Well then they're doing something wrong.

> Can someone more well-versed in SAML help me out here?

It's a simple matter to show whether a SAML metadata file is
schema-valid. Instructions for showing InCommon metadata to be
schema-valid are in the spaces wiki
(https://spaces.internet2.edu/x/JwQjAQ). There's even a set of schema
files attached to that page.

There's no point in wasting cycles debating whether or not a chunk of
code is valid. Just run it through the validator and see what happens.

Hope this helps,
Tom


More information about the users mailing list