Bug 2170494 - Obsolete nsslapd-ldapimaprootdn attribute
Summary: Obsolete nsslapd-ldapimaprootdn attribute
Keywords:
Status: VERIFIED
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: 389-ds-base
Version: 9.2
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: rc
: 9.3
Assignee: Simon Pichugin
QA Contact: LDAP QA Team
URL:
Whiteboard: sync-to-jira
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-02-16 14:22 UTC by Viktor Ashirov
Modified: 2023-08-01 12:24 UTC (History)
4 users (show)

Fixed In Version: 389-ds-base-2.3.4-1.el9
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Github 389ds 389-ds-base issues 5697 0 None open Obsolete nsslapd-ldapimaprootdn attribute 2023-03-15 01:33:58 UTC
Red Hat Issue Tracker IDMDS-2825 0 None None None 2023-03-01 16:27:43 UTC
Red Hat Issue Tracker IDMDS-3431 0 None None None 2023-07-19 15:14:02 UTC
Red Hat Issue Tracker RHELPLAN-148914 0 None None None 2023-02-16 14:23:34 UTC

Description Viktor Ashirov 2023-02-16 14:22:14 UTC
Description of problem:
LDAPI code uses nsslapd-ldapimaprootdn to map Unix root entry to a Root DN entry. It usually has the same value as nsslapd-rootdn. Changing one attribute but not changing the other leads to a non-functional autobind configuration that breaks dsconf and WebUI.

LDAPI code should use nsslapd-rootdn value instead of having two separate entries that should be kept in sync. This should make changing Root DN simpler and without fear that it will break dsconf or WebUI access.

See https://bugzilla.redhat.com/show_bug.cgi?id=2127795 for context.

Comment 1 Viktor Ashirov 2023-07-28 08:09:39 UTC
Build tested: 389-ds-base-2.3.4-2.el9.x86_64

[1] dsconf changes only nsslapd-rootdn when RootDN is updated (previously both nsslapd-rootdn and nsslapd-ldapimaprootdn were changed): 

# dsconf -D cn=Directory\ Manager ldap://localhost config replace nsslapd-rootdn="cn=admin"
Enter password for cn=Directory Manager on ldap://localhost:
Successfully replaced "nsslapd-rootdn"


[2] When nsslapd-ldapimaprootdn is updated, dsconf logs a message:

# dsconf -D cn=Directory\ Manager ldap://localhost config replace nsslapd-ldapimaprootdn="cn=admin"
Enter password for cn=Directory Manager on ldap://localhost:
Successfully replaced "nsslapd-ldapimaprootdn"
The "nsslapd-ldapimaprootdn" setting is obsolete and kept for compatibility reasons. For LDAPI configuration, "nsslapd-rootdn" is used instead

And in the errors log:
[28/Jul/2023:03:54:30.718130078 -0400] - WARN - config_set_ldapi_root_dn - The "nsslapd-ldapimaprootdn" setting is obsolete and kept for compatibility reasons. For LDAPI configuration, "nsslapd-rootdn" is used instead.

In cn=config new value is also present: 
# ldapsearch -LLL -D cn=Directory\ Manager -w password -H ldap://localhost -s base -b cn=config nsslapd-rootdn nsslapd-ldapimaprootdn
dn: cn=config
nsslapd-rootdn: cn=Directory Manager
nsslapd-ldapimaprootdn: cn=admin

And autobind continues to work, since nsslapd-rootdn is now used, instead of nsslapd-ldapimaprootdn

# dsconf localhost backend suffix list
dc=example,dc=com (userroot)
# echo $?
0

[28/Jul/2023:04:08:03.981381558 -0400] conn=14 fd=64 slot=64 connection from local to /run/slapd-localhost.socket
[28/Jul/2023:04:08:03.985945222 -0400] conn=14 AUTOBIND dn="cn=Directory Manager"
[28/Jul/2023:04:08:03.987695893 -0400] conn=14 op=0 BIND dn="cn=Directory Manager" method=sasl version=3 mech=EXTERNAL

Marking as Verified:Tested


Note You need to log in before you can comment on or make changes to this bug.