Circular dependency in attribute resolver

Christopher Bongaarts cab at umn.edu
Wed May 11 17:36:20 EDT 2016


On 5/11/2016 4:02 PM, Cantor, Scott wrote:
>> The IdP refuses to load this configuration, because of the circular
>> dependency around umnCareerOffice.  I suspect I may be able to fix it by
>> changing the umnCareerOfficeSplit Dependency to the data connector
>> umnLDAP with umnCareerOffice as a sourceAttributeID.   But it would be
>> nice to avoid having to generate temporary objects for all of the LDAP
>> attributes in the entry just to get one of them.
> What temporary objects?

I believe it's specific to Script attributes, to provide the V2 
emulation objects:

2016-05-11 16:07:31,009 - DEBUG 
[net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:210] 
- Attribute Definition 'umnCareerOfficeSplit': adding to-be-populated 
attribute to script context
2016-05-11 16:07:31,009 - DEBUG 
[net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:216] 
- Attribute Definition 'umnCareerOfficeSplit': adding contexts to script 
context
2016-05-11 16:07:31,009 - DEBUG 
[net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:226] 
- Attribute Definition 'umnCareerOfficeSplit': adding emulated V2 
request context to script context
2016-05-11 16:07:31,009 - DEBUG 
[net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:231] 
- Attribute Definition 'umnCareerOfficeSplit': adding dependent 
attribute 'umnOTRSuppress' with the following values to the script 
context: [StringAttributeValue{value=TRUE}]
2016-05-11 16:07:31,010 - DEBUG 
[net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:231] 
- Attribute Definition 'umnCareerOfficeSplit': adding dependent 
attribute 'umnRemoteAccess' with the following values to the script 
context: [StringAttributeValue{value=FALSE}]
2016-05-11 16:07:31,010 - DEBUG 
[net.shibboleth.idp.attribute.resolver.ad.impl.ScriptedAttributeDefinition:231] 
- Attribute Definition 'umnCareerOfficeSplit': adding dependent 
attribute 'umnSuppress' with the following values to the script context: 
[StringAttributeValue{value=entry}]
[...etc...]

At least it presumably goes away if I update the Script attributes to 
use the V3 interface.

BTW, I tried the change above (Dependency on umnLDAP) and it worked.  It 
just makes the IdP do extra work in copying all those attributes.

>
>> Or maybe there's some other
>> way to say "this attribute depends on the umnLDAP attribute
>> umnCareerOffice, not the IdP attribute with the same name".
> No, but you can rename LDAP attribute results now also.
>
> I would be interested to know if V3 would allow you to define a dependency on a specific DataConnector attribute though. I hope not, and that this represents a change that prevents something V2 didn't mean to allow but did.

I went through my resolver conf and verified that every attribute 
referenced in a Dependency had a corresponding attribute definition 
(typically a Simple depending on umnLDAP).  So I don't have any direct 
dependencies on any DC attributes.

But now at least I've got another workaround: I can define a Simple 
attribute with some other name (e.g. "umnCareerOffice-LDAP-Edition", 
sourced from the LDAP umnCareerOffice (via a Dependency on umnLDAP and 
appropriate sourceAttributeID), and use that as the Dependency for 
umnCareerOfficeSplit.  Or I could use the LDAP field renaming.

Fortunately, it's not very common for us to want a Shib attribute with 
the same name as an LDAP attribute to be released with a completely 
different value.

-- 
%%  Christopher A. Bongaarts   %%  cab at umn.edu          %%
%%  OIT - Identity Management  %%  http://umn.edu/~cab  %%
%%  University of Minnesota    %%  +1 (612) 625-1809    %%

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20160511/a37875e3/attachment-0001.html>


More information about the users mailing list