Erzeugt Key-Vault & bereitgestellt die Berechtigung für die RP Service Principal (Anwendung bei AzureAD registriert) durch Ausführen der Power Shell-Befehl . Key-Vault Details ist unten angegeben -"Bad Request" -Fehler oder "NoRegisteredProviderFound" bei der Bereitstellung Key Vault Zertifikat (selbstsigniert) in Web App
Vault Name : MyKeyVaultTest
Ressourcen-ID:/Zeichnungen/***** - ***** - ***** - ***** - ***** *****/resourceGroups/XXX-YYY-ZZZ/Anbieter/Microsoft.KeyVault/Gewölbe/MyKeyVaultTest -Richtlinien: Tenant-ID: d29bcd12-3280-4f37-b8f2-6e9e2f581472 Objekt ID: daccd2fd-835a-4c03- 8336-c5fcf481f3cc Anwendungs-ID: 172f36fc-a098-47a1-9c83-04016d3e9781 Berechtigungen für Schlüssel: Abrufen, Auflisten, Aktualisieren, Erstellen, Importieren, Löschen, Wiederherstellen, Sichern, Wiederherstellen, Entschlüsseln, Verschlüsseln, UnwrapKey, WrapKey, Verifizieren, Unterschreiben , Bereinigen Permissions to Secrets: Abrufen, Auflisten, Festlegen, Löschen, Wiederherstellen, Sichern, Wiederherstellen, Purge Berechtigungen Zertifikate: Get, List, Update, Erstellen, Importieren, Löschen, ManageContacts, ManageIssuers, GetIssuers, ListIssuers, SetIssuers, DeleteIssuers Berechtigungen (Key Vault verwaltet) Lagerung:
ein selbst Erstellt unterzeichnet Zertifikat unter Verwendung der unten genannte Power Shell-Skript -
$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
Hinzugefügt gleiches Zertifikat Key-Vault und bekam das Geheimnis namens "mykeyvaulttestwebappPK" mit Inhaltstyp „application/x-pkcs12.
Aktivieren Sie anschließend den ARM-Client und führen Sie das unten genannte Skript aus, um das Key Vault-Zertifikat in Web App mit dem Namen "MyKeyVaultTestWebApp" zu implementieren, das einen Fehler verursacht. Script und Fehler sind unten angegeben -
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: Geworben "https://blogs.msdn.microsoft.com/appserviceteam/2016/05/24/deploying-azure-web-app-certificate-through-key-vault/" verwendet, um die Änderungen zu implementieren]
Ich habe versucht, aber immer noch denselben Fehler ... PS C: \ Windows \ system32> $ servicePrincipal = New-AzureRmADServicePrincipal -ApplicationId 172f36fc-a098-47a1-9c83-04016d3e9781 PS C: \ Windows \ system32> Set-AzureRmKeyVaultAccessPolicy -VaultName MyKeyVaultTest -ObjectId $ servicePrincipal.Id - PermissionsToKey All - PermissionsToSecrets all Warnung: Die Berechtigung "all" wird nicht weiter unterstützt und enthält nicht die Berechtigung zum Löschen. Die Berechtigung 'Löschen' muss explizit festgelegt werden. PS C: \ Windows \ system32> $ ServicePrincipal.ApplicationId #Outputs Sie die service/AppPrincipalId –
Sie nicht meine PS-Code ändern, bedeutet, dass die Serviceprincipal abfa0a7c-a6b6-4736-8310-5855508787cd azur Web-App service.Please meine Codes kopieren (Ändern Sie einfach den Namen des Schlüsselwortes) und versuchen Sie es erneut. –