Thanks, I think I see better the logic; but I've just tried and if I 
comment the attribute part of the LDAP authentication it fails to 
authenticate:

2016-10-18 16:27:33,579 DEBUG 
> [org.apereo.cas.authentication.LdapAuthenticationHandler] - <Attempting 
> LDAP authentication for egunyar>
> 2016-10-18 16:27:33,607 DEBUG 
> [org.apereo.cas.authentication.LdapAuthenticationHandler] - <LDAP response: 
> [org.ldaptive.auth.AuthenticationResponse@2012506855::authenticationResultCode=AUTHENTICATION_HANDLER_SUCCESS,
>  
> resolvedDn=egunyar@COMPANY.LOCAL, ldapEntry=[dn=CN=GUNYAR 
> Erdal,OU=France,OU=COMPANY Users,DC=COMPANY,DC=LOCAL[[displayName[GUNYAR 
> Erdal]], [cn[GUNYAR Erdal]]], responseControls=null, messageId=-1], 
> accountState=null, result=true, resultCode=SUCCESS, message=null, 
> controls=null]>
> 2016-10-18 16:27:33,611 DEBUG 
> [org.apereo.cas.authentication.LdapAuthenticationHandler] - <Applying 
> password policy to 
> [org.ldaptive.auth.AuthenticationResponse@2012506855::authenticationResultCode=AUTHENTICATION_HANDLER_SUCCESS,
>  
> resolvedDn=egunyar@COMPANY.LOCAL, ldapEntry=[dn=CN=GUNYAR 
> Erdal,OU=France,OU=COMPANY Users,DC=COMPANY,DC=LOCAL[[displayName[GUNYAR 
> Erdal]], [cn[GUNYAR Erdal]]], responseControls=null, messageId=-1], 
> accountState=null, result=true, resultCode=SUCCESS, message=null, 
> controls=null]>
> 2016-10-18 16:27:33,612 DEBUG 
> [org.apereo.cas.authentication.support.DefaultAccountStateHandler] - 
> <Account state not defined. Returning empty list of messages.>
> 2016-10-18 16:27:33,613 DEBUG 
> [org.apereo.cas.authentication.LdapAuthenticationHandler] - <LDAP response 
> returned as result. Creating the final LDAP principal>
> 2016-10-18 16:27:33,614 DEBUG 
> [org.apereo.cas.authentication.LdapAuthenticationHandler] - <Creating LDAP 
> principal for egunyar based on CN=GUNYAR Erdal,OU=France,OU=COMPANY 
> Users,DC=COMPANY,DC=LOCAL>
> 2016-10-18 16:27:33,615 ERROR 
> [org.apereo.cas.authentication.LdapAuthenticationHandler] - <The principal 
> id attribute uid is not found. CAS cannot construct the final authenticated 
> principal if it's unable to locate the attribute that is designated as the 
> principal id. Attributes available are [[displayName[GUNYAR Erdal]], 
> [cn[GUNYAR Erdal]]]>
> 2016-10-18 16:27:33,618 INFO 
> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - 
> <LdapAuthenticationHandler failed authenticating egunyar>
> 2016-10-18 16:27:33,618 DEBUG 
> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - 
> <LdapAuthenticationHandler exception details: uid attribute not found for 
> egunyar>
> 2016-10-18 16:27:33,620 WARN 
> [org.apereo.cas.authentication.PolicyBasedAuthenticationManager] - 
> <Authentication has failed. Credentials may be incorrect or CAS cannot find 
> authentication handler that supports [egunyar] of type 
> [UsernamePasswordCredential], which suggests a configuration problem.>
> 2016-10-18 16:27:33,622 DEBUG 
> [org.apereo.cas.audit.spi.ThreadLocalPrincipalResolver] - <Resolving 
> principal at audit point [execution(Authentication 
> org.apereo.cas.authentication.AbstractAuthenticationManager.authenticate(AuthenticationTransaction))]
>  
> with thrown exception 
> [org.apereo.cas.authentication.AuthenticationException: 1 errors, 0 
> successes]>


The configuration being:

cas.authn.ldap[0].* ... 

# Except those which are commented:

# cas.authn.ldap[0].principalAttributeId=sAMAccountName
# cas.authn.ldap[0].principalAttributePassword=
# cas.authn.ldap[0].principalAttributeList=


cas.personDirectory.principalAttribute=sAMAccountName
cas.personDirectory.returnNull=false

cas.authn.attributeRepository.attributes.uid=sAMAccountName
cas.authn.attributeRepository.attributes.displayName=displayName
cas.authn.attributeRepository.attributes.cn=cn
cas.authn.attributeRepository.attributes.affiliation=department


cas.authn.attributeRepository.jdbc.* ...



Note that if I put back principalAttributeId, then the resolver will be the 
default LDAP stuff like the previous posts.

What could I be do wrong? :/
Maybe in the way I try to nuke the default LDAP resolver?

Erdal.


Le mardi 18 octobre 2016 14:06:01 UTC+2, Misagh Moayyed a écrit :
>
> As I said earlier, this works for the LDAP attributes but doesn't merge 
> with the JDBC ones (no query sent).
>
> See this section: 
> https://apereo.github.io/cas/development/installation/Configuration-Properties.html#authentication-attributes
>  
>
> > If no other attribute source is defined and if attributes are not 
> retrieved as part of primary authentication via LDAP….
>
> You are doing that; which is that you are getting attributes from LDAP as 
> part of authn. When you do, CAS disables external principal resolvers 
> because it is taught that attributes come from ldap directly. If you wish 
> to merge multiple sources, you need to disable that part and nuke out the 
> attributes and define attribute repository sources for each source via the 
> properties. That will activate merging.
>
> I can open an issue, I don't know what's the best process.
>
> https://github.com/apereo/cas/issues 
>
> Might be worth introducing flexibility into the configuration to allow 
> what you have defined. 
>
>
>

-- 
CAS gitter chatroom: https://gitter.im/apereo/cas
CAS mailing list guidelines: https://apereo.github.io/cas/Mailing-Lists.html
CAS documentation website: https://apereo.github.io/cas
CAS project website: https://github.com/apereo/cas
--- 
You received this message because you are subscribed to the Google Groups "CAS 
Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cas-user+unsubscr...@apereo.org.
To post to this group, send email to cas-user@apereo.org.
Visit this group at https://groups.google.com/a/apereo.org/group/cas-user/.
To view this discussion on the web visit 
https://groups.google.com/a/apereo.org/d/msgid/cas-user/6777bcc2-4218-4c51-8b04-44d26a39f1c7%40apereo.org.
For more options, visit https://groups.google.com/a/apereo.org/d/optout.

Reply via email to