2017-09-25 5 views
1

作成された鍵格納域& Power Shellコマンドを実行してRPサービス・プリンシパル(AzureADに登録されたアプリケーション) 。 /サブスクリプション/ ***** - ***** - ***** - ***** - *****:キー・ボールト証明書(自己署名)をWebアプリケーションにデプロイする際に「Bad Request」エラーまたは「NoRegisteredProviderFound」が発生する

Vault Name : MyKeyVaultTest 

リソースID - キーVaultは、以下に示す詳細*****/resourceGroups/XXX-YYY-ZZZ /プロバイダ/ Microsoft.KeyVault /金庫/ MyKeyVaultTest アクセスポリシー: テナントID:d29bcd12-3280-4f37-b8f2-6e9e2f581472 オブジェクトID:daccd2fd-835A-4c03- 8336-c5fcf481f3cc アプリケーションID:172f36fc-a098-47a1-9c83-04016d3e9781 鍵へのアクセス権:取得、一覧、更新、作成、インポート、削除、回復、バックアップ、復元、復号化、暗号化、UnwrapKey、WrapKey、検証、署名、パージ シークレットへのアクセス権:取得、一覧表示、設定、削除、回復、バックアップ、復元、パージ は、証明書の権限: 権限に、リスト、更新を取得します作成、インポート、削除、ManageContacts、ManageIssuers、GetIssuers、ListIssuers、SetIssuers、DeleteIssuersストレージ(キーVaultは、管理)を:

は、自己署名証明書を作成し以下使用すると、パワーシェルスクリプトを述べた -

$cert = New-SelfSignedCertificate -certstorelocation cert:\localmachine\my -dnsname XXXXXXXtechmahindra.onmicrosoft.com 
$pwd = ConvertTo-SecureString -String ‘[email protected]@’ -Force -AsPlainText 
$path = 'cert:\localmachine\my\' + $cert.thumbprint 
Export-PfxCertificate -cert $path -FilePath c:\temp\cert.pfx -Password $pwd 

はキーVaultに同じ証明書を追加しましたし、秘密は、コンテンツタイプ「アプリケーション/ X-PKCS12を有する「mykeyvaulttestwebappPK」という名前です。

次に、ARMクライアントを有効にして、以下に述べるスクリプトを実行して、Key Vault証明書をエラーを出している「MyKeyVaultTestWebApp」という名前のWebアプリケーションにデプロイします。スクリプトとエラーが以下の通りである -

1. Script without changing the API version: 

ARMClient.exe PUT /subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/certificates/keyvaultcertificate?api-version=2016-03-01 "{'Location':'SouthCentralUS','Properties':{'KeyVaultId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.KeyVault/vaults/MyKeyVaultTest', 'KeyVaultSecretName':'mykeyvaulttestwebappPK', 'serverFarmId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/serverfarms/MyKeyVaultTestWebAppServicePlan'}}" 

"Code": "BadRequest", 
"Message": "The service does not have access to '/subscriptions/*****-*****-*****-*****-**********/resourcegroups/rg-scotia-scale-test/providers/microsoft.keyvault/vaults/mykeyvaulttest' Key Vault. Please make sure that you have granted necessary permissions to the service to perform the request operation." 

2. Script with the Serverfarm’s API version: 

ARMClient.exe PUT /subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/certificates/keyvaultcertificate?api-version=2016-09-01 "{'Location':'SouthCentralUS','Properties':{'KeyVaultId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.KeyVault/vaults/MyKeyVaultTest', 'KeyVaultSecretName':'mykeyvaulttestwebappPK', 'serverFarmId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/serverfarms/MyKeyVaultTestWebAppServicePlan'}}" 

"code": "NoRegisteredProviderFound", 
"message": "No registered resource provider found for location 'SouthCentralUS' and API version '2016-09-01' for type 'certificates'. 


3. Script with the Key-Vault’s API version: 

ARMClient.exe PUT /subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/certificates/keyvaultcertificate?api-version=2015-06-01 "{'Location':'SouthCentralUS','Properties':{'KeyVaultId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.KeyVault/vaults/MyKeyVaultTest', 'KeyVaultSecretName':'mykeyvaulttestwebappPK', 'serverFarmId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/serverfarms/MyKeyVaultTestWebAppServicePlan'}}" 

"Code": "BadRequest", 
"Message": "The service does not have access to '/subscriptions/*****-*****-*****-*****-**********/resourcegroups/rg-scotia-scale-test/providers/microsoft.keyvault/vaults/mykeyvaulttest' Key Vault. Please make sure that you have granted necessary permissions to the service to perform the request operation." 

[NB:変更を実装するために使用される「https://blogs.msdn.microsoft.com/appserviceteam/2016/05/24/deploying-azure-web-app-certificate-through-key-vault/」と呼ば]あなたのエラーメッセージによると

答えて

0

を、私はあなたが「マイクロソフトを有効にしないことと思います。 Webのリソースプロバイダは、空白の鍵Vaultに直接アクセスします。

キーボルトのエラーにアクセスするのに十分な権限を持つことができます。

権限を有効にするには、以下のpowershellコードに従うことをお勧めします。

次に、あなたはazure webアプリケーションで証明書を設定できます。このような

コード:

Login-AzureRmAccount 
Set-AzureRmContext -SubscriptionId AZURE_SUBSCRIPTION_ID 
Set-AzureRmKeyVaultAccessPolicy -VaultName KEY_VAULT_NAME -ServicePrincipalName abfa0a7c-a6b6-4736-8310-5855508787cd -PermissionsToSecrets get 

次に、あなたが証明書を追加するには、このコードを呼び出すことができます。

ARMClient.exe PUT /subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/certificates/keyvaultcertificate?api-version=2016-03-01 "{'Location':'SouthCentralUS','Properties':{'KeyVaultId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.KeyVault/vaults/MyKeyVaultTest', 'KeyVaultSecretName':'mykeyvaulttestwebappPK', 'serverFarmId':'/subscriptions/*****-*****-*****-*****-**********/resourceGroups/XXX-YYY-ZZZ/providers/Microsoft.Web/serverfarms/MyKeyVaultTestWebAppServicePlan'}}" 

結果:

enter image description here

enter image description here

+0

私は試しましたが、まだ同じエラーが発生しています... PS C:\ WINDOWS \ SYSTEM32> $たservicePrincipal =新AzureRmADServicePrincipal -ApplicationId 172f36fc-a098-47a1-9c83-04016d3e9781 PS C:\ WINDOWS \ SYSTEM32>セットAzureRmKeyVaultAccessPolicy -VaultName MyKeyVaultTest -objectid $ servicePrincipal.Id - PermissionsToKeys all -PermissionsToSecrets all 警告: 'all'権限は廃止され、 'purge'権限は含まれていません。 'Purge'パーミッションを明示的に設定する必要があります。 PS C:\ Windowsが\ SYSTEM32> $ ServicePrincipal.ApplicationIdは#OutputsのservicePrincipalName/AppPrincipalId –

+0

私のPSコードを変更しないでください、のservicePrincipalName abfa0a7c-a6b6-4736-8310-5855508787cdは、紺碧のWebアプリのservice.Pleaseが私のコードをコピー意味(キーボーム名を変更するだけ)、もう一度やり直してください。 –

関連する問題