gpt4 book ai didi

c# - 列出 KeyVault 中的 secret 而无需登录每个 secret ?

转载 作者:太空狗 更新时间:2023-10-30 00:23:13 26 4
gpt4 key购买 nike

我已成功列出 Azure KeyVault 中的所有 secret - 但是每次我想要获取下一个 secret 时,我都需要进行调用以获取 token 。

如何存储凭据,以便我只需在循环期间登录一次?

    public async Task<List<string>> getsecretslist(string url)
{

var kv = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetToken));

List<string> secretlist = new List<string>();
var all = kv.GetSecretsAsync(url);
var myId = "";
foreach (Microsoft.Azure.KeyVault.Models.SecretItem someItem in all.Result)
{
myId = someItem.Id;
var mOtherThing = someItem.Identifier;
var yep = await kv.GetSecretAsync(mOtherThing.ToString());
secretlist.Add(yep.Value);
}

return secretlist;
}

最佳答案

在 GetToken 回调方法中,您需要缓存访问 token ,只要它有效且未过期。然后您的回调将返回缓存的访问 token ,而不是再次进行身份验证。以下代码片段将使用 ADAL 默认 token 缓存(例如 TokenCache.DefaultShared)。

public static async Task<string> GetToken(string authority, string resource, string scope)
{
var assertionCert = new ClientAssertionCertificate(clientId, certificate);
var context = new AuthenticationContext(authority, TokenCache.DefaultShared);
var result = await context.AcquireTokenAsync(resource, assertionCert).ConfigureAwait(false);

return result.AccessToken;
}

关于c# - 列出 KeyVault 中的 secret 而无需登录每个 secret ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42653817/

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