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

如何从IIS上托管的.NET代码访问密钥存储库机密

公西繁
2023-03-14

我有一个场景:

>

  • 在Azure中使用secret创建密钥库。
  • 用代码访问此机密。

         var azureServiceTokenProvider = new AzureServiceTokenProvider();
                var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
                ConfigurationApp.ClientId = keyVaultClient.GetSecretAsync("https://test.vault.azure.net/", "testid").Result.Value;
    

    关注本文-https://kasunkodagoda.com/2018/04/28/allow-application-running-on-an-azure-virtual-machine-to-access-azure-key-vault-using-managed-service-identity/

    https://azure.microsoft.com/en-us/resources/samples/app-service-msi-keyvault-dotnet/

  • 共有1个答案

    冯新知
    2023-03-14

    我已经修复了我的问题:Azure VM IIS上托管的.NET代码的访问密钥存储库秘密

      public async Task getAppconfiguration2()
        {
            string URI = "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net";
            Uri uri = new Uri(String.Format(URI));
            HttpClient _client = new HttpClient();
            _client.DefaultRequestHeaders.Add("Metadata", "true");
            HttpRequestMessage request = new HttpRequestMessage
            {
                // Content = new StringContent(body, Encoding.UTF8, "application/json"),
                Method = HttpMethod.Get,
                RequestUri = new Uri(URI)
            };
    
    
            var res = await _client.SendAsync(request);
            var content = res.Content.ReadAsStringAsync();
            JObject token = JsonConvert.DeserializeObject<JObject>(content.Result.ToString());
            string token1 = token["access_token"].ToString();
            ConfigurationApp.Encyptionkey = token1.ToString();
    
            HttpClient _client1 = new HttpClient();
            _client1.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token1);
            HttpRequestMessage request1 = new HttpRequestMessage
            {
    
                Method = HttpMethod.Get,
                RequestUri = new Uri("https://test.vault.azure.net/secrets/clientid?api-version=2016-10-01")
            };
    
    
            var rs = _client1.SendAsync(request1);
            var rk = rs.Result.Content.ReadAsStringAsync();
            JObject clientjson = JsonConvert.DeserializeObject<JObject>(rk.Result.ToString());
            ConfigurationApp.ClientId = clientjson["value"].ToString();
    
        }
    
     类似资料:
    • 我没有找到任何关于在前端端实现逻辑来管理Azure密钥库的可能性的信息。同时,我创建了一个Node JS服务器项目使用ENV来管理Azure Key Vault,它工作成功,但我想在我的Angular应用程序中得到同样的效果。

    • 同一空间/存储库中机密的逻辑分组 HSM的可能性 日志记录/审核 检索/更改机密的一个位置,许多应用程序可能依赖该位置而不触及应用程序。 我不知道如何在我的Spring Boot应用程序中处理存储库访问。当我使用azure-key-vault spring boot Starter时,我必须设置Applications.Properties中的访问权限,如本教程:如何使用spring boot S

    • 我无法访问托管密钥库中的存储帐户密钥。下面是我的代码: 似乎$secret.secretValueText为空/null。如何正确检索存储帐户密钥?这就是出现的错误。

    • 我已经创建了Azure VM,并在其中安装了我的Java应用程序,然后连接到WASB存储。 我添加了以下jars和core-site.xml来从Java应用程序访问WASB存储。 Azure-存储 Hadoop-Azure core-site.xml 如何使用加密密钥访问WASB存储。上面的配置有样例吗? 注意:-我将Azure VM直接连接到WASB存储,而不使用HDInsight集群。

    • 我试图在Azure Devops中进行ARM部署,从而在Azure中的现有密钥存储库中添加密钥存储库访问策略。

    • 问题内容: 我需要将2个密钥存储到KeyStore中,这是相关代码: 尽管我得到了执行,但“私钥必须带有证书链” 那到底是什么?以及我将如何生成它? 问题答案: 您还需要提供私钥条目的证书(公钥)。对于由CA签名的证书,链是CA的证书和最终证书。对于自签名证书,您只有自签名证书。 示例: 要生成证书,请点击以下链接: 示例: