<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div>Would anyone care to share details of a working ebsco or proquest configuration?</div>
<div><br>
</div>
I've run into a dead end configuring attribute resolution and release for ebsco. We had it working briefly in April, but had to pull it out when it broke our google release[1]. Now, I'm trying to put it back in and not getting anywhere. I'm getting ebsco's
 &quot;Error 103&quot; message, without much indication what's wrong. i'm not getting a lot of help out of ebsco right now. I've been told that they only have tools to debug UK Shibboleth users.
<div><br>
</div>
<div>
<div>We're releasing eduPersonScopedAffiliation and eduPersonEntitlement, as you can see here:</div>
<div>
<div>&nbsp; &nbsp; &lt;afp:AttributeFilterPolicy id=&quot;ebscohost&quot;&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;afp:PolicyRequirementRule xsi:type=&quot;basic:AttributeRequesterString&quot; value=&quot;<a href="http://shibboleth.ebscohost.com">http://shibboleth.ebscohost.com</a>&quot; /&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;afp:AttributeRule attributeID=&quot;eduPersonEntitlement&quot;&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;afp:PermitValueRule xsi:type=&quot;basic:AttributeValueString&quot; value=&quot;urn:mace:dir:entitlement:common-lib-terms&quot; /&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/afp:AttributeRule&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;!--</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;afp:AttributeRule attributeID=&quot;eduPersonEntitlement&quot;&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;afp:PermitValueRule xsi:type=&quot;basic:ANY&quot; /&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/afp:AttributeRule&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; --&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;afp:AttributeRule attributeID=&quot;eduPersonScopedAffiliation&quot;&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;afp:PermitValueRule xsi:type=&quot;basic:ANY&quot; /&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/afp:AttributeRule&gt;</div>
<div>&nbsp; &nbsp; &lt;/afp:AttributeFilterPolicy&gt;</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Since we don't yet have directory information to resolve from, I've tried eduPersonEntitlement two ways:</div>
<div><br>
</div>
<div>First, as an AttributeValueString in attribute-filter.xml:</div>
<div>&lt;afp:PermitValueRule xsi:type=&quot;basic:AttributeValueString&quot; value=&quot;urn:mace:dir:entitlement:common-lib-terms&quot; /&gt;</div>
<div><br>
</div>
<div>Second, as a static data connector in attribute-resolver.xml:</div>
<div>
<div>&nbsp; &nbsp; &lt;resolver:DataConnector id=&quot;staticAttributes&quot; xsi:type=&quot;dc:Static&quot;&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;dc:Attribute id=&quot;eduPersonEntitlement&quot;&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;dc:Value&gt;urn:mace:dir:entitlement:common-lib-terms&lt;/dc:Value&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;/dc:Attribute&gt;</div>
<div>&nbsp; &nbsp; &lt;/resolver:DataConnector&gt;</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>eduPersonScopedAffiliation is resolved from the object classes attached to the LDAP entry for the user account, via a script in attribute-resolver.xml:</div>
<div>
<div>&nbsp; &nbsp; &lt;resolver:AttributeDefinition xsi:type=&quot;Script&quot; xmlns=&quot;urn:mace:shibboleth:2.0:resolver:ad&quot;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; id=&quot;eduPersonAffiliation&quot; sourceAttributeID=&quot;eduPersonAffiliation&quot;&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;resolver:Dependency ref=&quot;uarkLDAP&quot; /&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;resolver:AttributeEncoder xsi:type=&quot;enc:SAML1String&quot; xmlns=&quot;urn:mace:shibboleth:2.0:attribute:encoder&quot;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name=&quot;urn:mace:dir:attribute-def:eduPersonAffiliation&quot; /&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;resolver:AttributeEncoder xsi:type=&quot;enc:SAML2String&quot; xmlns=&quot;urn:mace:shibboleth:2.0:attribute:encoder&quot;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; name=&quot;urn:oid:1.3.6.1.4.1.5923.1.1.1.1&quot; friendlyName=&quot;eduPersonAffiliation&quot; /&gt;</div>
<div><br>
</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- The script, wrapped in a CDATA section so that special XML characters don't need to be removed --&gt;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &lt;Script&gt;&lt;![CDATA[</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; importPackage(Packages.edu.internet2.middleware.shibboleth.common.attribute.provider);</div>
<div><br>
</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Create attribute to be returned from definition</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation = new BasicAttribute(&quot;eduPersonAffiliation&quot;);</div>
<div><br>
</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // Add at least one value</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;affiliate&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // If the user has group membership</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (typeof objectClass != &quot;undefined&quot; &amp;&amp; objectClass != null ){</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // The go through each objectClass value and add the appropriate affiliation</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // The IdP will remove duplicate values so we don't need to worry about that here</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; for ( i = 0; objectClass != null &amp;&amp; i &lt; objectClass.getValues().size(); i&#43;&#43; ){</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; value = objectClass.getValues().get(i);</div>
<div><br>
</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (value.indexOf(&quot;uaoFaculty&quot;) &gt; -1){</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;member&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;employee&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;staff&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;faculty&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (value.indexOf(&quot;uoaStaff&quot;) &gt; -1){</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;member&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;employee&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;staff&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (value.indexOf(&quot;uoaStudent&quot;) &gt; -1){</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;member&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;student&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (value.indexOf(&quot;uoaApplicant&quot;) &gt; -1){</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; eduPersonAffiliation.getValues().add(&quot;member&quot;);</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //uoaRetired and uoaAffiliate only get the affiliate designation that all get</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }</div>
<div>&nbsp; &nbsp; &lt;/resolver:AttributeDefinition&gt;</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div>[1] Really, it was the poorly documented &quot;don't release transientID to google&quot; that broke, but we were really green then.</div>
</div>
<div>
<div>
<div id="signature-separator" style="line-height:5px; color: #888;">--&nbsp;</div>
<div id="sig" style="margin: 6px 0; padding: 8px; border-top: 1px #000 dotted; font: 11px/13px 'Century Gothic', Arial, Sans-Serif; color:#be0f34;">
<img src="http://goo.gl/2ZYiQ" alt="me" width="37" height="37" border="0" moz-do-not-send="true" style="float:left; padding: 2px 6px 0 0;">
<div id="line1" style="font-family: 'Sorts Mill Goudy'; font-style: normal; font-weight: 400; src: local('Sorts Mill Goudy Regular'), local('SortsMillGoudy-Regular'), url('http://themes.googleusercontent.com/static/fonts/sortsmillgoudy/v2/JzRrPKdwEnE8F1TDmDLMUhxcROG_7vu2ubkyRjqgeRY.ttf') format('truetype');">
<span style="color: black; font-weight:bold;">Don Faulkner, CISSP</span> | <span>
<a onmouseover="this.style.borderBottom = '1px solid #be0f34'" onmouseout="this.style.borderBottom = '1px dotted #be0f34'" style="color:#be0f34; text-decoration: none; border-bottom: 1px #be0f34 dotted;" href="http://its.uark.edu/">IT Security</a> at the
<a onmouseover="this.style.borderBottom = '1px solid #be0f34'" onmouseout="this.style.borderBottom = '1px dotted #be0f34'" style="color:#be0f34; text-decoration: none; border-bottom: 1px #be0f34 dotted; font-variant:small-caps;" href="http://www.uark.edu/">
University of Arkansas</a></span></div>
<div id="line2"><span style="font-family: Monaco, 'Lucida Sans Typewriter', monospace; font-family: 'Ubuntu Mono'; font-style: normal; font-weight: normal; src: local('Ubuntu Mono'), local('UbuntuMono-Regular'), url('http://themes.googleusercontent.com/static/fonts/ubuntumono/v2/ViZhet7Ak-LRXZMXzuAfkZ0EAVxt0G0biEntp43Qt6E.ttf') format('truetype'); color: black;">contact&gt;&gt;
</span><span style=""><a onmouseover="this.style.borderBottom = '1px solid #be0f34'" onmouseout="this.style.borderBottom = '1px dotted #be0f34'" style="color:#be0f34; text-decoration: none; border-bottom: 1px #be0f34 dotted;" href="mailto:donf@uark.edu">donf@uark.edu</a>
 | &#43;1 (479) 575-2905</span></div>
<div id="line3"><span style="font-family: Monaco, 'Lucida Sans Typewriter', monospace; font-family: 'Ubuntu Mono'; font-style: normal; font-weight: normal; src: local('Ubuntu Mono'), local('UbuntuMono-Regular'), url('http://themes.googleusercontent.com/static/fonts/ubuntumono/v2/ViZhet7Ak-LRXZMXzuAfkZ0EAVxt0G0biEntp43Qt6E.ttf') format('truetype'); color: black;">connect&gt;&gt;
</span><span style=""><a onmouseover="this.style.borderBottom = '1px solid #be0f34'" onmouseout="this.style.borderBottom = '1px dotted #be0f34'" style="color:#be0f34; text-decoration: none; border-bottom: 1px #be0f34 dotted;" href="http://www.facebook.com/uarkITS">uarkITS
 on Facebook</a> | <a onmouseover="this.style.borderBottom = '1px solid #be0f34'" onmouseout="this.style.borderBottom = '1px dotted #be0f34'" style="color:#be0f34; text-decoration: none; border-bottom: 1px #be0f34 dotted;" href="http://twitter.com/uaits">
@uaits</a> | <a onmouseover="this.style.borderBottom = '1px solid #be0f34'" onmouseout="this.style.borderBottom = '1px dotted #be0f34'" style="color:#be0f34; text-decoration: none; border-bottom: 1px #be0f34 dotted;" href="http://twitter.com/dfaulkner">
@dfaulkner</a> </span></div>
</div>
</div>
<br>
</div>
</div>
</body>
</html>