2017-09-25 1 views
1

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]

Antwort

0

Nach der Fehlermeldung, ich denke, man kann die ‚Microsoft nicht aktivieren. Web 'Ressourcenanbieter greift direkt auf den Azurschlüssel Vault zu.

Sie werden also feststellen, dass Sie die Berechtigung zum Zugriff auf den Schlüsselverwaltungsfehler haben könnten.

Ich schlage vor, Sie könnten unten Powershell-Codes folgen, um die Erlaubnis zu ermöglichen.

Dann können Sie das Zertifikat in azurblauen Web-App festlegen.

Codes wie folgt aus:

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

Dann können Sie diese Codes rufen Sie das Zertifikat hinzufügen:

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'}}" 

Ergebnis:

enter image description here

enter image description here

+0

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 –

+0

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. –

Verwandte Themen