ldap. binddn_passwd 是什么

ldap. binddn_passwd 是什么

我安装了 Nginx 和 LDAP,它可以工作。但我不明白“binddn”和“binddn_passwd”的用途



ldap_server dc1 { 
url ldap://dc1.alexlinux.lan:3268/DC=alexlinux,DC=lan?sAMAccountName?sub?(objectClass=person); 
binddn "alexlinux\\comp"; 
binddn_passwd 123; 
group_attribute member; 
group_attribute_is_dn on; 
require valid_user; 
require group "CN=systemtest,OU=Groups,DC=alexlinux,DC=lan"; 
} 

当我打开浏览器时,我会输入我的域名登录名和密码。没有这些参数,身份验证就无法进行。谢谢。

答案1

实际上,有两种使用 LDAP 进行身份验证的方法。

  • 第一个尝试使用你在网络浏览器中输入的用户名和密码来绑定到 ldap 服务器(这是 LDAP 的说法,意思是登录到 LDAP 服务器)。如果绑定成功,则用户名和密码正确,并且您已登录到您的网站。但是,这要求 LDAP 服务器配置为允许此类操作,但情况并非总是如此。
  • 即使不允许使用第一种方法,第二种方法也可以使用。使用此方法,LDAP 客户端(nginx在您的情况下)将绑定到 LDAP 服务器,作为允许验证其他用户的用户,然后使用 Web 浏览器中提供的数据来验证用户并报告。为此,它需要知道哪个用户(专有名称DN用 LDAP 语言来说)以及应该使用哪个密码进行此绑定。它们在参数binddnbinddn_passwd中配置nginx

答案2

基于此 github。看起来“binddn”是您登录 ldap 服务器的用户名,而 binddn_passwd 是密码。有些绑定服务器需要登录后才能向连接显示信息。

答案3

Ldap 服务器需要可分辨用户名(例如 cn=Test User,ou=something,dc=example,dc=org)来验证用户身份。但在大多数情况下,用户更喜欢以“测试用户”身份登录。因此,要获取用户记录的可分辨名称,客户端(nginx)应连接到 ldap 服务器并查找用户登录属性(在您的例子中为 sAMAccountName)等于用户名的记录。如果服务器允许匿名用户连接并进行此类搜索,则不需要 binddn 和 binddn_password,但如果服务器是安全的,则必须提供凭据才能进行搜索。

获取用户 DN 后(如果搜索查询返回任何结果),客户端使用用户 DN 和用户密码在 ldap 服务器上进行绑定(验证)。如果成功 - 用户验证通过。

相关内容