Thank you Howard for your short answer. That confirms what I though. I still 
have an issue to make it work. I've try a lot of different setup and I don't 
make the proxy use the idassert-bind parameters. All of my tests sends the 
authentication information directly to the backend:

  *
simple binds
  *
anonymous binds
  *
sasl with certificate binds

I can read the following message into the proxy's logs with SASL:  
ldap_back_dobind_int: DN="uid=test,ou=tech,dc=local" without creds, binding 
anonymously
Simple binds must be sent without assertion.

I think I missed something to trigger proxy authorization on the proxy side.

Here is the setup on the proxy:

dn: cn=config
objectClass: olcGlobal
cn: config
olcAuthzPolicy: to # I think it has to be configured on the backend only, this 
is a try
olcAuthzRegexp: 
{0}cn="[^.]*\.[Bb][0-9]{3}\.[^.]{3,5}\.([^.]{3})\.[^.]{3}\.[^,]*,ou=test,o=some,c=fr"
 "uid=$1,ou=tech,dc=local" # To map the cert id of the client to a remote 
account
olcLocalSSF: 256
olcLogLevel: stats stats2
olcTLSCACertificateFile: /etc/certificates/local.ca
olcTLSCertificateFile: /etc/certificates/proxy.local.crt
olcTLSCertificateKeyFile: /etc/certificates/proxy.local.key

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/local/openldap/libexec/openldap
olcModuleLoad: {0}argon2.la
olcModuleLoad: {1}back_ldap.la

dn: olcDatabase={2}ldap,cn=config
objectClass: olcDatabaseConfig
objectClass: olcLDAPConfig
olcDatabase: {2}ldap
olcSuffix: dc=local
olcDbURI: "ldaps://backend.local:636"
olcDbIDAssertBind:
  mode=legacy
  flags=prescriptive,proxy-authz-non-critical
  bindmethod=sasl saslmech=EXTERNAL
  tls_cacert="/etc/certificates/local.ca"
  tls_cacert="/etc/certificates/proxy.local.crt"
  tls_cacert="/etc/certificates/proxy.local.key"
olcDbIDAssertAuthzFrom: {0}*
olcDbRebindAsUser: FALSE
olcDbChaseReferrals: TRUE
________________________________
De : Howard Chu <h...@symas.com>
Envoyé : mercredi 6 août 2025 17:51
À : BECOT Jérôme <jbe...@itsgroup.com>; openldap-technical 
<openldap-technical@openldap.org>
Objet : Re: Certificate authentication through LDAP Proxy (back_ldap)

ATTENTION : Cet e-mail provient de l'extérieur de l'organisation. Ne cliquez 
pas sur les liens et n'ouvrez pas les pièces jointes à moins que vous ne 
reconnaissiez l'expéditeur et que vous sachiez que le contenu est sûr.

BECOT Jérôme wrote:
> Hello,
>
> We have a working setup with two mirror master and two slaves:
>
>   *
>     Syncrepl uses a certificate on each node to fetch data, with an 
> olcAuthzRegexp rule to map it to a DSA (simpleSecurityObject).
>   *
>     Client SSSD servers also use a dedicated certificate to authenticate on 
> the slaves, with another olcAuthzRegexp to map them to a "per project" DSA.
>   *
>     We use different ACL on the main db because some DSA have privileged 
> access to some branches
>
>
> We want to expose data on another subnets through proxies, and cyber ask to 
> use OpenLDAP with back_ldap.
>
> How should we configure them to use client certificate authentication to the 
> backend slaves ?

back-ldap cannot use the client's certificates on the backend slaves. All you 
can do is configure
back-ldap to use proxy authorization to assert the client's identity on its 
connections to the
backends. back-ldap itself can use its own certificate or any other 
authentication method to
authenticate itself to the backends, and then proxy authorize on behalf of the 
clients.
>
> Any thoughts appreciated
> Regards
> Jerome
>


--
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/

Reply via email to