2016-05-09 4 views
0

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

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

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

«Вход-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 

ответ

2

Для того чтобы Azure командлетов для обнаружения правильного сертификата вам необходимо установить публичный сертификат (файл .cer) в хранилище доверенных корневых ЦС.

+0

спасибо. Я пробовал это, но не уверен, что я делаю неправильно. Пробовал снова с mmc и добавил сертификат (.pfx) в Trusted Root Certificate, но не работал. Снова импортировал тот же сертификат (.pfx) в Личном хранилище, и он сработал. –

0

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