SubjectDataConnector questions and NPE

Nate Klingenstein ndk at signet.id
Sun Oct 11 06:19:34 UTC 2020


All,

I'm trying to build the simplest proxy configuration that I can based on the SubjectDataConnector.  Everything starts up fine and goes fine until things get passed into canonicalization.  First, the config:

<AttributeResolver
        xmlns="urn:mace:shibboleth:2.0:resolver"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:mace:shibboleth:2.0:resolver http://shibboleth.net/schema/idp/shibboleth-attribute-resolver.xsd">


    <!-- ========================================== -->
    <!--      Attribute Definitions                 -->
    <!-- ========================================== -->

    <AttributeDefinition id="uid" xsi:type="Simple">
            <InputDataConnector ref="passThroughAttributes" attributeNames="uid" />
    </AttributeDefinition>

    <AttributeDefinition id="mail" xsi:type="Simple">
            <InputDataConnector ref="passThroughAttributes" attributeNames="mail" />
    </AttributeDefinition>
    <!-- ========================================== -->
    <!--      Data Connectors                       -->
    <!-- ========================================== -->

    <DataConnector id="passThroughAttributes" xsi:type="Subject" forCanonicalization="true" relyingParties="https://samltest.id/saml/idp" exportAttributes="mail uid" />
</AttributeResolver>



<AttributeFilterPolicyGroup id="ShibbolethFilterPolicy"
        xmlns="urn:mace:shibboleth:2.0:afp"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd">

            <AttributeFilterPolicy id="saml-proxy-pass-through">
                                        <PolicyRequirementRule xsi:type="Issuer" value="https://samltest.id/saml/idp" />
                                        <AttributeRule attributeID="uid" permitAny="true" />
                                        <AttributeRule attributeID="mail" permitAny="true" />
            </AttributeFilterPolicy>

</AttributeFilterPolicyGroup>


    <util:list id="shibboleth.c14n.attribute.AttributesToResolve">
            <value>uid</value>
            <value>mail</value>
    </util:list>

    <!--
    A list of attributes to search for a value to produce as the normalized subject name.
    This will normally be something you resolve above.
    -->
    <util:list id="shibboleth.c14n.attribute.AttributeSourceIds">
            <value>uid</value>
            <value>mail</value>
    </util:list>

^ (I know mail shouldn't be necessary here, but I was fiddling)


Second, the logs and NPE:

2020-10-11 05:54:03,965 - 67.164.181.150 - DEBUG [net.shibboleth.idp.saml.saml2.profile.impl.ValidateSAMLAuthentication:414] - Profile Action ValidateSAMLAuthentication: Incoming SAML Attributes mapped to attribute IDs: [eduPersonEntitlement, telephoneNumber, mail, displayName, givenName, uid, samlSubjectID, sn]
2020-10-11 05:54:03,974 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.filter.impl.AttributeFilterImpl:112] - Attribute filtering engine 'ShibbolethAttributeFilter'  Beginning process of filtering the following 8 attributes: [samlSubjectID, sn, telephoneNumber, displayName, uid, eduPersonEntitlement, mail, givenName]

2020-10-11 05:54:03,976 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.filter.AttributeRule:183] - Attribute filtering engine '/AttributeFilterPolicyGroup:ShibbolethFilterPolicy/AttributeRule:_c49216f621084fcf4b1def468a53a787'  Filtering values for attribute 'uid' which currently contains 1 values
2020-10-11 05:54:03,976 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.filter.AttributeRule:192] - Attribute filtering engine '/AttributeFilterPolicyGroup:ShibbolethFilterPolicy/AttributeRule:_c49216f621084fcf4b1def468a53a787'  Filter has permitted the release of 1 values for attribute 'uid'
2020-10-11 05:54:03,977 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.filter.AttributeRule:183] - Attribute filtering engine '/AttributeFilterPolicyGroup:ShibbolethFilterPolicy/AttributeRule:_ea683ca8f81a38b55c0858818b770ba6'  Filtering values for attribute 'mail' which currently contains 1 values
2020-10-11 05:54:03,977 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.filter.AttributeRule:192] - Attribute filtering engine '/AttributeFilterPolicyGroup:ShibbolethFilterPolicy/AttributeRule:_ea683ca8f81a38b55c0858818b770ba6'  Filter has permitted the release of 1 values for attribute 'mail'

2020-10-11 05:54:03,978 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.filter.impl.AttributeFilterImpl:178] - Attribute filtering engine 'ShibbolethAttributeFilter': 1 values for attribute 'uid' remained after filtering
2020-10-11 05:54:03,979 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.filter.impl.AttributeFilterImpl:178] - Attribute filtering engine 'ShibbolethAttributeFilter': 1 values for attribute 'mail' remained after filtering

2020-10-11 05:54:04,039 - 67.164.181.150 - DEBUG [net.shibboleth.idp.authn.impl.PopulateSubjectCanonicalizationContext:75] - Profile Action PopulateSubjectCanonicalizationContext: Installing 3 canonicalization flows into SubjectCanonicalizationContext
2020-10-11 05:54:04,042 - 67.164.181.150 - INFO [Shibboleth-Audit.SSO:282] - 67.164.181.150||2020-10-11T05:54:04.041970Z||https://samltest.id/saml/idp|_db379e4ad6bf057a864fe1e948e522b2|password|2020-10-11T05:54:00.284Z|mail,uid|AAdzZWNyZXQxcQg/hR+214RBbf6bMWWDvK404TheN1T88fORSPiHuZ3/8wt8f48PpxPBiQdalfEfsBYpMeL1ZwfhqV+/OM1DqabcdbfCZvlUIoBHYxoMG9D7/dVOhxzMv24pSBEpMm4+cInG|transient||false||POST|POST||Success|||Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36

