gpt4 book ai didi

c# - 如何模拟 Azure KeyVaultKey C#

转载 作者:行者123 更新时间:2023-12-03 03:38:52 28 4
gpt4 key购买 nike

我目前正在尝试对某些 Azure Functions 进行单元测试,该服务需要从 Azure Key Vault 获取 KeyVaultKey,该 key 将用于加密某些数据。我想设置下面的操作的模拟并返回一个自己的自定义 KeyVaultKey。不幸的是,我不知道如何创建功能性 KeyVaultKey 的实例。

 KeyVaultKey key = await KeyClient.GetKeyAsync(KeyVaultEncryptionKey).ConfigureAwait(false);

我的模拟:

var keyClient = new Mock<KeyClient>();
var azureResponse = new Mock<Response>();
Response<KeyVaultKey> response = Response.FromValue(GetKey(), azureResponse.Object);
keyClient.Setup(c => c.GetKeyAsync(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<CancellationToken>())).Returns(Task.FromResult(response));

private KeyVaultKey GetKey()
{
var generatedKey = RSA.Create();
var keyProperties = new KeyProperties("key");


var webKey = new Azure.Security.KeyVault.Keys.JsonWebKey(generatedKey, includePrivateParameters: true);
var keyVault = KeyModelFactory.KeyVaultKey(keyProperties, webKey);
return keyVault;
}

有人可以告诉我我的错误在哪里,并告诉我如何正确模拟 KeyVaultKey 吗?

最佳答案

这也取决于您需要运行的测试类型,但如果可以选择启动 Docker 容器来为 Key Vault 提供测试替身,您可以简单地从容器中获取真正的 key ,而不必关注关于模拟 key 。

如果此选项对您的项目有意义,您可以尝试一下 Lowkey Vault:https://github.com/nagyesta/lowkey-vault

它也带有 .Net POC:https://github.com/nagyesta/lowkey-vault-example-dotnet

关于c# - 如何模拟 Azure KeyVaultKey C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72229308/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com