[
https://issues.apache.org/jira/browse/RANGER-321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14371698#comment-14371698
]
robinlin edited comment on RANGER-321 at 3/20/15 5:36 PM:
----------------------------------------------------------
Hi
More details for my problems
1. I traced the log, found the array "groupList" is same with LDAP. But the
view is not matched.
On the LDAP
{noformat}
[root@slavenode1 ~]# ldapsearch -x -LLL -H ldap:/// -b
cn=steven,ou=people,dc=iii,dc=org,dc=tw dn memberof
dn: cn=steven,ou=people,dc=iii,dc=org,dc=tw
[root@slavenode1 ~]#
{noformat}
On the Ranger user sync log
{noformat}
21 Mar 2015 00:34:36 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 2, userName: steven, groupList: []
{noformat}
On the Ranger Admin, User management
!RangerGroupBug.png!
2. I would still regard it as an issue, if the user can not be deleted. Let's
assume a scenario, suppose Robin had a "admin" permission to a policy of HDFS
root folder. But one day, Robin quit the job and left the company, then the
Robin's account would be deleted in LDAP, however, Robin's account and
privileges is still existed in Ranger database. Years latter, another guy also
named Robin join this company, then the two persons might have same dn such
that Ranger could not tell the differences between this two people. And so the
latter Robin would have permission to all the HDFS files and folders.
3. Here is my screenshot
!RangerInterGrpBug.png!
LDAP search result
{noformat}
[root@slavenode1 ~]# ldapsearch -x -LLL -H ldap:/// -b
ou=groups,dc=iii,dc=org,dc=tw
dn: ou=groups,dc=iii,dc=org,dc=tw
ou: groups
objectClass: organizationalUnit
description: groups
dn: cn=country,ou=groups,dc=iii,dc=org,dc=tw
member: cn=john,ou=people,dc=iii,dc=org,dc=tw
cn: country
objectClass: groupOfNames
objectClass: top
dn: cn=car_washing,ou=groups,dc=iii,dc=org,dc=tw
member: cn=jim,ou=people,dc=iii,dc=org,dc=tw
cn: car_washing
objectClass: groupOfNames
objectClass: top
dn: cn=rock,ou=groups,dc=iii,dc=org,dc=tw
member: cn=bette,ou=people,dc=iii,dc=org,dc=tw
member: cn=jimmy,ou=people,dc=iii,dc=org,dc=tw
cn: rock
objectClass: groupOfNames
objectClass: top
{noformat}
And Sync Log
{noformat}
21 Mar 2015 01:24:38 INFO UserGroupSync [UnixUserSyncThread] - Begin: update
user/group from source==>sink
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LDAPUserGroupBuilder updateSink started
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LdapUserGroupBuilder initialization started
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LdapUserGroupBuilder initialization completed with -- ldapUrl:
ldap://140.92.25.244:389, ldapBindDn: cn=admin,dc=iii,dc=org,dc=tw,
ldapBindPassword: ***** , ldapAuthenticationMechanism: simple,
userSearchBase: ou=people,dc=iii,dc=org,dc=tw, userSearchScope: 2,
userObjectClass: person, userSearchFilter: , extendedSearchFilter:
(objectclass=person), userNameAttribute: cn, userSearchAttributes: [cn,
ismemberof, memberof]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=country,ou=groups,dc=iii,dc=org,dc=tw, groupName: country
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 1, userName: john, groupList: [country]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 2, userName: steven, groupList: []
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=car_washing,ou=groups,dc=iii,dc=org,dc=tw, groupName:
car_washing
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 3, userName: jim, groupList: [car_washing]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 4, userName: bbking, groupList: []
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=rock,ou=groups,dc=iii,dc=org,dc=tw, groupName: rock
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 5, userName: jimmy, groupList: [rock]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=rock,ou=groups,dc=iii,dc=org,dc=tw, groupName: rock
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 6, userName: bette, groupList: [rock]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 7, userName: robin, groupList: []
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LDAPUserGroupBuilder.updateSink() completed with user count: 7
{noformat}
4. I am not familiar with Knox configuration, but I copy the "GroupLookUp"
configuration from Knox user guide.
{noformat}
<gateway>
<provider>
<role>authentication</role>
<name>ShiroProvider</name>
<enabled>true</enabled>
<!-- session timeout in minutes, this is really idle
timeout, defaults
to 30mins, if the property value is not
defined,, current client authentication
would expire if client idles contiuosly for
more than this value -->
<!-- defaults to: 30 minutes <param>
<name>sessionTimeout</name> <value>30</value>
</param> -->
<!-- Use single KnoxLdapRealm to do authentication and
ldap group look
up -->
<param>
<name>main.ldapRealm</name>
<value>org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm</value>
</param>
<param>
<name>main.ldapGroupContextFactory</name>
<value>org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory
</value>
</param>
<param>
<name>main.ldapRealm.contextFactory</name>
<value>$ldapGroupContextFactory</value>
</param>
<!-- defaults to: simple <param>
<name>main.ldapRealm.contextFactory.authenticationMechanism</name>
<value>simple</value> </param> -->
<param>
<name>main.ldapRealm.contextFactory.url</name>
<value>ldap://140.92.25.244:389</value>
</param>
<param>
<name>main.ldapRealm.userDnTemplate</name>
<value>cn={0},ou=people,dc=iii,dc=org,dc=tw</value>
</param>
<param>
<name>main.ldapRealm.authorizationEnabled</name>
<!-- defaults to: false -->
<value>true</value>
</param>
<!-- defaults to: simple <param>
<name>main.ldapRealm.contextFactory.systemAuthenticationMechanism</name>
<value>simple</value> </param> -->
<param>
<name>main.ldapRealm.searchBase</name>
<value>ou=people,dc=iii,dc=org,dc=tw</value>
</param>
<!-- defaults to: groupOfNames <param>
<name>main.ldapRealm.groupObjectClass</name>
<value>groupOfNames</value> </param> -->
<!-- defaults to: member <param>
<name>main.ldapRealm.memberAttribute</name>
<value>member</value> </param> -->
<param>
<name>main.ldapRealm.groupIdAttribute</name>
<value>cn</value>
</param>
<param>
<name>main.cacheManager</name>
<value>org.apache.shiro.cache.MemoryConstrainedCacheManager</value>
</param>
<param>
<name>main.securityManager.cacheManager</name>
<value>$cacheManager</value>
</param>
<param>
<name>main.ldapRealm.memberAttributeValueTemplate</name>
<value>cn={0},ou=people,dc=iii,dc=org,dc=tw</value>
</param>
<param>
<name>main.ldapRealm.contextFactory.systemUsername</name>
<value>cn=admin,dc=iii,dc=org,dc=tw</value>
</param>
<param>
<name>main.ldapRealm.contextFactory.systemPassword</name>
<value>${ALIAS=ldcSystemPassword}</value>
</param>
<param>
<name>urls./**</name>
<value>authcBasic</value>
</param>
</provider>
<provider>
<role>authorization</role>
<name>XASecurePDPKnox</name>
<enabled>true</enabled>
<param>
<name>knox.acl</name>
<value>admin;*;*</value>
</param>
</provider>
<provider>
<role>identity-assertion</role>
<name>Default</name>
<enabled>true</enabled>
</provider>
</gateway>
{noformat}
Is there any thing wrong?
Finally, one more question, I am curious about why the users in LDAP could not
login to Ranger Admin web, is there any reason?
Thanks
Robin.
was (Author: robinlin):
Hi
More details for my problems
1. I traced the log, found the array "groupList" is same with LDAP. But the
view is not matched.
On the LDAP
{noformat}
[root@slavenode1 ~]# ldapsearch -x -LLL -H ldap:/// -b
cn=steven,ou=people,dc=iii,dc=org,dc=tw dn memberof
dn: cn=steven,ou=people,dc=iii,dc=org,dc=tw
[root@slavenode1 ~]#
{noformat}
On the Ranger user sync log
{noformat}
21 Mar 2015 00:34:36 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 2, userName: steven, groupList: []
{noformat}
On the Ranger Admin, User management
!RangerGroupBug.png!
2. I would still regard it as an issue, if the user can not be deleted. Let's
assume a scenario, suppose Robin had a "admin" permission to a policy of HDFS
root folder. But one day, Robin quite the job and left the company, then the
Robin's account would be deleted in LDAP, however, Robin's account and
privileges is still existed in Ranger database. Years latter, another guy also
named Robin join this company, then the two persons might have same dn such
that Ranger could not tell the differences between this two people. And so the
latter Robin would have permission to all the HDFS files and folders.
3. Here is my screenshot
!RangerInterGrpBug.png!
LDAP search result
{noformat}
[root@slavenode1 ~]# ldapsearch -x -LLL -H ldap:/// -b
ou=groups,dc=iii,dc=org,dc=tw
dn: ou=groups,dc=iii,dc=org,dc=tw
ou: groups
objectClass: organizationalUnit
description: groups
dn: cn=country,ou=groups,dc=iii,dc=org,dc=tw
member: cn=john,ou=people,dc=iii,dc=org,dc=tw
cn: country
objectClass: groupOfNames
objectClass: top
dn: cn=car_washing,ou=groups,dc=iii,dc=org,dc=tw
member: cn=jim,ou=people,dc=iii,dc=org,dc=tw
cn: car_washing
objectClass: groupOfNames
objectClass: top
dn: cn=rock,ou=groups,dc=iii,dc=org,dc=tw
member: cn=bette,ou=people,dc=iii,dc=org,dc=tw
member: cn=jimmy,ou=people,dc=iii,dc=org,dc=tw
cn: rock
objectClass: groupOfNames
objectClass: top
{noformat}
And Sync Log
{noformat}
21 Mar 2015 01:24:38 INFO UserGroupSync [UnixUserSyncThread] - Begin: update
user/group from source==>sink
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LDAPUserGroupBuilder updateSink started
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LdapUserGroupBuilder initialization started
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LdapUserGroupBuilder initialization completed with -- ldapUrl:
ldap://140.92.25.244:389, ldapBindDn: cn=admin,dc=iii,dc=org,dc=tw,
ldapBindPassword: ***** , ldapAuthenticationMechanism: simple,
userSearchBase: ou=people,dc=iii,dc=org,dc=tw, userSearchScope: 2,
userObjectClass: person, userSearchFilter: , extendedSearchFilter:
(objectclass=person), userNameAttribute: cn, userSearchAttributes: [cn,
ismemberof, memberof]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=country,ou=groups,dc=iii,dc=org,dc=tw, groupName: country
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 1, userName: john, groupList: [country]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 2, userName: steven, groupList: []
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=car_washing,ou=groups,dc=iii,dc=org,dc=tw, groupName:
car_washing
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 3, userName: jim, groupList: [car_washing]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 4, userName: bbking, groupList: []
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=rock,ou=groups,dc=iii,dc=org,dc=tw, groupName: rock
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 5, userName: jimmy, groupList: [rock]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
longGroupName: cn=rock,ou=groups,dc=iii,dc=org,dc=tw, groupName: rock
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 6, userName: bette, groupList: [rock]
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] - Updating
user count: 7, userName: robin, groupList: []
21 Mar 2015 01:24:38 INFO LdapUserGroupBuilder [UnixUserSyncThread] -
LDAPUserGroupBuilder.updateSink() completed with user count: 7
{noformat}
4. I am not familiar with Knox configuration, but I copy the "GroupLookUp"
configuration from Knox user guide.
{noformat}
<gateway>
<provider>
<role>authentication</role>
<name>ShiroProvider</name>
<enabled>true</enabled>
<!-- session timeout in minutes, this is really idle
timeout, defaults
to 30mins, if the property value is not
defined,, current client authentication
would expire if client idles contiuosly for
more than this value -->
<!-- defaults to: 30 minutes <param>
<name>sessionTimeout</name> <value>30</value>
</param> -->
<!-- Use single KnoxLdapRealm to do authentication and
ldap group look
up -->
<param>
<name>main.ldapRealm</name>
<value>org.apache.hadoop.gateway.shirorealm.KnoxLdapRealm</value>
</param>
<param>
<name>main.ldapGroupContextFactory</name>
<value>org.apache.hadoop.gateway.shirorealm.KnoxLdapContextFactory
</value>
</param>
<param>
<name>main.ldapRealm.contextFactory</name>
<value>$ldapGroupContextFactory</value>
</param>
<!-- defaults to: simple <param>
<name>main.ldapRealm.contextFactory.authenticationMechanism</name>
<value>simple</value> </param> -->
<param>
<name>main.ldapRealm.contextFactory.url</name>
<value>ldap://140.92.25.244:389</value>
</param>
<param>
<name>main.ldapRealm.userDnTemplate</name>
<value>cn={0},ou=people,dc=iii,dc=org,dc=tw</value>
</param>
<param>
<name>main.ldapRealm.authorizationEnabled</name>
<!-- defaults to: false -->
<value>true</value>
</param>
<!-- defaults to: simple <param>
<name>main.ldapRealm.contextFactory.systemAuthenticationMechanism</name>
<value>simple</value> </param> -->
<param>
<name>main.ldapRealm.searchBase</name>
<value>ou=people,dc=iii,dc=org,dc=tw</value>
</param>
<!-- defaults to: groupOfNames <param>
<name>main.ldapRealm.groupObjectClass</name>
<value>groupOfNames</value> </param> -->
<!-- defaults to: member <param>
<name>main.ldapRealm.memberAttribute</name>
<value>member</value> </param> -->
<param>
<name>main.ldapRealm.groupIdAttribute</name>
<value>cn</value>
</param>
<param>
<name>main.cacheManager</name>
<value>org.apache.shiro.cache.MemoryConstrainedCacheManager</value>
</param>
<param>
<name>main.securityManager.cacheManager</name>
<value>$cacheManager</value>
</param>
<param>
<name>main.ldapRealm.memberAttributeValueTemplate</name>
<value>cn={0},ou=people,dc=iii,dc=org,dc=tw</value>
</param>
<param>
<name>main.ldapRealm.contextFactory.systemUsername</name>
<value>cn=admin,dc=iii,dc=org,dc=tw</value>
</param>
<param>
<name>main.ldapRealm.contextFactory.systemPassword</name>
<value>${ALIAS=ldcSystemPassword}</value>
</param>
<param>
<name>urls./**</name>
<value>authcBasic</value>
</param>
</provider>
<provider>
<role>authorization</role>
<name>XASecurePDPKnox</name>
<enabled>true</enabled>
<param>
<name>knox.acl</name>
<value>admin;*;*</value>
</param>
</provider>
<provider>
<role>identity-assertion</role>
<name>Default</name>
<enabled>true</enabled>
</provider>
</gateway>
{noformat}
Is there any thing wrong?
Finally, one more question, I am curious about why the users in LDAP could not
login to Ranger Admin web, is there any reason?
Thanks
Robin.
> Several bugs on functionality
> ------------------------------
>
> Key: RANGER-321
> URL: https://issues.apache.org/jira/browse/RANGER-321
> Project: Ranger
> Issue Type: Bug
> Affects Versions: 0.4.0
> Reporter: robinlin
> Attachments: RangerGroupBug.png, RangerInterGrpBug.png
>
>
> Hi all
> I find some bugs in the version 0.4
> 1. Remove member from a group in LDAP but not sync.
> 2. Delete a user in LDAP but not sync.
> 3. The groups were synced from LDAP labeled internal.
> 4. Group permission does not work in Knox policy.
> Thanks and Best Regards
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)