Créé Key-Vault & a fourni l'autorisation au RP Service Principal (application enregistrée auprès d'AzureAD) en exécutant la commande Power Shell . Key-Vault de détails est donnée ci-dessous -Obtention de l'erreur "Requête incorrecte" ou "NoRegisteredProviderFound" lors du déploiement du certificat Key Vault (auto-signé) dans Web App
Vault Name : MyKeyVaultTest
ID de ressources:/abonnements/***** - ***** - ***** - ***** - ***** *****/resourceGroups/XXX-YYY-ZZZ/fournisseurs/Microsoft.KeyVault/coffres/MyKeyVaultTest Politiques d'accès: locataire ID: d29bcd12-3280-4f37-b8f2-6e9e2f581472 ID de l'objet: daccd2fd-835A-4c03- 8336-c5fcf481f3cc ID de l'application: 172f36fc-a098-47a1-9c83-04016d3e9781 Autorisations aux clés: Obtenir, liste, mise à jour, créer, importer, supprimer, récupérer, sauvegarder, restaurer, déchiffrer, crypter, UnwrapKey, WrapKey, vérifier, signer , Purge Autorisations pour les secrets: Obtenir, Liste, Définir, Supprimer, Récupérer, Sauvegarder, Restaurer, Purger Permission Certificats: Get, Liste, mise à jour, créer, importer, Supprimer, ManageContacts, ManageIssuers, GetIssuers, ListIssuers, SetIssuers, DeleteIssuers Permission de (Key Vault Managed) Stockage:
créé un certificat auto-signé Mentionnés ci-dessous à l'aide d'alimentation Shell script -
$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
Ajouté même certificat à Key Vault et a obtenu le secret nommé "mykeyvaulttestwebappPK" application ayant le type de contenu »/ x-pkcs12.
Activez ensuite le client ARM et exécutez le script mentionné ci-dessous pour déployer le certificat de coffre-fort de clés dans l'application Web "MyKeyVaultTestWebApp" qui génère une erreur. Script et les erreurs sont donnés ci-dessous -
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: Référé "https://blogs.msdn.microsoft.com/appserviceteam/2016/05/24/deploying-azure-web-app-certificate-through-key-vault/" utilisé pour mettre en œuvre les modifications]
J'ai essayé, mais toujours obtenir la même erreur ... PS C: \ Windows \ system32> $ servicePrincipal = Nouveau-AzureRmADServicePrincipal -ApplicationId 172f36fc-a098-47a1-9c83-04016d3e9781 PS C: \ Windows \ system32> Set-AzureRmKeyVaultAccessPolicy -VaultName MyKeyVaultTest -ObjectId $ servicePrincipal.Id - PermissionsToKeys all -PermissionsToSecrets all AVERTISSEMENT: l'autorisation 'all' est déconseillée et n'inclut pas l'autorisation 'purge'. L'autorisation 'Purger' doit être explicitement définie. PS C: \ Windows \ system32> $ ServicePrincipal.ApplicationId #Outputs le ServicePrincipalName/AppPrincipalId –
Ne pas changer mon code PS, le ServicePrincipalName abfa0a7c-a6b6-4736-8310-5855508787cd signifie application web d'azur service.please copier mes codes (changez simplement le nom du keyvault) et réessayez. –