<html><head><meta http-equiv="Content-Type" content="text/html charset=iso-8859-1"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">To authenticate a user you need to bind with their credentials. <div>To do that, you typically need their explicit dn.</div><div>The usual way - what some call the "two step bind" - to authenticate a user that provides a username and password is to:</div><div>(1) bind as resource or privileged user and search the directory for the proper record based on the user-provided identifier, and retrieve a the user's dn</div><div>(2) bind with that dn and the user-provided password</div><div><br></div><div>You might be able to do (1) as an anonymous user if your directory will support it, but that would require a different process that may or may not be directly supported in edu.vt.middleware.ldap.jaas.LdapLoginModule configuration (I don't know the underlying code)</div><div><div bgcolor="#FFFFFF" text="#000000"><div class="moz-cite-prefix"><br></div><div class="moz-cite-prefix">David Bantz</div></div><div><br><div><div>On Mon, 20 May 2013, at 11:25 , Farrukh Najmi <<a href="mailto:farrukh@wellfleetsoftware.com">farrukh@wellfleetsoftware.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<div bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix"><br>
I am wondering ifmy authentication problem with my ldap server is
due to my not specifying bindDN and bindCredential in my
edu.vt.middleware.ldap.jaas.LdapLoginModule configuration. <br>
<br>
My Ldap server does not have a privileged user to create the
connection with. Thus I do not specify bindDN and bindCredential
in my edu.vt.middleware.ldap.jaas.LdapLoginModule configuration. <br>
<br>
Is this the correct thing to do in my situation?<br>
<br>
On 05/20/2013 01:09 PM, Farrukh Najmi wrote:<br>
</div>
<blockquote cite="mid:519A58E1.2060507@wellfleetsoftware.com" type="cite">
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<div class="moz-cite-prefix"><br>
And here are the debug messages leading up to the
authenticatiuon failure. Again the same config works with
spring-security in my webapp and it also works with a JXplorer <a moz-do-not-send="true" href="http://sourceforge.net/projects/jxplorer/?source=dlp">random
ldap viewer app</a> I tried.<br>
<br>
12:49:53.138 - DEBUG
[edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet:170]
- Attempting to authenticate user rod<br>
12:49:53.155 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:144] - Begin
initialize<br>
12:49:53.155 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:180] - useFirstPass
= false<br>
12:49:53.155 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:181] - tryFirstPass
= false<br>
12:49:53.156 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:182] - storePass =
false<br>
12:49:53.156 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:183] - clearPass =
false<br>
12:49:53.156 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:184] -
setLdapPrincipal = true<br>
12:49:53.156 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:185] -
setLdapDnPrincipal = false<br>
12:49:53.156 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:186] -
setLdapCredential = true<br>
12:49:53.156 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:187] - defaultRole
= []<br>
12:49:53.157 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:188] -
principalGroupName = null<br>
12:49:53.157 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:189] -
roleGroupName = null<br>
12:49:53.157 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:77] -
userRoleAttribute = []<br>
12:49:53.178 - TRACE
[edu.vt.middleware.ldap.auth.AuthenticatorConfig:1385] - setting
searchScope: ONELEVEL<br>
12:49:53.181 - TRACE
[edu.vt.middleware.ldap.auth.AuthenticatorConfig:1370] - setting
baseDn: <br>
12:49:53.182 - TRACE
[edu.vt.middleware.ldap.auth.AuthenticatorConfig:1834] - setting
ssl: false<br>
12:49:53.182 - TRACE
[edu.vt.middleware.ldap.auth.AuthenticatorConfig:1168] - setting
ldapUrl: <a moz-do-not-send="true" class="moz-txt-link-freetext" href="ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org">ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org</a><br>
12:49:53.183 - TRACE
[edu.vt.middleware.ldap.auth.AuthenticatorConfig:290] - setting
userFilter: uid={0}<br>
12:49:53.184 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:83] - Created
authenticator:
edu.vt.middleware.ldap.auth.AuthenticatorConfig@611704718::env={java.naming.provider.url=<a moz-do-not-send="true" class="moz-txt-link-freetext" href="ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org">ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org</a>,
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory}<br>
12:49:53.185 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:412] - Begin
getCredentials<br>
12:49:53.185 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:413] -
useFistPass = false<br>
12:49:53.186 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:414] -
tryFistPass = false<br>
12:49:53.186 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:415] -
useCallback = false<br>
12:49:53.186 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:416] -
callbackhandler class =
javax.security.auth.login.LoginContext$SecureCallbackHandler<br>
12:49:53.186 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:419] - name
callback class = javax.security.auth.callback.NameCallback<br>
12:49:53.186 - TRACE
[edu.vt.middleware.ldap.jaas.LdapLoginModule:421] - password
callback class = javax.security.auth.callback.PasswordCallback<br>
12:49:53.187 - DEBUG
[edu.vt.middleware.ldap.auth.SearchDnResolver:102] - Looking up
DN using userFilter<br>
12:49:53.188 - DEBUG
[edu.vt.middleware.ldap.auth.SearchDnResolver:193] - Search with
the following parameters:<br>
12:49:53.188 - DEBUG
[edu.vt.middleware.ldap.auth.SearchDnResolver:194] - dn = <br>
12:49:53.188 - DEBUG
[edu.vt.middleware.ldap.auth.SearchDnResolver:195] - filter =
uid={0}<br>
12:49:53.189 - DEBUG
[edu.vt.middleware.ldap.auth.SearchDnResolver:196] -
filterArgs = [rod]<br>
12:49:53.189 - DEBUG
[edu.vt.middleware.ldap.auth.SearchDnResolver:197] -
searchControls = javax.naming.directory.SearchControls@69a6c106<br>
12:49:53.189 - DEBUG
[edu.vt.middleware.ldap.auth.SearchDnResolver:198] - handler =
[edu.vt.middleware.ldap.handler.FqdnSearchResultHandler@42caa71a]<br>
12:49:53.189 - TRACE
[edu.vt.middleware.ldap.auth.SearchDnResolver:200] - config =
{java.naming.provider.url=<a moz-do-not-send="true" class="moz-txt-link-freetext" href="ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org">ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org</a>,
java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory}<br>
12:49:53.190 - TRACE
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:93] -
setting connectionStrategy: DEFAULT<br>
12:49:53.190 - TRACE
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:110] -
setting connectionRetryExceptions: [class
javax.naming.NamingException]<br>
12:49:53.190 - TRACE
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:152] -
{0} Attempting connection to <a moz-do-not-send="true" class="moz-txt-link-freetext" href="ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org">ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org</a>
for strategy DEFAULT<br>
12:49:53.190 - DEBUG
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:74] -
Bind with the following parameters:<br>
12:49:53.191 - DEBUG
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:75] -
authtype = simple<br>
12:49:53.191 - DEBUG
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:76] -
dn = null<br>
12:49:53.191 - DEBUG
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:83] -
credential = <suppressed><br>
12:49:53.191 - TRACE
[edu.vt.middleware.ldap.handler.DefaultConnectionHandler:87] -
env =
{java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory,
java.naming.provider.url=<a moz-do-not-send="true" class="moz-txt-link-freetext" href="ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org">ldap://wellfleet1.wellfleetsoftware.com:33389/dc=springframework,dc=org</a>}<br>
12:49:53.215 - INFO
[edu.vt.middleware.ldap.auth.SearchDnResolver:161] - Search for
user: rod failed using filter: uid={0}<br>
12:49:53.223 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:136] -
Authentication failed<br>
javax.naming.AuthenticationException: Cannot authenticate dn,
invalid dn<br>
at
edu.vt.middleware.ldap.auth.AbstractAuthenticator.authenticateAndAuthorize(AbstractAuthenticator.java:160)
~[vt-ldap-3.3.6.jar:na]<br>
at
edu.vt.middleware.ldap.jaas.JaasAuthenticator.authenticate(JaasAuthenticator.java:74)
~[vt-ldap-3.3.6.jar:na]<br>
at
edu.vt.middleware.ldap.auth.Authenticator.authenticate(Authenticator.java:320)
~[vt-ldap-3.3.6.jar:na]<br>
at
edu.vt.middleware.ldap.auth.Authenticator.authenticate(Authenticator.java:277)
~[vt-ldap-3.3.6.jar:na]<br>
at
edu.vt.middleware.ldap.jaas.JaasAuthenticator.authenticate(JaasAuthenticator.java:60)
~[vt-ldap-3.3.6.jar:na]<br>
at
edu.vt.middleware.ldap.jaas.LdapLoginModule.login(LdapLoginModule.java:103)
~[vt-ldap-3.3.6.jar:na]<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) ~[na:1.7.0_21]<br>
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
~[na:1.7.0_21]<br>
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.7.0_21]<br>
at java.lang.reflect.Method.invoke(Method.java:601)
~[na:1.7.0_21]<br>
at
javax.security.auth.login.LoginContext.invoke(LoginContext.java:784)
[na:1.7.0_21]<br>
<br>
<br>
On 05/20/2013 12:54 PM, Farrukh Najmi wrote:<br>
</div>
<blockquote cite="mid:519A5551.9060203@wellfleetsoftware.com" type="cite">
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type">
<div class="moz-cite-prefix"><br>
Here is the relevant stack trace from logs/idp-process.log. <br>
<br>
12:49:53.223 - DEBUG
[edu.vt.middleware.ldap.jaas.LdapLoginModule:136] -
Authentication failed<br>
javax.naming.AuthenticationException: Cannot authenticate dn,
invalid dn<br>
at
edu.vt.middleware.ldap.auth.AbstractAuthenticator.authenticateAndAuthorize(AbstractAuthenticator.jav<br>
a:160) ~[vt-ldap-3.3.6.jar:na]<br>
at
edu.vt.middleware.ldap.jaas.JaasAuthenticator.authenticate(JaasAuthenticator.java:74)
~[vt-ldap-3.3.<br>
6.jar:na]<br>
at
edu.vt.middleware.ldap.auth.Authenticator.authenticate(Authenticator.java:320)
~[vt-ldap-3.3.6.jar:n<br>
a]<br>
at
edu.vt.middleware.ldap.auth.Authenticator.authenticate(Authenticator.java:277)
~[vt-ldap-3.3.6.jar:n<br>
a]<br>
at
edu.vt.middleware.ldap.jaas.JaasAuthenticator.authenticate(JaasAuthenticator.java:60)
~[vt-ldap-3.3.<br>
6.jar:na]<br>
at
edu.vt.middleware.ldap.jaas.LdapLoginModule.login(LdapLoginModule.java:103)
~[vt-ldap-3.3.6.jar:na]<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method) ~[na:1.7.0_21]<br>
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
~[na:1.7.0_21]<br>
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
~[na:1.7.0_21]<br>
at java.lang.reflect.Method.invoke(Method.java:601)
~[na:1.7.0_21]<br>
at
javax.security.auth.login.LoginContext.invoke(LoginContext.java:784)
[na:1.7.0_21]<br>
at
javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
[na:1.7.0_21]<br>
at
javax.security.auth.login.LoginContext$4.run(LoginContext.java:698)
[na:1.7.0_21]<br>
at
javax.security.auth.login.LoginContext$4.run(LoginContext.java:696)
[na:1.7.0_21]<br>
<br>
<br>
FWIW, The same config works fine in my webapp using
spring-security.<br>
<br>
<bean id="contextSource"
class="org.springframework.security.ldap.DefaultSpringSecurityContextSource"><br>
<constructor-arg value=<a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="ldap://localhost:33389/dc=springframework,dc=org">"ldap://localhost:33389/dc=springframework,dc=org"</a>/><br>
</bean><br>
<br>
<bean id="userSearch"
class="org.springframework.security.ldap.search.FilterBasedLdapUserSearch"><br>
<constructor-arg index="0" value=""/><br>
<constructor-arg index="1" value="(uid={0})"/><br>
<constructor-arg index="2" ref="contextSource" /><br>
</bean><br>
<br>
Any suggestions what else could I try?<br>
<br>
On 05/20/2013 12:07 PM, Farrukh Najmi wrote:<br>
</div>
<blockquote cite="mid:519A4A3C.6000500@wellfleetsoftware.com" type="cite">
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<br>
I have been unsuccessful thus far in setting up IdP 2.4.0 with
my test ldap server (spring-security-ldap-sample).<br>
<br>
I have made the following config changes by adding config
elements shown for each file below:<br>
<br>
<ul style="margin-top:0pt;margin-bottom:0pt;" id="docs-internal-guid-67ebb44e-c29c-e9ff-cdbb-e95ad1814002">
<li dir="ltr" style="list-style-type:disc;font-size:16px;font-family:Arial;color:#666666;background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;"><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">conf/login.config</span></div>
</li>
</ul><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; "><br class="kix-line-break">
edu.vt.middleware.ldap.jaas.LdapLoginModule required</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
ldapUrl=<a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="ldap://localhost:33389/dc=springframework,dc=org">"ldap://localhost:33389/dc=springframework,dc=org"</a></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
baseDn=""</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
ssl="false"</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
userFilter="uid={0}";</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">};</span></div>
<ul style="margin-top:0pt;margin-bottom:0pt;">
<li dir="ltr" style="list-style-type:disc;font-size:16px;font-family:Arial;color:#666666;background-color:transparent;font-weight:bold;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline;">
<h3 dir="ltr" style="line-height:1.15;margin-top:14pt;margin-bottom:4pt;"><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">conf/handler.xml</span></h3>
</li>
</ul><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; "><br class="kix-line-break">
<!-- Username/password login handler --> </span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
<ph:LoginHandler xsi:type="ph:UsernamePassword"</span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
jaasConfigurationLocation=<a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="file:///home/najmi/shibboleth/shibboleth-identityprovider-2.4.0/installation/conf/login.config">"file:///home/najmi/shibboleth/shibboleth-identityprovider-2.4.0/installation/conf/login.config"</a>></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
<ph:AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</ph:AuthenticationMethod></span></div><div style="line-height: 1.15; margin-top: 0pt; margin-bottom: 0pt; "><span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; ">
</ph:LoginHandler></span></div>
<br>
<span style="font-size: 15px; font-family: Arial; background-color: transparent; font-weight: normal; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; "></span>I
then try and login at the idp/login.jsp page with well-known
credentials. I get the error below.<br>
<h3>ERROR</h3><p> An error occurred while processing your request. Please
contact your helpdesk or user ID office for assistance. </p><p> <strong>Error Message: Invalid IdP URL (HTTP 404)</strong>
</p>
<br>
Also, I notice that the login.jsp code "Log in to
<idpui:serviceName/>"<br>
<br>
renders as "Log in to Unspecified Service Provider". I guess
this is telling that my config for the ldap provider is not
being read for some reason.<br>
<br>
I have done no customization of the login.jsp page beyond
changing the logo. <br>
What could be wrong and how can I debug this better.<br>
<br>
TIA for your kind help.<br>
<br>
</blockquote>
<br>
</blockquote>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
Regards,
Farrukh Najmi
Web: <a class="moz-txt-link-freetext" href="http://www.wellfleetsoftware.com/">http://www.wellfleetsoftware.com</a>
</pre>
</div>
--<br>To unsubscribe from this list send an email to <a href="mailto:users-unsubscribe@shibboleth.net">users-unsubscribe@shibboleth.net</a></blockquote></div><br></div></div></body></html>