Rafael Felix Correa created KYLIN-4481:
------------------------------------------
Summary: Project-level ACL lookups not working for non-admin
SAML-federated users
Key: KYLIN-4481
URL: https://issues.apache.org/jira/browse/KYLIN-4481
Project: Kylin
Issue Type: Bug
Components: Security
Affects Versions: v3.0.1, v2.6.5
Reporter: Rafael Felix Correa
Steps to reproduce:
* setup kylin with SAML as described in
[http://kylin.apache.org/docs/howto/howto_ldap_and_sso.html]. kylin.properties:
{code:java}
kylin.security.profile=saml
kylin.security.acl.admin-role=Kylin_Admins
kylin.security.ldap.connection-server=ldap://openldap:389
kylin.security.ldap.connection-username=cn=admin,dc=example,dc=org
# set kylin.security.ldap.connection-password appropriately
kylin.security.ldap.user-search-base=ou=people,dc=example,dc=org
kylin.security.ldap.user-search-pattern=(uid={0})
kylin.security.ldap.user-group-search-base=ou=groups,dc=example,dc=org
kylin.security.saml.context-context-path=/kylin
kylin.security.saml.context-scheme=https
kylin.security.saml.context-server-name=kylin.validdomain.com
kylin.security.saml.context-server-port=443
kylin.security.saml.metadata-entity-base-url=https://kylin.validdomain.com/kylin{code}
* on the LDAP server, make sure you have the following objects in place:
{code:java}
# example.user, people, example.org
dn: uid=example.user,ou=people,dc=example,dc=org
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
gidNumber: 10000
uidNumber: 5000
cn: Does not matter
homeDirectory: /home/doesntmatter
uid: example.user{code}
*
{code:java}
# Kylin_Users, groups, example.org
dn: cn=Kylin_Users,ou=groups,dc=example,dc=org
objectClass: top
objectClass: groupOfNames
cn: Kylin_Users
member: uid=example.user,ou=people,dc=example,dc=org{code}
* as an ADMIN, create a sample project in kylin and grant QUERY, MANAGEMENT or
OPERATION access to example.user.
* now, try logging into kylin.validdomain.com's Web UI as
[[email protected].|mailto:[email protected].]
Expected result:
* example.user is logged in, able to select the project from the dropdown box
at the top left corner and navigate through its properties.
Actual result:
* example.user is logged in, but no projects are listed in the dropdown box.
As if he/she had no permissions in any project.
With LDAP-pure installations (no SAML), this configuration works as expected.
Worth noting:
[https://github.com/apache/kylin/blob/kylin-3.0.1/server-base/src/main/java/org/apache/kylin/rest/security/SAMLUserDetailsService.java#L40-L54]
splits the user in the '@' char for performing LDAP lookups. However, by
editing kylin_metadata manually and appending the @validdomain.com to the
corresponding object under /acls, the lookup works as it should and the
non-admin user gets to access the sample project.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)