Active directory 如何仅从特定组将Active Directory用户导入JIRA?

Active directory 如何仅从特定组将Active Directory用户导入JIRA?,active-directory,ldap,jira,Active Directory,Ldap,Jira,首先要说明的是,我不知道我想做的事情是否可行,特别是因为我不太熟悉LDAP/Active Directory或JIRA 我正在尝试将全新安装的JIRA与现有的active directory集成。我想做的是设置一些特定的JIRA组(例如,在伦敦\Security groups\JIRA*),然后让JIRA只导入拥有这些组成员资格的用户。然而,在JIRA的目录设置页面中,我不知道如何执行此操作。这似乎表明我可以导入用户和组,但不能导入组中的用户 我错过了什么?(除了专家级的广告知识!) 更新 在我

首先要说明的是,我不知道我想做的事情是否可行,特别是因为我不太熟悉LDAP/Active Directory或JIRA

我正在尝试将全新安装的JIRA与现有的active directory集成。我想做的是设置一些特定的JIRA组(例如,在伦敦\Security groups\JIRA*),然后让JIRA只导入拥有这些组成员资格的用户。然而,在JIRA的目录设置页面中,我不知道如何执行此操作。这似乎表明我可以导入用户和组,但不能导入组中的用户

我错过了什么?(除了专家级的广告知识!)

更新

在我的领域内,我有这样的组织结构:

(memberOf=cn=jira-users,ou=London,dc=mydomain,dc=com)
London\Users

伦敦\安全集团\ JIRA

在后一个组织单位下,我有一个名为“jira用户”的安全小组。前者包含所有用户

到目前为止,我尝试了以下查询,但没有一个有效:

(全部前缀为
&(objectCategory=Person)(sAMAccountName=*)”

memberof=CN=jira用户,ou=London,ou=Security group,ou=jira,dc=mycompany,dc=local

memberof=CN=JIRA,ou=London,ou=Security group,dc=mycompany,dc=local

(前缀仅为
&(objectCategory=Person)

memberof=CN=jira用户,ou=London,ou=Security group,ou=jira,dc=mycompany,dc=local

已完成

有效的查询如下所示:

memberof=CN=jira用户,OU=jira,OU=Security group,OU=London,DC=mycompany,DC=local

我没有意识到,对于逻辑上从左到右的文件夹结构,伦敦\安全集团\ 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资源管理器中不起作用,随后在JIRA本身中也不起作用

上次更新

因此,对于JIRA,您需要颠倒顺序并删除通配符。最终的工作查询是:


(&(objectCategory=Person)(memberof=CN=jira用户,OU=jira,OU=Security Groups,OU=London,DC=mycomapny,DC=local))

设置用户目录时,请在用户架构设置下查找。您应该看到一个“用户对象过滤器”字段。在这里,您应该可以添加如下内容:

(memberOf=cn=jira-users,ou=London,dc=mydomain,dc=com)

这将允许您根据特定的LDAP组进行筛选。当然,您需要编辑上面的值以反映您自己的环境

这似乎至少可以过滤掉所有用户……这是一个进步。我不确定参数应该是什么。目前我有(memberof=CN=jira用户,ou=London,ou=Security group,ou=jira,dc=company,dc=com),但它没有返回任何内容。组的ou路径(不管它叫什么)是London\Security Groups\JIRA,但用户都在London\users下。我两个都试过了,但似乎都不管用。我是否误解了一些基本的东西?我的例子是假设一个名为jira users的安全组。也许可以尝试(memberOf=cn=JIRA,ou=London,dc=mydomain,dc=com),当然,用你自己的域替换mydomain和com,对吗?完成。安全组称为jira用户。但是这个查询仍然不起作用。根据你告诉我的,我认为你上面的第一个应该可以。(memberof=CN=jira用户,ou=London,ou=Security group,ou=jira,dc=mycompany,dc=local)。为了让我们清楚,请告诉我您正在用域的值替换字符串“mydomain”和“local”。OMG,OU参数是错误的。这是什么,反向抛光?:)尝试删除(sAMAccountName=*)部分。这是不必要的,我只是在某个地方读到,在这种类型的查询中不允许使用通配符。我相信MS AD附带了LDAP inspector工具,您可以访问该安全组并找到其确切的DN。这可能有助于确定您的查询是否正确。如果您还没有这样做,您还应该确保您正在使用的绑定帐户具有适当的权限。考虑到“LDAP inspector”的谷歌搜索结果排名靠前的是这篇文章,我不确定在哪里可以找到这样的内容。使用(sAMAccountName=*)但不使用memberof query,我得到132个结果。没有两者,我什么都得不到。