Автоматизация Azure - учетные данные, предоставляемые Get-PSAutomationCredential, не работают с Add-AzureAccount?

Я модифицирую модуль Runbook галереи, который копирует действующую базу данных в тестовую базу данных по расписанию. Он терпит неудачу на первом же препятствии; проверка подлинности и выбор релевантной подписки Azure

Runbook выглядит так:

$Cred = Get-AutomationPSCredential -Name 'automationCredential'

Write-Output "UN: $($Cred.Username)"

Add-AzureAccount -Credential $Cred

Я использовал колонку учетных данных портала для создания учетных данных с именем «automationCredential». В качестве имени пользователя и пароля я указал имя пользователя / pw, с которым я вхожу на лазурный портал. Примечание: это НЕ учебная / рабочая учетная запись Microsoft, а личная.

Я могу сказать, что вызов Get-PSAutomationCredential работает, потому что вызов Write-Ouput показывает правильное значение

Однако Add-AzureAccount выдает следующую ошибку:

Add-AzureAccount : unknown_user_type: Unknown User Type At
Set-DailyDatabaseRestore:22 char:22 CategoryInfo          :
CloseError: (:) [Add-AzureAccount], AadAuthenticationFailedException
FullyQualifiedErrorId :
Microsoft.WindowsAzure.Commands.Profile.AddAzureAccount

Есть указания, как получить рабочие учетные данные?


person Caius Jard    schedule 10.07.2017    source источник


Ответы (2)


Согласно вашему описанию, похоже, что ваша учетная запись является учетной записью Microsoft (например, *@outlook.com, *@hotmail.com). Microsoft не поддерживает неинтерактивный вход в систему. Также небезопасно использовать свою учетную запись для прямого входа в подписку. Для модуля Runbook вы можете использовать следующие коды для входа в систему.

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection=Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
}

В приведенном выше коде вам нужно использовать соединение AzureRunAsConnection, оно создается по умолчанию в Azure, вы можете использовать его напрямую, вы можете проверить это соединение, оно включает информацию о вашей подписке. введите описание изображения здесь

Кроме того, вы можете создать новое соединение, см. Эту ссылку .

person Shui shengbao    schedule 11.07.2017

Вы пробовали использовать версию диспетчера ресурсов вне командлета входа (Add-AzureRmAccount)?

person Jenny Hunter    schedule 10.07.2017
comment
Тат, кажется, продвинется немного дальше; Теперь он жалуется на следующую строку, идентификатор подписки abcdef1234-blahblah не существует - person Caius Jard; 10.07.2017
comment
Вы также используете версию этого командлета для RM? (Select-AzureRmSubscription) - person Jenny Hunter; 11.07.2017