Я автоматизировал несколько шагов, используя шаблон 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