当前位置: 首页 > 知识库问答 >
问题:

无法访问机密%1,而机密%2是同一Azure密钥库的一部分

翟迪
2023-03-14
    null
main function()
{

           kvc = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(GetToken));
           SecretBundle secret = Task.Run(() => kvc.GetSecretAsync(baseSecretURI + @"secrets/" + 
           secretName)).ConfigureAwait(false).GetAwaiter().GetResult();

}

public static async Task<string> GetToken(string authority, string resource, string scope)
{

    var authContext = new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(authority);
    ClientCredential clientCred = new ClientCredential(clientID, clientSecret);
        AuthenticationResult result = await authContext.AcquireTokenAsync(resource, clientCred);

            if (result == null)
                throw new System.InvalidOperationException("Failed to obtain the JWT token");

            return result.AccessToken; // error thrown at this line when trying to access Secret-2
}

共有1个答案

唐焕
2023-03-14

NotFound错误通常表示Azure Key Vault实例中没有与您请求的内容匹配的秘密。你能确认在Azure Key Vault的实例中有一个带有你正在请求的名称的秘密吗?

解决方法:从密钥库中删除该秘密并生成一个新的然后重试。

我使用以下代码进行测试,这些代码来自您提供的代码。

var kvc = new KeyVaultClient(async (authority, resource, scope) =>
    {
        var adCredential = new ClientCredential(clientId,clientSecret);
        var authenticationContext = new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(authority, null);
        var authenticationResult = await authenticationContext.AcquireTokenAsync(resource, adCredential);
        return authenticationResult.AccessToken;
    });
SecretBundle secret = Task.Run(() => kvc.GetSecretAsync(baseSecretURI + @"secrets/" + secretName)).ConfigureAwait(false).GetAwaiter().GetResult();
 类似资料:
  • 我已经能够通过外部web应用程序使用oauth rest api访问azure key vault,但出于某种原因,我无法从密钥中检索机密。经过长时间的研究,我发现用powershell和C#可以做到这一点,但还没有找到用Python解决方案。有人知道python是否有可能,或者有一种方法可以模拟powershell正在做什么吗?以下是检索秘密的代码: 此外,我已经在azure portal中注册

  • 我有几个关于Azure Key Vault的问题,我需要一些技术帮助:链接https://docs.microsoft.com/en-us/Azure/key-vault/general/overview指出,“机密和密钥由Azure保护,使用行业标准算法、密钥长度和硬件安全模块(HSMs)。使用的HSMs经过联邦信息处理标准(FIPS)140-2级验证”。 我想确认这是否适用于秘密,就像适用于密

  • 我在Powershell中编写了一个程序,该程序在Azure Functions应用程序中按计划运行。为了避免硬编码的凭据,我创建了一个Azure密钥库来存储秘密。我在Azure函数中创建了一个托管标识,在Azure Key Vault中创建了秘密,然后在Azure函数中创建了应用程序设置,并使用指向Azure Key Vault中秘密的URL。程序引用应用程序机密(APPSETTING),并按照

  • 我计划在key vault上保留密钥,但我不清楚密钥和秘密的版本控制,我有一些关于Azure key vault上的key/Secret的版本控制的问题。 如何创建现有密钥的新版本? 是否可以解密用不同版本的相同密钥加密的数据? 是否可以为某个版本的密钥设置过期日期?

  • 是否有一种方法可以使用Delphi访问Azure密钥库?我可以使用柏林的data.cloud.azureapi单元访问数据库和blob存储,但想从密钥库中获取数据库连接字符串,但似乎找不到任何用于此操作的代码。