2016-10-04 1 views
3

Я хочу, чтобы мое расширение VSTS (устанавливается на прем TFS2015.3), чтобы иметь возможность делать конкретные запросы от имени учетной записи администратора/услуг («запросы от имени других»)TFS REST API: как делать запросы от имени других?

Справочная информация: Я манипулировать (WorkItem), в частности GLOBALWORKFLOW (только на уровне командного проекта) в расширительном машинописном файле, но пользователь расширения в веб-доступе НЕ является администратором проекта, поэтому ему не разрешено использовать функцию updateWorkItemTypeDefinition() - Non -Project-Admins получают «Access denied», даже если я дал этой настраиваемой группе доступное разрешение («Изменить информацию на уровне проекта» для GLOBALWORKFLOW на уровне проекта? Все еще не работает для настраиваемых групп, только для учетных записей Project Admin) ,

Кажется, я вынужден выдавать себя за счет проекта администратора/службы, которая позволила изменить глобальный технологический процесс в проекте

Как олицетворения в код расширения Машинопись на-прем TFS и REST (1. не .NET и 2. без изменения в базовую аутентификацию, увидел, что решение уже где-то еще - но я очень уверен, что я не могу просить, что изменение в моей организации)

Спасибо за вашу помощь

+0

Редактировать: PAT не является решением, так как я работаю на-prem (2015.3) –

+0

На уровне шаблона процесса есть некоторые вещи, которые можно редактировать только в том случае, если у пользователя есть определенные разрешения на уровне коллекции. Например, поля и типы ссылок сохраняются на уровне сбора, а не на уровне проекта, поэтому вам нужны разрешения на более высокую плоскость, чем проект. – jessehouwing

+0

@jessehouwing не болит, если я смогу получить расширение TFS, наконец, выдаст себя за учетную запись службы, даже учетная запись службы уровня коллекции в порядке, а затем –

ответ

0

Вы можете выдавать себя за пользователь через vsts-node-api.

Существует много функций для олицетворения пользователя, таких как Basic, NTLM, PWA (VSTS) и т. Д. ..., вы можете проверить эти функции here.

import * as vm from 'vso-node-api'; 

// your collection url 
var collectionUrl = "XXX"; 


let authHandler = vm.getNtlmHandler("[user name]","[password]","[workstation optional]","[domain optional]"); 

var connect = new vm.WebApi(collectionUrl, authHandler); 

There - образец, к которому вы можете обратиться.

+0

AFAIK нет токена персонального доступа с on-prem TFS2015. Это в VSO и on-prem, начиная с TFS15RC1 –

+0

@ FerdiÖztürk Я обновил свой ответ, есть много функций для выдачи себя за пользователя, для локальной TFS вы можете использовать функцию getNtlmHandler. –

+0

THXs для обновления, я хочу попробовать, но у меня проблемы с импортом vso-node-api в моем .TS. Шаги: 1. npm i vso-node-api 2. ссылка на /// 3. import vsonode = require (" ВСО-узел-API "); - не работает. Не могли бы вы рассказать мне, как правильно импортировать модуль vso-node-api или что мне не хватает? (не используя установочные диски, потому что .d.ts уже находятся в папке node_module vso-node-apis) –