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 20:40:08 EDT 2016




Florian,

...
There was a “Commercial Interop” section in the IdP V2 Wiki space where deployers could add helpful notes related to difficult integrations. I copied that section over to the V3 space and added this page ...
-WFH

Was this tested with V3? Now I see that adding  this portion of the example in section 5 of https://wiki.shibboleth.net/confluence/display/IDP30/Office+365

  <!-- Persistent ID Generator for all entities except Microsoft -->
    <bean parent="shibboleth.SAML2PersistentGenerator">
        <property name="activationCondition">
            <bean parent="shibboleth.Conditions.NOT">
                <constructor-arg>
                    <bean parent="shibboleth.Conditions.RelyingPartyId" c:candidates="#{{'urn:federation:MicrosoftOnline'}}" />
                </constructor-arg>
            </bean>
        </property>
    </bean>

combined with an unmodified, original  saml-nameid.properties file  will lead to the errors  

2016-03-31 18:53:32,099 - ERROR [net.shibboleth.utilities.java.support.service.AbstractReloadableService:181] - Service 'shibboleth.Na                   meIdentifierGenerationService': Initial load failed
net.shibboleth.utilities.java.support.service.ServiceException: org.springframework.beans.factory.BeanCreationException: Error creatin                   g bean with name 'shibboleth.SAML2NameIDGenerators': Cannot create inner bean 'shibboleth.SAML2PersistentGenerator$child#f33d21f' of t                   ype [net.shibboleth.idp.saml.nameid.impl.PersistentSAML2NameIDGenerator] while setting bean property 'sourceList' with key [1]; nested                    exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'shibboleth.SAML2PersistentGenera                   tor$child#f33d21f' defined in file [/opt/shibboleth-idp/conf/saml-nameid.xml]: Cannot resolve reference to bean '#{'shibboleth.Compute                   dPersistentIdGenerator'.trim()}' while setting bean property 'persistentIdGenerator'; nested exception is org.springframework.beans.fa                   ctory.BeanCreationException: Error creating bean with name 'shibboleth.ComputedPersistentIdGenerator' defined in file [/opt/shibboleth                   -idp/system/conf/saml-nameid-system.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUp                   dateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'salt' threw exception; nested exception is n                   et.shibboleth.utilities.java.support.logic.ConstraintViolationException: Salt cannot be null or empty

Apparently, unless one wants a persistent NameID generator, perhaps for some other SP than Microsoft Azure, the above  portion of the configuration of saml-nameid.xml  mentioned in section 5 of https://wiki.shibboleth.net/confluence/display/IDP30/Office+365 
should be omitted; otherwise additional properties in saml-nameid.properties have to be set.
In my configuration, only the custom persistent NameID generator is needed--so far.

I think this could be mentioned in the documentation. I'm doing what https://wiki.shibboleth.net/confluence/display/IDP30/Office+365  and Michael A. Grady suggest, and shibboleth is sending the correct SAML assertions (Issuer, IDPEmail and NameID) that Azure presumably expects). The login failure may be a question of what was synchronized with Azure--this is in the hands of another group here.

It will be gratifying for CUNY, the largest urban public university in the United States, to adopt Shibboleth and to work with other SPs.

-F


More information about the users mailing list