Подключение к службе автоматизации Azure с помощью собственного субъекта-службы с ключом

Я создаю модуль Runbook с помощью службы автоматизации Azure и использую командлеты.

$connection = Get-AutomationConnection -Name $Name

Соединение связано с сертификатом, имеющим ключ. Как предоставить ключ с помощью этого командлета подключения

    Add-AzureRmAccount -ServicePrincipal `
                   -EnvironmentName "AzureUSGovernment" `
                   -Tenant $connection.TenantID `
                   -ApplicationId $connection.ApplicationID `
                   -CertificateThumbprint $connection.CertificateThumbprint `
                   -ErrorAction Stop `
                   |Out-Null

Ошибка:

AADSTS70002: Error validating credentials. AADSTS50012: Client assertion contains an invalid signature. [Reason - The key was not found., Thumbprint of key used by client: 'xxx', Please visit 'https://developer.microsoft.com/en-us/graph/graph-explorer' and query for 'https://graph.microsoft.com/beta/applications/8a09f2d7-8415-4296-92b2-80bb4666c5fc' to see configured keys] Trace ID: adfa5f5d-aaf2-4657-9e5f-1966ad540600 Correlation ID: 68f34f9b-b773-46ed-993e-e06ead5dd6b4 Timestamp: 2018-08-10 02:58:01Z

person meow tho    schedule 10.08.2018    source источник


Ответы (1)


Если вы хотите войти в систему с помощью субъекта-службы, вам необходимо создайте ключ аутентификации, чтобы сделать это, если вы создадите учетную запись автоматизации, она автоматически создаст приложение AD и субъект-службу , дополнительные сведения см. в этом сообщении.

Кроме того, когда вы получаете SubscriptionId, TenantId, ApplicationId, CertificateThumbprint с помощью команды $connection = Get-AutomationConnection -Name $Name. Вы должны указать его с помощью $connection.FieldDefinitionValues.xxxxx, например -Tenant $connection.FieldDefinitionValues.TenantID.

Итак, ваша команда должна быть:

$azurePassword = ConvertTo-SecureString "your key" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($connection.FieldDefinitionValues.ApplicationID, $azurePassword)
Add-AzureRmAccount -ServicePrincipal `
                   -EnvironmentName "AzureUSGovernment" `
                   -Tenant $connection.FieldDefinitionValues.TenantID `
                   -ApplicationId $connection.FieldDefinitionValues.ApplicationID `
                   -Credential $psCred `
                   -CertificateThumbprint $connection.FieldDefinitionValues.CertificateThumbprint 
person Joy Wang    schedule 10.08.2018