如何查询LDAP服务器以查看我属于哪些组?

时间:2011-11-02 18:14:26

标签: coldfusion active-directory ldap

我正在使用ColdFusion 9.1.2。

我有大约十分钟使用LDAP的经验。

我正在为网站创建登录页面。每个用户都通过Active Directory登录网络。当他们登录到他们的工作站并访问我的登录页面时,应运行查询以查看用户是否属于特定组。如果他们属于该组,则会自动登录。如果不属于,则会显示“权限被拒绝”。

假设我的用户名是BobJones,而该组是NicePeople。

如何确定当前登录的用户并查看他们是否属于特定群组?

1 个答案:

答案 0 :(得分:1)

要检查用户是否是AD中特定群组的成员,您首先需要知道该群组的DN。您应该将您拥有的组名与该组的DN相匹配。由于您没有指定,我假设NicePeople实际上是该组的CN属性。要获取该组的DN,请使用类似此(&(objectClass=group)(cn=NicePeople))的LDAP过滤器并请求distinguishedName属性(如果您的库允许,则只使用检索到的对象的DN)。

拥有群组的DN,您需要检查用户的memberOf属性。您将需要用户的DN(进行查询),遗憾的是我不知道如何获取当前登录的用户。

memberOf属性包含此用户所属的组的DN列表。但是,用户是另一个组的成员,该组不在此列表中。这些组称为“主要组”。主要组在用户的primaryGroupId属性中存储为整数id。该值与组的primaryGroupToken属性匹配。