【发布时间】:2013-01-24 12:42:20
【问题描述】:
首先需要注意的是 - 我实际上不知道我想做的事情是否可行,特别是因为我不精通 LDAP/Active Directory 或 JIRA。
我正在尝试将我闪亮的新 JIRA 安装与我现有的活动目录集成。我想要做的是设置一些特定的 JIRA 组(例如在 London\Security Groups\JIRA* 中),然后让 JIRA 只导入具有这些组成员身份的用户。但是,在 JIRA 的目录设置页面中,我不明白如何执行此操作。这似乎表明我可以导入用户和组,但不能导入用户来自组。
我错过了什么? (除了 AD 的专家级知识!)
更新
在我的域下,我的组织结构是这样的:
London\Users
伦敦\安全组\JIRA
在后一个组织单元下,我有一个名为“jira-users”的安全组。前者包含所有用户。
到目前为止,我已经尝试了以下查询,但都没有奏效:
(均以&(objectCategory=Person)(sAMAccountName=*)"为前缀)
memberof=CN=jira-users,ou=London,ou=Security Groups,ou=JIRA,dc=mycompany,dc=local
memberof=CN=JIRA,ou=London,ou=Security Groups,dc=mycompany,dc=local
(仅以&(objectCategory=Person)" 为前缀)
memberof=CN=jira-users,ou=London,ou=Security Groups,ou=JIRA,dc=mycompany,dc=local
已完成
有效的查询是这样的:
memberof=CN=jira-users,OU=JIRA,OU=Security Groups,OU=London,DC=mycompany,DC=local
我没有意识到对于逻辑上从左到右,London\Security Groups\JIRA 的文件夹结构,组织单位需要以相反的顺序列出。
进一步更新
这仅在出于某种原因使用 DirectorySearcher 类时才有效,例如
DirectoryEntry rootEntry = new DirectoryEntry("LDAP://dc=mycompany,dc=local");
DirectorySearcher srch = new DirectorySearcher(rootEntry);
srch.SearchScope = SearchScope.Subtree;
srch.Filter = "(&(objectCategory=Person)(sAMAccountName=*)(memberof=CN=jira-users,ou=London,ou=Security Groups,ou=JIRA,dc=mycompany,dc=local))";
SearchResultCollection results = srch.FindAll();
这在 LDAP 资源管理器 tool 中不起作用,随后在 JIRA 本身中也不起作用。
上次更新
所以...对于 JIRA,您需要颠倒顺序并删除通配符。最后的工作查询是:
(&(objectCategory=Person)(memberof=CN=jira-users,OU=JIRA,OU=Security Groups,OU=London,DC=mycomapny,DC=local))
【问题讨论】:
-
尝试删除 (sAMAccountName=*) 部分。这是不需要的,我只是在某处读到这种类型的查询中不允许使用通配符。
-
我相信 MS AD 带有某种 LDAP 检查器工具,您可以在其中访问该安全组并找出其确切的 DN。这可能有助于确定您的查询是否正确。如果您还没有这样做,您还应该确保您使用的绑定帐户具有适当的权限。
-
考虑到“LDAP 检查员”的谷歌搜索结果是这篇文章,我不知道在哪里可以找到这样的东西。
-
使用 (sAMAccountName=*) 但没有 memberof 查询我得到 132 个结果。没有两者,我什么都得不到。
标签: active-directory ldap jira