Программный доступ к удостоверениям Microsoft через Azure, VSTS и Graph - PullRequest
0 голосов
/ 01 мая 2018

Есть ли способ с помощью одного приложения для доступа к информации Graph, VSTS и Azure? Кажется, для доступа к каждому из них требуется собственное приложение с URL-адресами для создания и обратного вызова.

Для Azure я использую NPM passport-azure-ad в приложении js для узла.

В идеале я хотел бы объединить информацию о сборке VSTS, информацию об использовании службы Azure и информацию о профиле пользователя.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Во-первых, есть Разрешить сценариям доступ к OAuth-токену в определении Phase of Build / Release, вы можете проверить этот параметр и получить доступ к токену через переменную System.AcessToken.

Чтобы предоставить разрешение для этого пользователя, необходимо предоставить разрешение (я) для Служба сборки коллекций проектов (xxxx) Учетная запись.

Во-вторых, есть некоторые задачи, связанные с Azure (например, Azure PowerShell), которые могут обращаться к ресурсам Azure (приложение AAD связано с конечной точкой Azure)

Вы можете получить необходимую информацию в нескольких задачах, затем сохранить результат в переменных с помощью Команды ведения журнала (## vso [task.setvariable] значение), а затем объединить их вместе.

0 голосов
/ 01 мая 2018

Каждый из упомянутых вами сервисов имеет свой собственный API:

Это, однако, не означает, что каждый из них также нуждается в собственном «приложении». Когда вы регистрируете свое приложение в Azure AD через портал Azure , вы можете запросить доступ к нескольким API. Каждый access_token, который вы получите, будет привязан к одному API (так называемому «ресурсу»), но вы можете использовать refresh_token для переключения целевого ресурса:

Единственное исключение здесь - API-интерфейс VSTS REST. В то время как большинство API используют одного и того же провайдера идентификации, у VSTS есть свой. Таким образом, для целей VSTS вам нужно будет отдельно аутентифицировать пользователя. Очевидно, что это не очень удобно для пользователя, но есть полезный обходной путь: Персональные токены доступа .

Использование персонального токена доступа для VSTS позволяет аутентифицировать пользователя с помощью OAuth Azure AD и получить токен доступа, который можно использовать с Microsoft Graph и API-интерфейсом REST Azure. После их аутентификации вы можете попросить их предоставить личный токен доступа для доступа к VSTS. Это позволяет вам забыть попросить пользователя выполнить аутентификацию во второй раз, так как вы сохраните его PAT, используйте его для любых вызовов VSTS.

...