Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1258611

Summary: dna plugin needs to handle binddn groups for authorization
Product: Red Hat Enterprise Linux 7 Reporter: Noriko Hosoi <nhosoi>
Component: 389-ds-baseAssignee: Noriko Hosoi <nhosoi>
Status: CLOSED ERRATA QA Contact: Viktor Ashirov <vashirov>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: nkinder, pkundal, rmeggins
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 389-ds-base-1.3.5.2-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-11-03 20:35:53 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Noriko Hosoi 2015-08-31 18:36:34 UTC
This bug is created as a clone of upstream ticket:
https://fedorahosted.org/389/ticket/48258

The dna plugin uses the replica bind credentials to check if a connecion is allowed to perform the range request operation. 
It checks the bindn in the replica object, but since the introduction of binddn groups a single bind dn may no longer exist.
DNA plugin also needs to evaluate the bindn groupd

Comment 1 Mike McCune 2016-03-28 23:12:48 UTC
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune with any questions

Comment 3 Punit Kundal 2016-07-20 11:12:10 UTC
RHEL:
RHEL 7.3 x86_64 Server

DS builds:
[root@ds ~]# rpm -qa | grep 389-ds-base
389-ds-base-libs-1.3.5.10-5.el7.x86_64
389-ds-base-debuginfo-1.3.5.8-1.el7.x86_64
389-ds-base-1.3.5.10-5.el7.x86_64
389-ds-base-snmp-1.3.5.10-5.el7.x86_64

Steps Performed:
1. Created two standalone DS instances as master1 and master2
 
2. Created a user for replication and added that user as a uniquemember of QA managers group
[root@ds ~]# ldapsearch -xLLL -b 'uid=dnaAdmin,ou=People,dc=example,dc=com' -h localhost -p 389
dn: uid=dnaAdmin,ou=People,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: organizationalPerson
uid: dnaAdmin
cn: dnaAdmin
sn: dnaAdmin
 
[root@ds ~]# ldapsearch -xLLL -b 'cn=QA Managers,ou=Groups,dc=example,dc=com' -h localhost -p 389
dn: cn=QA Managers,ou=Groups,dc=example,dc=com
objectClass: top
objectClass: groupOfUniqueNames
cn: QA Managers
ou: groups
description: People who can manage QA entries
uniqueMember: cn=Directory Manager
uniqueMember: uid=dnaAdmin,ou=People,dc=example,dc=com

3. Configured DNA plugin on both instances
 
Below is the DNA plugin configuration entry added on master1
 
[root@ds ~]# ldapsearch -xLLL -D 'cn=Directory Manager' -w secret123 -h localhost -p 389 -b 'cn=Account UIDs,cn=Distributed Numeric Assignment          Plugin,cn=plugins,cn=config'
dn: cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
objectClass: top
objectClass: dnaPluginConfig
cn: Account UIDs
dnaType: uidNumber
dnaType: gidNumber
dnaFilter: (objectclass=posixAccount)
dnaScope: ou=People,dc=example,dc=com
dnaNextValue: 1
dnaMaxValue: 20
dnaSharedCfgDN: cn=Account UIDs,ou=Ranges,dc=example,dc=com
dnaThreshold: 5
dnaRangeRequestTimeout: 60
dnaMagicRegen: magic
dnaNextRange: 41-50
 
Below is the DNA plugin configuration entry added on master2
 
[root@ds ~]# ldapsearch -xLLL -D 'cn=Directory Manager' -w secret123 -h localhost -p 1389 -b 'cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config' -s base
dn: cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
objectClass: top
objectClass: dnaPluginConfig
cn: Account UIDs
dnaType: uidNumber
dnaType: gidNumber
dnaFilter: (objectclass=posixAccount)
dnaScope: ou=People,dc=example,dc=com
dnaNextValue: 31
dnaMaxValue: 40
dnaSharedCfgDN: cn=Account UIDs,ou=Ranges,dc=example,dc=com
dnaThreshold: 2
dnaRangeRequestTimeout: 60
dnaMagicRegen: magic

4. Configured a 2x MMR setup by adding the required replication configuration entries on
both masters
 
Below is the replica entry added on master1
 
