OpenLDAP userPrincipalName 作为 BindDN

OpenLDAP userPrincipalName 作为 BindDN

我已根据以下内容将 OpenLDAP 设置为 AD 代理: https://wiki.samba.org/index.php/OpenLDAP_as_proxy_to_AD

对于使用标准 bindDN 和完整 dn: 属性的客户端来说,一切工作正常(例如cn=jdoe,ou=users,dc=example,dc=com

一些客户端使用 userPrincipalName 作为 bindDN,这对于 AD 来说完全没问题,但是对于 OpenLDAP 代理来说则不然,因为 OpenLDAP 代理会在连接时抛出错误:

conn=1002 op=1 do_bind: invalid dn ([email protected])
send_ldap_result: conn=1002 op=1 p=3
send_ldap_result: err=34 matched="" text="invalid DN"
send_ldap_response: msgid=2 tag=97 err=34
conn=1002 op=1 RESULT tag=97 err=34 text=invalid DN

我尝试使用 rwm 覆盖中的 rwm-rewriteRule 重写 userPrincipalName 的 bindDN。这没有用,尽管它可以与标准 bind dn(例如cn=jdoe,ou=users,dc=example,dc=com)一起使用

这不起作用:

rwm-rewriteRule "(.+,)@example.com$" "cn=$1,ou=users,dc=example,dc=com"  ":"

这有效:

rewritin ou=users for ou=employees as a test:

rwm-rewriteRule "(.+,)?ou=users,dc=example,dc=com$" "$1ou=employees,dc=example,dc=com" ":"

有没有办法重写 bindDN[电子邮件保护]绑定 DN 吗cn=jdoe,ou=users,dc=example,dc=com

这是我当前的配置:

include                 /etc/openldap/schema/core.schema  
include                 /etc/openldap/schema/cosine.schema  
include                 /etc/openldap/schema/inetorgperson.schema  
include                 /etc/openldap/schema/misc.schema  
include                 /etc/openldap/schema/nis.schema  

modulepath              /usr/lib64/openldap/  
moduleload              back_ldap  
moduleload              rwm  

pidfile                 /var/run/openldap/slapd.pid  
argsfile                /var/run/openldap/slapd.args  

database                ldap  
readonly                yes  
protocol-version        3  
rebind-as-user          yes  
uri                     "ldap://X.X.X.X:389"  
suffix                  "dc=example,dc=com"  
overlay                 rwm  
rwm-rewriteEngine on  
rwm-rewriteRule "(.+,)@example.com$" "cn=$1,ou=users,dc=example,dc=com"  ":"  
logfile                 /var/log/slapd/slapd.log  
loglevel                -1  
TLSCACertificatePath /etc/openldap/certs  
TLSCertificateFile "OpenLDAP Server"  
TLSCertificateKeyFile /etc/openldap/certs/password  

答案1

您可以使用以下方式重写 bind-DNslapo-rwm但那些必须是 DN。

因此,您可以通过使用过滤器搜索条目来将短 DN 重写[email protected]为。uid=user,dc=example,dc=com([email protected])

但要重写的短格式必须是有效的 DN 字符串表示,如RFC 4514而不仅仅是[email protected]像 MS AD 那样的用户主体名称。

参见示例slapo-rwm(5)

相关内容