Нет ошибки сертификата при входе в AzureRmAccount -ServicePrincipal

Я автоматизировал несколько шагов, используя шаблон ARM для развертывания Java / Tomcat, но мне не удается добиться успеха в автоматическом входе в систему с помощью сертификата.

Я создал самозаверяющий сертификат с использованием OpenSSL для фиктивного домена «project.company.com». После выполнения этой статьи для настройки приложения в AD и субъекта-службы с ролью участника https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal/#provide-certificate-through-automatic-powershell-script

Я получаю ошибку

«Login-AzureRmAccount: в хранилище сертификатов не найден сертификат с отпечатком xxxxxxxxxxxxxxxxxxx» для следующего.

Похоже, мне чего-то не хватает на уровне подписки Azure. Эти точные шаги отлично подходят для Azure CLI из системы Linux, но не работают для Azure PowerShell из Windows.

$cert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2 -ArgumentList @("<my-path>/project.company.pfx", "<my-password>")

#$applicationId="xxxxxxxxxxxxxxxxxxxxx"
#$tenantId="dddddddddddddddddddddd"
#$subscriptionId="yyyyyyyyyyyyyyyyyyy"
#Login-AzureRmAccount -CertificateThumbprint $cert.Thumbprint -ApplicationId $applicationId -ServicePrincipal -TenantId $tenantId

$azureAdApplication = Get-AzureRmADApplication -IdentifierUri "https://project.company.com"
$subscription = Get-AzureRmSubscription
Login-AzureRmAccount -CertificateThumbprint $cert.Thumbprint -ApplicationId $azureAdApplication.ApplicationId -ServicePrincipal -TenantId $subscription.TenantId

person Anurag Sharma    schedule 09.05.2016    source источник


Ответы (2)


Чтобы командлеты Azure могли определить правильный сертификат, вам необходимо установить общедоступный сертификат (файл .cer) в хранилище доверенных корневых центров сертификации.

person Michael B    schedule 09.05.2016
comment
Спасибо. Я пробовал это, но не знал, что делаю не так. Попробовал снова с mmc и добавил сертификат (.pfx) в Trusted Root Certificate, но не работал. Снова импортировал тот же сертификат (.pfx) в личный магазин, и он сработал. - person Anurag Sharma; 09.05.2016
comment
Как это сделать в сборке AppCenter, чтобы мы могли вызывать настраиваемые сценарии сборки, которые подключаются к Azure (хранилище BLOB-объектов и т. Д.)? - person Sean Anderson; 13.01.2020

Хотя установка сертификата в доверенные корневые центры сертификации будет работать, это не рекомендуется, поскольку это влияет на то, какие другие приложения на вашем компьютере будут доверять. Вместо этого установите сертификат в LocalMachine \ My store или CurrentUser \ My store.

person Mark Cowlishaw - MSFT    schedule 17.06.2017