Sandor Molnar created KNOX-3539:
-----------------------------------

             Summary: Add an option to lowercase the user ID in the LDAP proxy 
roles-lookup interceptor
                 Key: KNOX-3539
                 URL: https://issues.apache.org/jira/browse/KNOX-3539
             Project: Apache Knox
          Issue Type: Task
          Components: LDAP, Server
    Affects Versions: 3.0.0
            Reporter: Sandor Molnar
            Assignee: Sandor Molnar
             Fix For: 3.1.0


The LDAP proxy's {{LDAPRolesLookupInterceptor}} builds the user ID for the 
roles lookup from the {{uid}} attribute of the entry returned by the backend 
directory. For Active Directory backends, uid holds {{sAMAccountName}}. AD 
matches this attribute case-insensitively, but the value comes back in its 
canonical case (e.g. {{Admin}}). Whatever case the client searched with 
({{admin}}, {{ADMIN}}), the roles-lookup service receives {{Admin}}.

If the roles backend stores and matches user IDs case-sensitively and has role 
memberships keyed on a different case (e.g. the login name as typed), the 
lookup finds nothing and the user gets no roles.

*Proposal*: add a new gateway configuration property:
{code}
gateway.ldap.roles.lookup.lowercase.user.id = false (default)
{code}
When {{true}}, the interceptor lowercases the user ID before calling 
{{LDAPRolesLookupService.lookupRoles()}}. Combined with 
{{expression.principal.mapping = (lowercase username)}} in the 
{{identity-assertion}} provider, the asserted principal and the roles-lookup 
key are then always the same case. The default (false) keeps the current 
behavior.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to