Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过Java中的MSI读取Azure密钥保险库机密_Java_Azure Keyvault_Azure Managed Identity - Fatal编程技术网

通过Java中的MSI读取Azure密钥保险库机密

通过Java中的MSI读取Azure密钥保险库机密,java,azure-keyvault,azure-managed-identity,Java,Azure Keyvault,Azure Managed Identity,我试图通过Java中的托管服务标识(MSI)读取Azure密钥库中的机密。我想要令牌通过MSI访问密钥库 有可供.net执行此操作的引用 但是没有在Java中找到任何东西。我不想通过客户端id/密钥或证书来实现这一点 我希望Java中的某些东西接近于下面的.net代码 using Microsoft.Azure.KeyVault; using Microsoft.Azure.Services.AppAuthentication; AzureServiceTokenProvider azureS

我试图通过Java中的托管服务标识(MSI)读取Azure密钥库中的机密。我想要令牌通过MSI访问密钥库

有可供.net执行此操作的引用 但是没有在Java中找到任何东西。我不想通过客户端id/密钥或证书来实现这一点

我希望Java中的某些东西接近于下面的.net代码

using Microsoft.Azure.KeyVault;
using Microsoft.Azure.Services.AppAuthentication;

AzureServiceTokenProvider azureServiceTokenProvider = new AzureServiceTokenProvider();
try
{
    var keyVaultClient = new KeyVaultClient(new KeyVaultClient.AuthenticationCallback(azureServiceTokenProvider.KeyVaultTokenCallback));
    var secret = await keyVaultClient.GetSecretAsync("https://abcded.vault.azure.net/secrets/secretname/").ConfigureAwait(false);
    ViewBag.Secret = $"Secret: {secret.Value}"; 
}
catch (Exception exp)
{
    ViewBag.Error = $"Something went wrong: {exp.Message}";
}
我们可以在Java中使用。请尝试使用以下代码

import com.microsoft.azure.AzureEnvironment;
import com.microsoft.azure.credentials.AppServiceMSICredentials;
import com.microsoft.azure.keyvault.KeyVaultClient;
import com.microsoft.azure.keyvault.models.KeyBundle;

AppServiceMSICredentials credentials = new AppServiceMSICredentials(AzureEnvironment.AZURE);
KeyVaultClient keyVaultClient = new KeyVaultClient(credentials);
keyVaultClient.getSecret("https://xxxx.vault.azure.net","secretName");
我们可以在Java中使用。请尝试使用以下代码

import com.microsoft.azure.AzureEnvironment;
import com.microsoft.azure.credentials.AppServiceMSICredentials;
import com.microsoft.azure.keyvault.KeyVaultClient;
import com.microsoft.azure.keyvault.models.KeyBundle;

AppServiceMSICredentials credentials = new AppServiceMSICredentials(AzureEnvironment.AZURE);
KeyVaultClient keyVaultClient = new KeyVaultClient(credentials);
keyVaultClient.getSecret("https://xxxx.vault.azure.net","secretName");