我多次在基于LDAP的应用程序中集成身份验证。
我只是提出配置:网址(如ldap.company.com:389
),搜索基础(如dc=europe,dc=com
)和查询模式(如(uid=$)
)到库和框架。
但我总是想知道通过提供的登录名/密码实际验证用户的库和框架是什么。
似乎LDAP有三种类型的身份验证 - 匿名,普通密码和SASL。因此,有时为了进行身份验证,您需要应用程序登录/密码才能访问LDAP服务。
我不确定此博客是否回答了问题:http://thecarlhall.wordpress.com/2011/01/04/ldap-authentication-authorization-dissected-and-digested/:
是吗?
这可以概括为(作为命令行中的实验):
$ ldapsearch -x -h ldap.company.com -s sub -b 'dc=europe,dc=com' "uid=XYZ"
....
dn: uid=XYZ,dc=sales,dc=europe,dc=com
...
$ ldapsearch -W -h ldap.company.com -D 'uid=XYZ,dc=sales,dc=europe,dc=com' \
-s sub -b 'dc=europe,dc=com' "uid=XYZ"
是否还有其他身份验证架构,比如使用特定的DN属性值作为用户密钥?或userPassword
是该属性本身?