Compilação VSTS e PowerShell e autenticação AzureAD

Eu tenho um projeto VSTS conectado por meio de um Principal de serviço a uma assinatura do Azure por meio de um ponto de extremidade do Azure Resource Manager. Isso funciona bem para minhas compilações que configuram recursos do ARM por meio de implantações modeladas e controladas por parâmetros.

Eu tenho um requisito adicional para configurar grupos do Azure AD como parte da compilação. Eu tenho um script que funciona bem na minha máquina local. Quando implantei por meio da compilação e ela foi executada no controlador de compilação hospedado, o script não pôde inicialmente encontrar o módulo AzureAD. Eu consegui contornar isso incluindo o script no git Repo e acessando-o através de:

$adModulePath = $PSScriptRoot + "\PsModules\AzureAD\2.0.0.131\AzureAD.psd1"
Import-Module $adModulePath 

No entanto, agora tenho outro problema quando se trata de executarNew-AzureADGroup. O script requerConnect-AzureAD para ser executado antes que o comando seja emitido. Isso funciona bem ao codificar uma credencial, mas não quero fazer isso, quero que seja executada no contexto do SPN criado, que está executando os scripts no controlador de compilação hospedado.

Portanto, a questão é: posso obter o contexto atual do SPN de execução do Azure PowerShell e transmiti-lo paraConnect-AzureAD evitar armazenar credenciais em texto sem formatação? Estou perdendo um truque? Existem alternativas?

Meu código atual é como abaixo, a conexão comentada funciona bem com o comando, como nos valores codificados. A chamada sem parâmetros apresenta a interface do usuário de logon que finaliza a compilação, pois obviamente não é interativa.

## Login to Azure
#$SecurePassword = ConvertTo-SecureString $AdminPassword -AsPlainText -Force
#$AdminCredential = New-Object System.Management.Automation.PSCredential ($AdminUserEmailAddress, $SecurePassword)
#Connect-AzureAD -Credential $AdminCredential

Connect-AzureAD

Write-Output "------------------ Start: Group Creation ------------------"

$TestForAdminGroup = Get-AzureADGroup -SearchString $AdminGroup
$TestForContributorGroup = Get-AzureADGroup -SearchString $ContributorGroup
$TestForReaderGroup = Get-AzureADGroup -SearchString $ReaderGroup

obrigado

questionAnswers(3)

yourAnswerToTheQuestion