Apparent inconsistencies in the Shibboleth wiki concerning persistent NameIDs for federating a Shibboleth IDP with Microsoft Azure

Michael A Grady mgrady at unicon.net
Thu Mar 31 14:32:05 EDT 2016


> 
> 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.

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>

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?

--
Michael A. Grady
IAM Architect, Unicon, Inc.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 842 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://shibboleth.net/pipermail/users/attachments/20160331/2d6d6cee/attachment.sig>


More information about the users mailing list