我是LDAP新手。我有LDAP服务器,用于存储用户的信息。 作为我项目的一部分,我想从该集中式LDAP服务器验证用户。
我提供了一些应用程序用户。 细节如
Bind DN: uid=uidxx, ou=applications, dc=dcxx
password=passxx
and IP address and the port of the server.
我没有得到如何使用他们的密码验证其他用户。 在这里uidxx和passxx是为了什么?
而且我也没有得到cn
的重要性。很少有关于它的文档。
谢谢。
答案 0 :(得分:2)
当LDAP客户端连接到LDAP服务器时,连接是未经身份验证的。要更改连接的授权状态,LDAP客户端会将BIND请求发送到服务器。在最简单的形式中,BIND请求包含可分辨名称和密码,并且应该通过安全连接传输到服务器,该连接可以使用StartTLS LDAP扩展操作从SSL启动或从非安全连接提升到安全连接。服务器将密码与存储在主键为可分辨名称的条目中的密码进行比较 - 密码可以进行哈希处理,使用可逆加密方案加密,编码或甚至存储为明文。如果服务器通过任何方式能够将提供的密码与条目中存储的密码相匹配,则认证成功,并且授权状态更改为表示主键的条目的访问权限和特权的状态。专有名称和BIND操作是成功的。
cn
或commonName
是属性OID的别名,可能出现在主键为可分辨名称的条目中。 uid
是OID的别名,在此示例中表示相对可分辨名称或另一种方式,即可分辨名称的组件。密码是在BIND请求中使用的密码,如上所述。在示例中,可分辨名称为uid=uidxx,ou=applications,dc=dcxx
。
指定的uid
的条目可能如下所示:
dn: uid=uidxx,ou=applications,dc=dcxx
objectClass: top
objectClass: inetOrgPerson
uid: uidxx
cn: Darth Vader
sn: Skywalker
userPassword: {SSHA512}asdkfasldjhdj
uid
是dn uid=uidxx,ou=applications,dc=dcxx
的一个组成部分。指定的密码将与示例条目中的userPassword
进行比较。 uid
和password
与ou
无关。