<div dir="ltr">Environment:<div><br></div><div>Debian Stretch, latest security update x64 VM</div><div>Shibboleth 3.4.6 as a WAR file in Jetty 9</div><div>Amazon Corretto 1.8.0 JDK</div><div><br></div><div>We are tasked with providing IdP services for a service provider with the idea being that our users will access a web service provided by company X, will use SAML/Shibboleth to login and authenticate against our Active Directory, and return the employeeNumber attribute back to the SP.</div><div><br></div><div>From an IT perspective we are strong on Active Directory, strong on Linux, but new to SSO via something like Shibboleth as this sort of thing (SSO via SAML) is not used much in our vertical segment in my experience.</div><div><br></div><div>At this point I think I have everything correct in terms of attribute-resolver.xml, attribute-filter.xml, idp.properties, etc configured for this type of use.</div><div><br></div><div>When I restart Jetty I see the following in the idp-process.log:</div><div><br></div><div>[LDAP: error code 49 - 80090308: LdapErr: DSID-0C0903A9, comment: AcceptSecurityContext error, data 52e, v1db1<br></div><div><br></div><div>Google work shows this type of error is related to LDAP credentials but running tests using the same base info via ldapsearch works across methods - vanilla LDAP, StartTLS, LDAPS, etc.</div><div><br></div><div>My ldap.properties file looks like this (values changed from defaults are shown for clarity)</div><div><br></div><div># Begin ldap.properties</div><div>idp.authn.LDAP.authenticator = bindSearchAuthenticator</div><div>idp.authn.LDAP.ldapURL = ldap://some.fqhn:389</div><div>idp.authn.LDAP.useStartTLS = false</div><div>idp.authn.LDAP.useSSL = false</div><div>idp.authn.LDAP.sslConfig = certificateTrust</div><div>idp.authn.LDAP.returnAttributes = employeeNumber</div><div>idp.authn.LDAP.baseDN = CN=Users,DC=acme,DC=com</div><div>idp.authn.LDAP.subtreeSearch = true</div><div>idp.authn.LDAP.bindDN = CN=idpuser,CN=Users,DC=acme,DC=com</div><div>idp.authn.LDAP.bindDNCredential = KRSOne</div><div>idp.authn.LDAP.userFilter = (sAMAccountName={user})</div><div>...</div><div># No change when we use StartTLS above vs LDAP for this line</div><div>idp.attribute.resolver.LDAP.useStartTLS = %{idp.authn.LDAP.useStartTLS:true}</div><div># End ldap.properties</div><div><br></div><div>And attribute-resolver.xml as far as the Data Connector:</div><div><br></div><div># Begin attribute-resolver.xml</div><div> <!-- Remember to remove "trustFile" and "useStartTLS" if you use plain LDAP connection --><br>  <DataConnector<br>    id="myLDAP"<br>    xsi:type="LDAPDirectory"<br>    ldapURL="%{idp.attribute.resolver.LDAP.ldapURL}"<br>    baseDN="%{idp.attribute.resolver.LDAP.baseDN}"<br>    useStartTLS="%{idp.attribute.resolver.LDAP.useStartTLS:true}"<br>    trustFile="%{idp.attribute.resolver.LDAP.trustCertificates}"<br>    principal="%{idp.attribute.resolver.LDAP.bindDN}"<br>    principalCredential="%{idp.attribute.resolver.LDAP.bindDNCredential}"><br>    <FilterTemplate><br>      <![CDATA[<br>                %{idp.attribute.resolver.LDAP.searchFilter}<br>            ]]><br>    </FilterTemplate><br>    <ConnectionPool<br>        minPoolSize="%{idp.pool.LDAP.minSize:3}"<br>        maxPoolSize="%{idp.pool.LDAP.maxSize:10}"<br>        blockWaitTime="%{idp.pool.LDAP.blockWaitTime:PT3S}"<br>        validatePeriodically="%{idp.pool.LDAP.validatePeriodically:true}"<br>        validateTimerPeriod="%{idp.pool.LDAP.validatePeriod:PT5M}"<br>        expirationTime="%{idp.pool.LDAP.idleTime:PT10M}"<br>        failFastInitialize="%{idp.pool.LDAP.failFastInitialize:false}" /><br><br>    <ReturnAttributes>*</ReturnAttributes><br>  </DataConnector><br></div><div>#End attribute-resolver.xml</div><div><br></div><div>In summary I'm missing something here but it isn't clear to me what is off.</div><div><br></div><div>The LDAP info is correct and we aren't using an external CAS so in theory Shibboleth should be the middle person between the SP and Active Directory.</div><div><br></div><div>The usual gremlins have been identified and checked out - firewalls, LDAP credentials, OS, stack, etc and I have to be missing something but as this is our first go round with Shibboleth I'm not sure exactly what that might be.</div><div><br></div><div>Any advice or direction anyone can provide would be very appreciated. </div></div>