New-AzureRmADApplication および New-AzureRmADServicePrincipal コマンドレットを使用して、アプリケーションとサービス プリンシパルを含む自己署名証明書を正常に作成しました。
証明書を取得した後、次のコマンドを使用してログインを実行できます。
Login-AzureRmAccount -ServicePrincipal -CertificateThumbprint $cert.Thumbprint -TenantId $tenantID -ApplicationId $applicationID
ただし、この認証の SubscriptionId/SubscriptionName 属性は空白として表示されます。
Environment : AzureCloud
Account : ********************
TenantId : ********************
SubscriptionId :
SubscriptionName :
CurrentStorageAccount :
その後、このコマンドが機能します。
$secret = Get-AzureKeyVaultSecret -VaultName $vaultName -Name $keyName
私にとって混乱しているのは、DEV サブスクリプションで AzureKeyVaultSecret を取得できることですが、このコマンドレットがどのサブスクリプションを使用するかをどのように認識しているのかわかりませんか? PROD サブスクリプションに同じボールトを作成するつもりですが、最初に、この ServicePrincipal/Certificate 認証がどのサブスクリプションからプルするか、および/またはそれを操作する方法を認識する方法を理解する必要がありますか?
App/ServicePrincipal を作成したときに、次のように "DEV" サブスクリプションを指定してログインしたと言えます。
$subscriptionName = "DEV"
$user = "user@company.com"
$password = "*****"
$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($user, $securePassword)
Login-AzureRmAccount -Credential $credential -SubscriptionName $subscriptionName