Azure key vault: Zugriff verweigert
Ich habe den folgenden code für die Beschaffung ein Geheimnis aus der Azure key vault:
public static async Task<string> GetToken(string authority, string resource, string scope)
{
var authContext = new AuthenticationContext(authority);
ClientCredential clientCred = new ClientCredential(...); //app id, app secret
AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);
if (result == null)
throw new InvalidOperationException("Failed to obtain the JWT token");
return result.AccessToken;
}
public static string GetSecret(string secretName)
{
KeyVaultClient keyVaultClient = new KeyVaultClient(GetToken);
try
{
return keyVaultClient.GetSecretAsync("my-key-vault-url", secretName).Result.Value;
}
catch(Exception ex)
{
return "Error";
}
}
Den Fehler bin ich immer "Zugriff verweigert", was (glaube ich) bedeutet, dass die id, secret und der Tresor die url sind in Ordnung. Allerdings, ich weiß nicht, was ich anders machen kann um diesen Fehler zu beheben, ist es vielleicht eine Einstellung in der Azure-portal, das hindert mich daran, zu Lesen, ein Geheimnis?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zu beheben " Zugriff verweigert Sie müssen zum konfigurieren der Active Directory-Berechtigungen. Gewähren Sie den Zugriff auf KeyVault.
1. Mit PowerShell
Führen Sie folgenden Befehl aus:
2. Mit dem Azure-portal
Lassen Sie die Anwendung zu verwenden, den Schlüssel oder das Geheimnis
Die Frage haben angeben, mit dem Azure Portal, ich dokumentiert haben, erstellen eines Dienst-Prinzipals für Key Vault access hier.
Speziell aus Schritt 2:
Was ist passiert - Ihr service AUFTRAGGEBER nicht berechtigt ist zu führen, sagte die Bedienung. Werfen Sie einen Blick auf diesen thread.
Wie behebe ich einen "Einsatz" set "nicht erlaubt" - Fehler beim erstellen einer Azure-KeyVault Geheimnis programmgesteuert?
Wenn Sie wollen, um zu autorisieren, dass die gleiche Anwendung zum Lesen Geheimnisse in Ihrem vault, führen Sie die folgenden:
Beim registrieren der Anwendung in Azure ClientId generiert.
Zugriff auf die Schlüssel im Tresor .Net-code
Azure-Einstellung:-
App-Service-
1-Aktivieren-MSI(Managed-service-Identität)-AUF
Key Vault:
1-Open Key Vault
2-Wählen Sie Richtlinien für den Zugriff aus dem Schlüssel-Tresor-Ressource Klinge
3 - Klicken Sie auf die [+ Add new] - Schaltfläche an der Oberseite der Klinge
4-Klicken Sie auf "Prinzipal Auswählen" wählen Sie die Anwendung(App-Dienst), die Sie zuvor erstellt haben
.Net-Code:-
Code Access key vault Geheimnisse .Net-Code