Олицетворение в DevOps
Я использую клиентскую библиотеку TFS/DevOps .Net (на основе мыла) для взаимодействия с DevOps.
Однако у меня возникают проблемы, чтобы выдать себя за другого пользователя, и DevOps всегда возвращает мне ошибку:
Пользователю UserX требуются следующие разрешения для выполнения этого действия: отправлять запросы от имени других
Это несмотря на то, что я назначил это разрешение пользователю в одной из групп сбора в настройках организации в DevOps. Я даже добавил этого пользователя в качестве члена Администратора коллекций проектов.
Есть ли какие-либо другие разрешения, которые мне нужно предоставить, или есть определенная группа сбора, где мне нужно назначить это разрешение?
Изменить, чтобы добавить коды. Ниже приведены коды, которые я использую. Дополнительное примечание: код отлично работает с предварительной версией TFS, и я использую PAT для аутентификации. Пользователь, которого мы пытаемся выдать за себя, - это пользователь в нашей Azure AD. Это просто не сработает, когда мы попробуем с DevOps. Код не сработает на втором EnsureAuthenticated()
вызов:
var configurationServer = new TfsConfigurationServer(new Uri("https://xxxx"),
new VssCredentials(new VssBasicCredential(
string.Empty,
"xxxxxx"
)));
configurationServer.EnsureAuthenticated();
var identityService = configurationServer.GetService<IIdentityManagementService>();
// Look up the user that we want to impersonate
TeamFoundationIdentity identity = identityService.ReadIdentity(
IdentitySearchFactor.AccountName, "xx@xx.xxx", MembershipQuery.None, ReadIdentityOptions.None);
var impersonatedconfigurationServer = new TfsConfigurationServer(new Uri("https://xxxx"),
new VssCredentials(new VssBasicCredential(
string.Empty,
"xxxxxx"
)), identity.Descriptor);
impersonatedconfigurationServer.EnsureAuthenticated();
Благодарю.