Развертывание Service Fabric, защищенного Azure Active Directory, из PowerShell

Я пытаюсь опубликовать в кластере Service Fabric, защищенном с помощью Azure Active Directory из PowerShell, вызывая Deploy-FabricApplication.ps1 как часть конфигурации сборки TeamCity.

Мне не удалось найти, как вы предоставляете учетные данные в этой ситуации.

Я заметил в Deploy-FabricApplication.ps1, что есть параметр SecurityToken для Active Directory.

Это то, что вам нужно передать для аутентификации, и если да, то как вы можете сгенерировать токен безопасности в PowerShell?

Я настроил пользователя в своем Azure Active Directory для TeamCity, для которого я собираюсь пройти проверку подлинности.


person Aaron0    schedule 01.11.2016    source источник


Ответы (1)


Маркер можно получить с помощью библиотеки проверки подлинности Active Directory (ADAL), в частности, путем вызова метода AcquireToken в Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.

Хороший пример такого использования можно увидеть в коде для задачи VSTS Service Fabric Deploy по адресу: https://github.com/Microsoft/vsts-tasks/blob/master/Tasks/ServiceFabricDeploy/utilities.ps1.

В этом файле есть функция Get-AadSecurityToken, которая показывает вызов метода AuthenticationContext.AcquireToken.

Убедитесь, что у вас есть и идентификатор кластерного приложения, и идентификатор клиентского приложения. Оба они могут быть получены из кластера путем вызова Connect-ServiceFabricCluster с переключателем -GetMetadata (это также делается в функции Get-AadSecurityToken).

person Matt Thalman    schedule 01.11.2016
comment
С небольшими изменениями я смог получить этот код, чтобы без проблем сгенерировать мне securityToken. Когда я затем передаю этот параметр в сценарий развертывания, он возвращает ошибку: WARNING: Unable to Verify connection to Service Fabric cluster. Exception: at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord) Message : Cluster connection instance is null - person Aaron0; 02.11.2016
comment
моя беда, я забыл добавить . перед вызовом скрипта. Спасибо за вашу помощь - person Aaron0; 02.11.2016