Attribute resolver dependency question/issue

Tom Poage tfpoage at ucdavis.edu
Thu May 3 18:52:00 BST 2012


On 05/02/2012 01:00 PM, Cantor, Scott wrote:
> On 5/2/12 3:58 PM, "Tom Poage" <tfpoage at ucdavis.edu> wrote:
>> https://wiki.shibboleth.net/confluence/display/SHIB2/ResolverPluginDependency
> 
> I think your issue was that you had an ordering dependency that you didn't
> make explicit. If the affiliation attribute has scripty bits that have to
> run, and then you want scoped affiliation to get built, you have to make
> the script a dependency, or it can choose to resolve LDAP alone and then
> scoped affiliation, and leave out the affiliation.

So I made ePSA explicitly depend on ePA, with (as I understood Chad to
say) both attribute and data connector as dependencies.

>     <resolver:AttributeDefinition xsi:type="ad:Scoped" id="eduPersonScopedAffiliation" scope="ucdavis.edu" sourceAttributeID="eduPersonAffiliation">
>         <resolver:Dependency ref="eduPersonAffiliation" />
>         <resolver:Dependency ref="ucdLDAP" />
...
>     </resolver:AttributeDefinition>

>    <resolver:AttributeDefinition id="eduPersonAffiliation" xsi:type="ad:Script" sourceAttributeID="eduPersonAffiliation">
>         <resolver:Dependency ref="ucdLDAP" />
...
>         <ad:Script><![CDATA[
>              importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);
>              if (eduPersonAffiliation == null) {
>                  eduPersonAffiliation = new BasicAttribute("eduPersonAffiliation");
>              }
>              if (eduPersonAffiliation.getValues().isEmpty() == false) {
>                  eduPersonAffiliation.getValues().add("member");
>              }
>         ]]></ad:Script>
>     </resolver:AttributeDefinition>

The "non-deterministic" issue remains where some authentications for
this particular user include ePSA and some don't.

Recall that an internal legacy value for ePA and ePSA is filtered out in
attribute-filter.xml, suggesting the script is not being triggered prior
to evaluating ePSA.

> 20120503T154947Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,eduPersonScopedAffiliation,givenName,email,displayName,|P7CQC...||
> 20120503T155020Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,givenName,email,displayName,|I7YMF...||
> 20120503T155323Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,givenName,email,displayName,|TF3KF...||
> 20120503T155416Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,givenName,email,displayName,|V5I3Y...||
> 20120503T155556Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,givenName,email,displayName,|PN4FO...||
> 20120503T160541Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,eduPersonScopedAffiliation,givenName,email,displayName,|JXRJG...||
> 20120503T160631Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,givenName,email,displayName,|55CKI...||
> 20120503T161745Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,eduPersonScopedAffiliation,givenName,email,displayName,|GYTZG...||
> 20120503T161845Z|urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect|...|eduPersonPrincipalName,transientId,surname,givenName,email,displayName,|ZGCLQ...||

The definitions are defined in the above order. Is definition order
important in terms of triggering desired behavior?

Is this simply a case of ambiguity, where the LDAP attribute name is the
same as the attribute id?

Lastly, the wiki page above indicates id="..." instead of ref="..." for
resolver:Dependency. I don't see 'id' in the XSD (or perhaps I'm not
reading it correctly).

Thanks.
Tom.


More information about the users mailing list