У меня есть секрет с именем «HMAC», связанный с именем HMACKey в рабочем процессе, и мне сказали использовать код string secretKey = await {Azure Key Vault Client}.GetSecretAsync({Azure Key Vault Url}, {Azure Secret}), чтобы получить это.
Я предполагаю {Key Vault Url} означает первую часть URI для идентификатора секрета, который в моем тестовом примере — «https://hmactesting.vault.azure.net», а секрет — это имя секрета «HMAC» в в этом случае.
Но что в данном случае подразумевается под {Azure Key Vault Client}? Это новый тип KeyVaultClient(), который я должен объявить и авторизовать во встроенном коде, или он уже существует как переменная среды в рабочем процессе, к которой я могу подключиться и использовать?
Я искал в сети, но не нашел ничего конкретного о том, как это сделать из встроенного объекта «Код сценария CSharp» в рабочем процессе Azure?
Я думаю струны для «KeyVaultUrl» и «secret» указаны правильно в команде, которая оставляет объект {Azure Key Vault Client}. Это что-то, что мне еще нужно создать в коде? Я видел примеры кода C#, в которых это создается, но они не использовали рабочий процесс Azure и объект сценария C#.
Я уже вижу секрет, который пытаюсь прочитать, когда Я настроил его как объект в рабочем процессе, могу ли я подключиться к нему из сценария C#?
Мой полный тестовый сценарий выглядит следующим образом:
Код: Выделить всё
// Add the required libraries
#r "Newtonsoft.Json"
#r "Microsoft.Azure.Workflows.Scripting"
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Primitives;
using Microsoft.Extensions.Logging;
using Microsoft.Azure.Workflows.Scripting;
using Newtonsoft.Json.Linq;
using System;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
///
/// Executes the inline csharp code.
///
///
The workflow context.
/// This is the entry-point to your code. The function signature should remain unchanged.
public static async Task Run(WorkflowContext context, ILogger log)
{
//String Variables (for clarity)
string KeyVaultUrl = "https://hmactesting.vault.azure.net";
string secret = "HMAC";
string compare = string.Empty;
string _origonalMessage = string.Empty;
string _origonalHmac = string.Empty;
string _calculatedHmac = string.Empty;
////Define the trigger output.
var triggerOutputs = (await context.GetTriggerResults().ConfigureAwait(false)).Outputs;
//string kvSecret = await kVClient.GetSecretAsync(azureKeyVaultUrl, secret);
////Set the local HMAC key from the Azure Key Vault.
string secretKey = "HMAC-TEST"; //
Подробнее здесь: [url]https://stackoverflow.com/questions/79287623/how-do-you-get-a-key-vault-secret-using-inline-csharp-script-code-in-an-azure[/url]