gpt4 book ai didi

c# - 如何检查 secret 是否在 Azure Key Vault 中

转载 作者:行者123 更新时间:2023-12-03 20:16:30 25 4
gpt4 key购买 nike

我团队中的每个开发人员都有自己的个人 Azure Key Vault 链接到他们的本地机器。我们有生产站点查看的生产 Azure key 保管库。

在代码中,它从保险库中寻找特定的 secret 。开发人员不会在他们的个人 key 保管库中拥有 secret ,但生产 key 保管库将拥有 secret 。

因此,当开发人员进行调试时,它会捕获一个异常,说明该 secret 不存在。

有没有办法有条件地检查 secret 存在 ,还是我只需要让它捕获异常?

最佳答案

没有方法可以检查 key 保管库中是否存在 secret 。因此,可以利用一些创造力来做到这一点(为了简洁,跳过了参数检查):

    public bool CheckIfSecretExists(string accessToken, string secretUri)
{
var kvClient= new KeyVaultClient(accessToken);
try
{
kvClient.GetSecretAsync(secretUri ).Result.Value;
return true;
}
catch (AggregateException ex)
{
if (ex.InnerException is KeyVaultErrorException exception && exception.Body.Error.Code == "SecretNotFound")
return false;

throw;
}
}

编辑:
找到了一种无需依赖异常即可检查 secret 是否存在的方法:
public async Task<bool> DoesSecretExist(string accessToken, string keyVaultBaseUrl, string secretName)
{
var kvClient = new KeyVaultClient(accessToken);
try
{
IPage<SecretItem> secretVersions = await kvClient.GetSecretVersionsAsync(keyVaultBaseUrl, secretName)
.ConfigureAwait(false);
if (!secretVersions.Any())
return false;

return true;
}
catch (Exception )
{
throw;
}
}

关于c# - 如何检查 secret 是否在 Azure Key Vault 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53013790/

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