引用字段中的 AD 组而不授予他们在 Azure DevOps/TFS 中的访问权限

Referencing AD groups in fields without granting them access in Azure DevOps / TFS

我想将域安全组的成员列为 Azure DevOps 服务器/TFS 工作项字段的选项,而不向这些用户授予访问权限。 示例:

      <FIELD name="Requestor" refname="MyNamespace.Requestor" type="String" reportable="dimension" syncnamechanges="true">
        <ALLOWEDVALUES expanditems="true" filteritems="excludegroups">
          <LISTITEM value="MyDomain\SecurityGroup" />
        </ALLOWEDVALUES>
        <ALLOWEXISTINGVALUE />
        <HELPTEXT>The person who requested the Project</HELPTEXT>
      </FIELD>    

似乎除非该组通过 DevOps 组的成员资格授予访问权限,否则在工作项导入时会产生以下错误:

TF26171: User/group 'MyDomain\SecurityGroup' is not found. TF26204: The account you entered is not recognized. Contact your Azure DevOps Server administrator to add your account.

这也适用于字段限制 <VALIDUSER group="MyDomain\SecurityGroup" /> 代替 LISTITEM 方法。

但是,我不想授予该组访问权限。此外,由于与有效用户组重叠,拒绝权限可能会出现问题。

有什么方法可以在不授予访问权限的情况下使该组可用?或者提供 AD 组成员列表的不同方法?

Is there any way to make this group available without granting access? Or a different approach to providing an AD group member list?

恐怕没有这种方法可以在不授予访问权限的情况下使该组可用。

根据文档Add a rule to a work item type,以下规则指定了对指定或更改字段值的限制:

我们无法设置规则来授予该组访问权限。

此外,就像您测试的那样,该组是通过 DevOps 组的成员授予访问权限的,而我们的自定义组无法授予访问权限。

我发现针对这种情况的最佳方法是添加一个 Azure DevOps 'Deny Access' 组,并将相应的 AD 组作为成员,然后为 DevOps 组设置拒绝权限。然后可以将 DevOps 组添加到另一个组或直接添加到 LISTITEM。问题是拒绝权限优先,因此需要注意不要将 DevOps 用户包含在该 AD 组中。

此解决方法解决了 select AD 组用户但不授予他们访问 DevOps 应用程序的需要。