如何在LDAP上构建身份验证?

时间:2014-12-19 18:08:17

标签: authentication ldap

我多次在基于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/

  • 获取与LDAP服务器的连接。
  • 绑定为应用程序用户。
  • 搜索要进行身份验证的用户的DN(可分辨名称)。
  • 绑定用户,使用步骤3中的DN进行身份验证。

是吗?

这可以概括为(作为命令行中的实验):

$ 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是该属性本身?

1 个答案:

答案 0 :(得分:2)

你的四个步骤基本上是正确的。 SASL是一种外部认证机制,其中认证是“#34;关闭SASL机制。 RFC 4513阐明了身份验证和安全机制。

-Jim