Multiple DataConnector Precedence Order

IAM David Bantz dabantz at alaska.edu
Mon Apr 4 14:28:49 EDT 2016


>
>    <resolver:AttributeDefinition id="UDCID" xsi:type="Script" xmlns=
"urn:mace:shibboleth:2.0:resolver:ad">

        <resolver:Dependency ref="myLDAP" />

        <resolver:Dependency ref="uaADLDAP" />

        <resolver:Dependency ref="EDIRemployeeNumber" />

        <resolver:Dependency ref="ADemployeeNumber" />

        <resolver:AttributeEncoder xsi:type="SAML1String" xmlns=
"urn:mace:shibboleth:2.0:attribute:encoder"

                name="https://iam.alaska.edu/trac/wiki/IamUaArp#UDCID" />

        <resolver:AttributeEncoder xsi:type="SAML2String" xmlns=
"urn:mace:shibboleth:2.0:attribute:encoder"

                name="https://iam.alaska.edu/trac/wiki/IamUaArp#UDCID"
friendlyName="UDCID" />

<!-- Script attempts to provide UDCID if AD and/or EDIR return value of
employeeNumber  -->

<!-- If neither directory has a value in the attribute for UDCID, UDCID
will have null value and not be released -->

<!-- Script presumes employeeNumber is single-valued directory attribute in
edir and AD -->

<!-- debug-level log messages contain directory values and final attribute
value-->

        <Script>

          <![CDATA[




  importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);

        importPackage(Packages.org.slf4j);

        logger =
LoggerFactory.getLogger("edu.internet2.middleware.shibboleth.resolver.Script.scriptTest");

        logger.debug("Starting UDCID Attribute Resolver Script:");

        if (UDCID == null)

             {UDCID = new BasicAttribute("UDCID");}

      <!-- If there is a value of employeeNumber from AD, use that for
UDCID  -->

        if (typeof ADemployeeNumber != "undefined" && ADemployeeNumber !=
null && ADemployeeNumber.getValues().size() !=0)

             {  logger.debug("UA AD LDAP UDCID Values: " +
ADemployeeNumber.getValues());

                UDCID.getValues().add(ADemployeeNumber.getValues().get(0))

             }

     <!-- If there isn't a value of employeeNumber from AD, use a value
from EDIR -->

       else

            { if (typeof EDIRemployeeNumber != "undefined" &&
EDIRemployeeNumber != null && EDIRemployeeNumber.getValues().size() !=0)

                {   logger.debug("Oracle (EDIR) LDAP UDCID Values: " +
EDIRemployeeNumber.getValues());


  UDCID.getValues().add(EDIRemployeeNumber.getValues().get(0))

                }

             }

        logger.debug("Completed UDCID value: " + UDCID.getValues());


       ]]>
     </Script>

        </resolver:AttributeDefinition>

On Fri, Apr 1, 2016 at 7:20 PM, Mr. Christopher Bland <chris at fdu.edu> wrote:

> Hi David,
>
> Your solution sounds like the best option during the migration since we
> are starting to create AD only users.  If you are willing to provide a
> sample attribute definition I would greatly appreciate it as well as any
> who looks at this tread in the future.
>
> -Chris
>
>
> On Mar 31, 2016, at 1:22 PM, IAM David Bantz <dabantz at alaska.edu> wrote:
>
> This isn't too hard to build in a scripted attribute - we do exactly this
> with sources MS AD and Oracle LDAP sources: map attribute to the preferred
> source attribute if it exists, otherwise to the secondary source. (happy to
> provide our example if requested)
>
> David Bantz
> UA OIT IAM
>
>
>
>
>
>
>
> On Thu, Mar 31, 2016 at 5:50 AM, Cantor, Scott <cantor.2 at osu.edu> wrote:
>
>> > My organization is in the process of moving a new Directory Server.  As
>> such I
>> > have configure DataConnector for each.  What I have started to notice
>> that
>> > for a subset of users that have had information updated in the new
>> system I
>> > am getting multivalued attributes for things like surname.  ex
>> Directory 1 has
>> > Surname=Smith, Directory 2 has Surname=Smith Sr.  This would result in
>> the
>> > attribute Surname=Smith;Smith Sr.
>> >
>> > Is there any way to say Directory 1 is authoritative for Surname since
>> I cannot
>> > prevent both Directories from responding?
>>
>> Not without your own logic to do it. Generally you should have one
>> directory be a failover for the other, not access both.
>>
>> -- Scott
>>
>> --
>> To unsubscribe from this list send an email to
>> users-unsubscribe at shibboleth.net
>>
>
> --
> To unsubscribe from this list send an email to
> users-unsubscribe at shibboleth.net
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/users/attachments/20160404/42b4917f/attachment.html>


More information about the users mailing list