Ищем rest api для получения прав пользователей на локальном сервере azure DevOps - PullRequest
0 голосов
/ 14 июля 2020

Я автоматизирую несколько процессов в локальной среде azure DevOps и ищу API для отдыха, которые позволили бы мне получать права пользователей с сервера azure DevOps.

1 Ответ

0 голосов
/ 14 июля 2020

В настоящее время не существует такого REST API для получения пользовательских прав для локального Azure сервера DevOps.

Однако в качестве обходного пути мы можем получить всех пользователей, используя клиентский API, из указанного * Коллекция 1018 *: (Необходимо установить Microsoft.TeamFoundationServer.ExtendedClient )

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Framework.Client;
using Microsoft.TeamFoundation.Framework.Common;
using System.Linq;
using System.IO;

namespace Getuserlist

{

    class Program

    {
        static void Main(string[] args)

        {

            TfsConfigurationServer tcs = new TfsConfigurationServer(new Uri("https://wsicads2019"));

            IIdentityManagementService ims = tcs.GetService<IIdentityManagementService>();

            TeamFoundationIdentity tfi = ims.ReadIdentity(IdentitySearchFactor.AccountName, "[DefaultCollection]\\Project Collection Valid Users", MembershipQuery.Expanded, ReadIdentityOptions.None);

            TeamFoundationIdentity[] ids = ims.ReadIdentities(tfi.Members, MembershipQuery.None, ReadIdentityOptions.None);

            using (StreamWriter file = new StreamWriter("userlist.txt"))

                foreach (TeamFoundationIdentity id in ids)

                {
                    if (id.Descriptor.IdentityType == "System.Security.Principal.WindowsIdentity")

                    { Console.WriteLine("[{0},{1}]", id.UniqueName); }

                    file.WriteLine("[{0},{1}]", id.UniqueName);
                }

            var count = ids.Count(x => ids.Contains(x));
            Console.WriteLine(count);
            Console.ReadLine();
        }
    }
}

Альтернативно выполнить команду TFSSecurity из командной строки разработчика на клиенте или запустить на Azure Уровень приложения DevOps Server для получения списка всех пользователей и групп:

tfssecurity /imx all: /server:http://server:8080/tfs

Для уровней доступа мы можем вызвать следующие REST API, чтобы получить соответствующих пользователей: (Проверено Azure DevOps 2019)

Stakeholder : 
http://server:8080/tfs/_api/_identity/ReadLicenseUsers?__v=5&licenseTypeId=242a857e-50ce-43d9-ba9f-3aa82457d726

Basic : 
http://server:8080/tfs/_api/_identity/ReadLicenseUsers?__v=5&licenseTypeId=8b71784c-27ab-4490-bb97-e699ed4123e1

Basic + Test Plans : 
http://server:8080/tfs/_api/_identity/ReadLicenseUsers?__v=5&licenseTypeId=f29e17f1-60bd-44f0-ab2f-d67207ee9484

VS Enterprise : 
http://server:8080/tfs/_api/_identity/ReadLicenseUsers?__v=5&licenseTypeId=519a4528-2bd6-4ea4-b3cb-5440c1aaebc3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...