2020-10-11 05:54:04,102 - 67.164.181.150 - DEBUG [net.shibboleth.idp.authn.impl.SelectSubjectCanonicalizationFlow:100] - Profile Action SelectSubjectCanonicalizationFlow: Checking canonicalization flow c14n/attribute for applicability...
2020-10-11 05:54:04,102 - 67.164.181.150 - DEBUG [net.shibboleth.idp.authn.impl.SelectSubjectCanonicalizationFlow:83] - Profile Action SelectSubjectCanonicalizationFlow: Selecting canonicalization flow c14n/attribute
2020-10-11 05:54:04,157 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:222] - Attribute Resolver 'ShibbolethAttributeResolver': Initiating attribute resolution
2020-10-11 05:54:04,157 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:431] - Attribute Resolver 'ShibbolethAttributeResolver': Resolving dependencies for 'passThroughAttributes'
2020-10-11 05:54:04,157 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:440] - Attribute Resolver 'ShibbolethAttributeResolver': Finished resolving dependencies for 'passThroughAttributes'
2020-10-11 05:54:04,158 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:392] - Attribute Resolver 'ShibbolethAttributeResolver': Resolving data connector passThroughAttributes
2020-10-11 05:54:04,158 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.AbstractResolverPlugin:246] - Resolver plugin 'passThroughAttributes': activation criteria not met, nothing to do
2020-10-11 05:54:04,158 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:412] - Attribute Resolver 'ShibbolethAttributeResolver': Data connector 'passThroughAttributes' produced no attributes
2020-10-11 05:54:04,160 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:250] - Attribute Resolver 'ShibbolethAttributeResolver': Attempting to resolve the following attribute definitions [uid, mail]
2020-10-11 05:54:04,161 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:431] - Attribute Resolver 'ShibbolethAttributeResolver': Resolving dependencies for 'uid'
2020-10-11 05:54:04,161 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:440] - Attribute Resolver 'ShibbolethAttributeResolver': Finished resolving dependencies for 'uid'
2020-10-11 05:54:04,162 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.AbstractAttributeDefinition:137] - Attribute Definition 'uid': produced an attribute with no values

2020-10-11 05:54:04,163 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:335] - Attribute Resolver 'ShibbolethAttributeResolver': Attribute definition 'uid' produced an attribute with 0 values
2020-10-11 05:54:04,164 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:431] - Attribute Resolver 'ShibbolethAttributeResolver': Resolving dependencies for 'mail'
2020-10-11 05:54:04,164 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl:440] - Attribute Resolver 'ShibbolethAttributeResolver': Finished resolving dependencies for 'mail'
2020-10-11 05:54:04,164 - 67.164.181.150 - DEBUG [net.shibboleth.idp.attribute.resolver.AbstractAttributeDefinition:137] - Attribute Definition 'mail': produced an attribute with no values

2020-10-11 05:54:04,174 - 67.164.181.150 - ERROR [net.shibboleth.idp.authn:-2] - Uncaught runtime exception
java.lang.NullPointerException: null
        at net.shibboleth.idp.attribute.resolver.impl.AttributeResolverImpl.collectExportingDataConnectors(AttributeResolverImpl.java:542)
2020-10-11 05:54:04,179 - 67.164.181.150 - INFO [net.shibboleth.idp.authn.impl.SelectAuthenticationFlow:142] - Profile Action SelectAuthenticationFlow: Moving incomplete flow authn/SAML to intermediate set
2020-10-11 05:54:04,180 - 67.164.181.150 - DEBUG [net.shibboleth.idp.authn.impl.SelectAuthenticationFlow:274] - Profile Action SelectAuthenticationFlow: No specific Principals requested
2020-10-11 05:54:04,180 - 67.164.181.150 - DEBUG [net.shibboleth.idp.authn.impl.SelectAuthenticationFlow:312] - Profile Action SelectAuthenticationFlow: No usable active results available, selecting an inactive flow
2020-10-11 05:54:04,180 - 67.164.181.150 - INFO [net.shibboleth.idp.authn.impl.SelectAuthenticationFlow:316] - Profile Action SelectAuthenticationFlow: No potential flows left to choose from, authentication failed

This, on the other hand, worked fine for uid:

            <AttributeFilterPolicy id="saml-proxy-pass-through">
                                        <PolicyRequirementRule xsi:type="Issuer" value="https://samltest.id/saml/idp" />
                                        <AttributeRule attributeID="uid" permitAny="true" />
                                        <AttributeRule attributeID="mail" permitAny="true" />
            </AttributeFilterPolicy>

    <AttributeDefinition xsi:type="SubjectDerivedAttribute"
            forCanonicalization="true"
            principalAttributeName="uid"
            id="proxied-uid"
            />

It would seem like I'm missing an activationCondition for the SubjectDataConnector, but it also seems like relyingParties should work and is mutually exclusive with a reference to an activationConditionRef.

https://wiki.shibboleth.net/confluence/display/IDP4/SubjectDataConnector

What am I doing wrong here?

Thanks in advance, and sorry for the long message,
Nate.

--------
Signet, Inc.
The Art of Access ®

https://www.signet.id




More information about the users mailing list