Once a backend/suffix is replicated, the replication plugin apparently controls the referrals on the backends (which makes sense). I'm not sure why we don't honor the agreement's configuration. There could be a good reason for it, but we need to look into it closer...
Indeed, and in this case the explicitly set referrals should then be configured in the replica config entry using nsds5ReplicaReferral attribute.
If this attribute does not exist then automatic referrals computed from the RUV.
IMHO the reason we don't honor the agreement's configuration is that
the RUV elements are generated on their specific supplier (which does not have the agreement toward itself)
That said, I think that if a supplier provides ldaps port, it should generate an ldaps url in the RUV rather than an ldap one.
Thanks for that, Pierre. I was seeing exactly that: the RUV elements (in cockpit) I assume correspond with nsslapd-referral values in dse.ldif.
Not sure whether that's helpful, but it sure baffled me.
Thanks again for the help!
On 7/2/21 8:35 AM, Collins, Brian (CAI - Atlanta) wrote:
Thanks for the quick reply, Mark.
Also, thank you to you and the folks at Red Hat for all the work in the newer releases. Two things stand out: dsconf and not having to run X. There is much more, but those two are a great benefit.
Thanks, that's nice to hear! Wait until the UI rewrite is done ;-)
So I executed the following, named fixreferral.ldif
dn: cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config
Using: ldapmodify -x -D "cn=Directory Manager" -W -H ldaps://auth04 -f fixreferral.ldif
Then issued: systemctl restart dirsrv@auth04
When I checked, however, it had reverted to:
# grep nsslapd-referral dse.ldif
BUT... dse.ldif.startOK has this:
So it would appear to be reverting AFTER the restart. Which makes me think it's something that it is receiving from the supplier possibly?
Ugh, so the replication plugin is probably rewriting it. Odd that it "worked" in 1.3.x because I don't recall any changes around referrals in a long time. We will need investigate it. Can you open a github issue describing the issue, and how it's blocking password updates?
You can just change nsslapd-referral attribute to use ldaps instead of ldap.
Now you "should" be able to do that in the console, but I just found out that there is a bug in the console where we don't actually grab the referrals from the mapping tree entry. <sigh> Glad I found it now because the cockpit console is going through a rewrite (to migrate to Patternfly 4). So I will fix that, but it doesn't help you today.
So for now you will need to use ldapmodify to change the nsslapd-referral attribute. I would say to use dsconf but it is also broken for properly setting referrals <sigh again>. Once I fix dsconf it would work like this:
#dsconf slapd-supplier1 backend suffix set userroot --del-referral ldap://localhost:636
#dsconf slapd-supplier1 backend suffix set userroot --add-referral ldaps://localhost:636
Right now dsconf updates the referral on the wrong entry :-( We'll get this all fixed up!
On 7/1/21 6:04 PM, Collins, Brian (CAI - Atlanta) wrote:
I am doing prep work for replacing our older 389 servers (1.3.8) running on RHEL 7 with newer ones on RHEL 8 and 1.4.4.
I have the two RHEL 7 boxes in a multi-master replication setup.
For this phase of testing I have one read-only replica on 1.4.4, as a consumer to the two current servers. I set up a Linux client to login using SSSD, bound to the consumer. It works fine except when I want to change passwords. I was getting "Operation requires a secure connection." After a lot of digging, I think I found the culprit there: on the consumer, in "dn: cn=dc\3Dexample\2Cdc\3Dcom,cn=mapping tree,cn=config" the nsslapd-referral uri for my two current servers is ldap: instead of ldaps:. Indeed, in the cockpit console, the Remote RUV list shows both servers as ldap:.
But on the two suppliers, the old servers, the referral uri is ldaps.
When I set up the replication agreement for the new consumer, I did it just as I did for the current setup, so I don't feel like that's where I went wrong.
Thanks in advance for any pointers,
_______________________________________________389-users mailing list -- firstname.lastname@example.orgTo unsubscribe send an email to email@example.comFedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelinesDo not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure--Directory Server Development Team--Directory Server Development Team
_______________________________________________389-users mailing list -- firstname.lastname@example.orgTo unsubscribe send an email to email@example.comFedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelinesDo not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure--Directory Server Development Team
389-users mailing list -- firstname.lastname@example.org
To unsubscribe send an email to email@example.com
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://firstname.lastname@example.org
Do not reply to spam on the list, report it: https://pagure.io/fedora-infrastructure
389 Directory Server Development Team