[root@ds ~]# ldapsearch -xLLL -D 'cn=Directory Manager' -w secret123 -h localhost -p 389 -b 'cn=replica,cn="dc=example,dc=com",cn=mapping tree,cn=config' -s base
dn: cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
objectClass: top
objectClass: nsds5replica
objectClass: extensibleObject
cn: replica
nsDS5ReplicaRoot: dc=example,dc=com
nsDS5ReplicaId: 47
nsDS5ReplicaType: 3
nsDS5Flags: 1
nsds5ReplicaPurgeDelay: 604800
nsds5replicabinddngroup: cn=QA Managers,ou=Groups,dc=example,dc=com
nsds5replicabinddngroupcheckinterval: 0
nsState:: LwAAAAAAAADhGo9XAAAAAAEAAAAAAAAAAQAAAAAAAAAGAAAAAAAAAA==
nsDS5ReplicaName: 56f33903-4e4111e6-9916cf1e-79691512
nsds5ReplicaChangeCount: 29
nsds5replicareapactive: 0
 
Below is the replica entry added on master2
 
[root@ds ~]# ldapsearch -xLLL -D 'cn=Directory Manager' -w secret123 -h localhost -p 1389 -b 'cn=replica,cn="dc=example,dc=com",cn=mapping tree,cn=config' -s base
dn: cn=replica,cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
objectClass: top
objectClass: nsds5replica
objectClass: extensibleObject
cn: replica
nsDS5ReplicaRoot: dc=example,dc=com
nsDS5ReplicaId: 48
nsDS5ReplicaType: 3
nsDS5Flags: 1
nsds5ReplicaPurgeDelay: 604800
nsds5replicabinddngroup: cn=QA Managers,ou=Groups,dc=example,dc=com
nsds5replicabinddngroupcheckinterval: 0
nsState:: MAAAAAAAAADiGo9XAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAA==
nsDS5ReplicaName: 1f38c102-4e4211e6-9434fc5d-05a4a07c
nsds5ReplicaChangeCount: 28
nsds5replicareapactive: 0
 
 
5. Added 10 users on master2 to exhaust its available range
 
[root@ds ~]# ldapadd -x -D 'cn=Directory Manager' -w secret123 -h localhost -p 1389 -f dnaUsers.ldif
adding new entry "uid=testuser1,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser2,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser3,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser4,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser5,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser6,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser7,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser8,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser9,ou=People,dc=example,dc=com"
 
adding new entry "uid=testuser10,ou=People,dc=example,dc=com"
 
6. Verified the working of replication and DNA plugin by running an ldapsearch on
master1 as below
 
[root@ds ~]# ldapsearch -xLLL -b 'uid=testuser1,ou=People,dc=example,dc=com' -h localhost -p 389
dn: uid=testuser1,ou=People,dc=example,dc=com
cn: test user1
homeDirectory: /home/testuser1
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: organizationalPerson
sn: user1
uid: testuser1
uidNumber: 31
gidNumber: 31
 
As can be seen above, the user has been replicated and uidNumber and gidNumber
attributes have been set properly by DNA plugin
 
[root@ds ~]# ldapadd -x -D 'cn=Directory Manager' -w secret123 -h localhost -p 1389
dn: uid=testuser11,ou=People,dc=example,dc=com
objectClass: top
objectClass: person
objectClass: inetOrgPerson
objectClass: posixAccount
uid: testuser11
cn: test user11
sn: user11
uidNumber: magic
gidNumber: magic
homeDirectory: /home/testuser11
adding new entry "uid=testuser11,ou=People,dc=example,dc=com"
 
As can be seen above, the entry was added successfully
 
8. Verified whether new range was transferred properly to master2
 
[root@ds ~]# ldapsearch -xLLL -D 'cn=Directory Manager' -w secret123 -h localhost -p 1389 -b 'cn=Account UIDs,cn=Distributed Numeric Assignment    Plugin,cn=plugins,cn=config' -s base
dn: cn=Account UIDs,cn=Distributed Numeric Assignment Plugin,cn=plugins,cn=config
objectClass: top
objectClass: dnaPluginConfig
cn: Account UIDs
dnaType: uidNumber
dnaType: gidNumber
dnaFilter: (objectclass=posixAccount)
dnaScope: ou=People,dc=example,dc=com
dnaNextValue: 47
dnaMaxValue: 50
dnaSharedCfgDN: cn=Account UIDs,ou=Ranges,dc=example,dc=com
dnaThreshold: 2
dnaRangeRequestTimeout: 60
dnaMagicRegen: magic
 
As can be seen above, master2 now has new range of numbers to assign

Comment 5 errata-xmlrpc 2016-11-03 20:35:53 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2016-2594.html