Apparent inconsistencies in the Shibboleth wiki concerning persistent NameIDs for federating a Shibboleth IDP with Microsoft Azure
Florian Lengyel
Florian.Lengyel at cuny.edu
Thu Mar 31 14:38:13 EDT 2016
Thanks for this -- that's pretty close to what I've done. (I'm new to this--the documentation seems to contradict itself.) I'll check and get back to the list.
-F
-----Original Message-----
From: users [mailto:users-bounces at shibboleth.net] On Behalf Of Michael A Grady
Sent: Thursday, March 31, 2016 2:32 PM
To: Shib Users <users at shibboleth.net>
Subject: Re: Apparent inconsistencies in the Shibboleth wiki concerning persistent NameIDs for federating a Shibboleth IDP with Microsoft Azure
>
> They aren't related in any way. idp.persistentId.sourceAttribute is used to configure the hash seed for a computed persistentID. If you were to create your own configuration that leveraged that property for a separate purpose, that would be a local choice of course.
>
> -- Scott
>
>
> --
> To unsubscribe from this list send an email to users-unsubscribe at shibboleth.net
I did not test whether Microsoft would accept a different format for the NameID, because I was helping someone migrate existing config, and I didn't have time to explore (nor a test O365 domain in which to do that testing) whether the format could be changed from what they already were using. But as Scott noted on a different thread earlier today about the Persistent NameID format, the NameID Microsoft wants is NOT a valid SAMLv2 Persistent NameID, even though that is what the below is going to say it is.
OK that is a technical helpful remark, without any moralizing. Thank you.
The following works:
resolver:
<!-- Begin Office 365 Attributes
Note: Office 365 prefers to map the objectGUID for the immutable ID on a person
-->
<resolver:AttributeDefinition id="ImmutableID" xsi:type="Simple" xmlns="urn:mace:shibboleth:2.0:resolver:ad" sourceAttributeID="objectGUID">
<resolver:Dependency ref="campusActiveDirectory" />
</resolver:AttributeDefinition>
and make sure on the AD/LDAP connector:
<dc:LDAPProperty name="java.naming.ldap.attributes.binary" value="objectGUID"/>
Don't touch saml-namid,properties unless you have other reasons to. In saml-nameid.xml, you then add:
<!-- Microsoft requires a custom Persistent ID Generator that sends the AD GUID -->
<bean parent="shibboleth.SAML2AttributeSourcedGenerator"
p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
p:attributeSourceIds="#{ {'ImmutableID'} }">
<property name="activationCondition">
<bean parent="shibboleth.Conditions.RelyingPartyId" c:candidates="#{{'urn:federation:MicrosoftOnline'}}" />
</property>
</bean>
Where specifically is this added? This is almost identical to what I have, incidentally.
And you "limit the damage of that invalid persistent nameid" by having that condition to only create that NameID for the SP it is needed for. You also, amongst a variety of special Relying Party config for them, need to tell it to use that format by adding a:
p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
Has anyone tested whether O365 actually checks the format and cares?
I'll try it--another group here has a ticket open with Microsoft.
--
Michael A. Grady
IAM Architect, Unicon, Inc.
Many thanks,
FL
More information about the users
mailing list