<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[OpenLDAP directory: authentication bind uses empty DN instead of resolved user]]></title><description><![CDATA[<p dir="auto">Continuing our Enterprise trial evaluation — this time on the "OpenLDAP/Generic LDAP" user directory type. We stood up a real OpenLDAP server (Docker, osixia/openldap), created a real user, and confirmed that user could bind successfully outside of ProGet (ldapwhoami succeeded). We were never able to get ProGet to authenticate that same user, and traced it to three separate issues, each confirmed against the LDAP server's own connection log:</p>
<ol>
<li>Auto-derived search base is wrong when left blank</li>
</ol>
<p dir="auto">With the "User Search Base" field empty, ProGet derived a search base by treating our "Host" field's IP address as if it were a dotted domain name:<br />
Host: 172.17.0.1<br />
Derived base: dc=172,dc=17,dc=0,dc=1<br />
Every search failed with LDAP error 32 ("no such object") until we set "User Search Base" explicitly to our real directory root (dc=progetpoc,dc=local).</p>
<ol start="2">
<li>The %s username placeholder in the "Users:" filter isn't substituted</li>
</ol>
<p dir="auto">The "Users:" field ships pre-filled by ProGet itself with (&amp;(objectClass=inetOrgPerson)(uid=%s)). With a correct search base in place, the query actually sent to the LDAP server was (&amp;(objectClass=inetOrgPerson)(?uid=)) — the %s collapsed to a literal ?, and the submitted username never made it into the filter. This matched zero users regardless of who was authenticating.</p>
<ol start="3">
<li>The credential-verification bind uses an empty DN instead of the resolved user</li>
</ol>
<p dir="auto">To isolate #2, we temporarily hardcoded the filter to (uid=ldapuser1). The search then correctly found the user (nentries=1). But the very next operation — presumably meant to verify the submitted password by binding as that user's DN — was instead BIND dn="" method=128, which succeeded trivially (an anonymous bind checks no password). ProGet then failed the overall request with an internal "No Such Object" error, surfaced to the client as a 500.</p>
<p dir="auto">Full log excerpt:<br />
SRCH base="dc=progetpoc,dc=local" filter="(&amp;(objectClass=inetOrgPerson)(uid=ldapuser1))"<br />
SEARCH RESULT tag=101 err=0 nentries=1<br />
BIND dn="" method=128<br />
RESULT tag=97 err=0<br />
ProGet: "No Such Object" -&gt; HTTP 500 to the client</p>
<p dir="auto">Issue #3 is the one that actually blocks things — even a hand-corrected configuration that resolves the right user can't complete authentication. Is this a known issue, and is there a recommended workaround, or is this expected to be fixed in an upcoming build?</p>
<p dir="auto">Thanks,<br />
Sai</p>
]]></description><link>https://forums.inedo.com/topic/5838/openldap-directory-authentication-bind-uses-empty-dn-instead-of-resolved-user</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 21:21:14 GMT</lastBuildDate><atom:link href="https://forums.inedo.com/topic/5838.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 15 Sep 2026 15:09:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to OpenLDAP directory: authentication bind uses empty DN instead of resolved user on Tue, 15 Sep 2026 21:13:10 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/sai.pabbareddy" aria-label="Profile: sai.pabbareddy">@<bdi>sai.pabbareddy</bdi></a>,</p>
<p dir="auto">You will have to also set the Group Search Base as well.  Can you test that and let me know if anything changes?</p>
<p dir="auto">Also, what OpenLDAP server are you using to run these test with?</p>
<p dir="auto">Thanks,<br />
Rich</p>
]]></description><link>https://forums.inedo.com/post/20045</link><guid isPermaLink="true">https://forums.inedo.com/post/20045</guid><dc:creator><![CDATA[rhessinger]]></dc:creator><pubDate>Tue, 15 Sep 2026 21:13:10 GMT</pubDate></item><item><title><![CDATA[Reply to OpenLDAP directory: authentication bind uses empty DN instead of resolved user on Tue, 15 Sep 2026 19:55:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/rhessinger" aria-label="Profile: rhessinger">@<bdi>rhessinger</bdi></a></p>
<p dir="auto">Please find the below screenshots.<br />
<img src="/assets/uploads/files/1789501938257-640b9488-7ebc-4053-aee4-18de22211944-image.jpeg" alt="640b9488-7ebc-4053-aee4-18de22211944-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1789502035022-8e57279b-b1ca-448c-a348-a789b79ed8bc-image.jpeg" alt="8e57279b-b1ca-448c-a348-a789b79ed8bc-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1789502057998-4ab7ab52-bd38-4f76-914b-05d08cc70e38-image.jpeg" alt="4ab7ab52-bd38-4f76-914b-05d08cc70e38-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1789502081615-2b848683-cffb-4dd4-bd7f-90511c0174d8-image.jpeg" alt="2b848683-cffb-4dd4-bd7f-90511c0174d8-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto"><img src="/assets/uploads/files/1789502121741-28fba1e9-f687-40a7-a388-68628fc200e1-image.jpeg" alt="28fba1e9-f687-40a7-a388-68628fc200e1-image.jpeg" class=" img-fluid img-markdown" /></p>
]]></description><link>https://forums.inedo.com/post/20041</link><guid isPermaLink="true">https://forums.inedo.com/post/20041</guid><dc:creator><![CDATA[sai.pabbareddy]]></dc:creator><pubDate>Tue, 15 Sep 2026 19:55:46 GMT</pubDate></item><item><title><![CDATA[Reply to OpenLDAP directory: authentication bind uses empty DN instead of resolved user on Tue, 15 Sep 2026 16:56:57 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/sai.pabbareddy" aria-label="Profile: sai.pabbareddy">@<bdi>sai.pabbareddy</bdi></a>,</p>
<p dir="auto">Thanks for the details here.  For 1, looking at the code, this is to be expected.  We wrote this with the expectation the host would be a DNS name and we used that to build the search base for users and groups.  The trade off is that if an IP address is used, then you will need to manually specify the search bases.  WE will update our documentation to reflect this.</p>
<p dir="auto">As for 2 and 3, I'm unable to recreate what you are seeing. Could you please provide screen shots with the values you have configured for the  OpenLDAP User Directory?</p>
<p dir="auto">Thanks,<br />
Rich</p>
]]></description><link>https://forums.inedo.com/post/20038</link><guid isPermaLink="true">https://forums.inedo.com/post/20038</guid><dc:creator><![CDATA[rhessinger]]></dc:creator><pubDate>Tue, 15 Sep 2026 16:56:57 GMT</pubDate></item></channel></rss>