gpt4 book ai didi

java - 访问 Azure Key Vault 进行本地开发

转载 作者:行者123 更新时间:2023-12-02 23:16:02 27 4
gpt4 key购买 nike

我正在尝试使用本地服务主体凭据从本地访问 Azure Key Vault 以进行开发。

但 Azure SDK 似乎始终在检查 IMDS 连接(“169.254.169.254”)

我用来检索 secret 的代码:

SecretClient secretClient = new SecretClientBuilder()
.vaultUrl(keyVaultUri)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();

我还添加了以下变量作为环境变量:

  1. AZURE_CLIENT_ID
  2. AZURE_CLIENT_SECRET
  3. AZURE_TENANT_ID

有人可以帮我解决如何使用 java 中的服务原理从本地访问 Azure 资源(例如 key 保管库)

最佳答案

要使用服务主体在本地进行身份验证,只需使用 ClientSecretCredential .

示例:

import com.azure.identity.ClientSecretCredential;
import com.azure.identity.ClientSecretCredentialBuilder;
import com.azure.security.keyvault.secrets.SecretClient;
import com.azure.security.keyvault.secrets.SecretClientBuilder;
import com.azure.security.keyvault.secrets.models.KeyVaultSecret;

public class vacate {
public static void main(String[] args) {
String clientId="xxxxxx";
String clientSecret="xxxxxx";
String tenantId="xxxxxx";

ClientSecretCredential credential1 = new ClientSecretCredentialBuilder()
.tenantId(tenantId)
.clientId(clientId)
.clientSecret(clientSecret)
.build();

SecretClient secretClient = new SecretClientBuilder()
.vaultUrl("<your-key-vault-url>")
.credential(credential1)
.buildClient();

//do other things
}
}

实际上,我认为您使用的 DefaultAzureCredential 也应该可以工作,它会尝试在 following order 中创建有效的凭据。 ,如果你已经正确设置了环境变量,它应该可以工作,如果没有,只需像上面那样使用 ClientSecretCredential ,它就会工作。

关于java - 访问 Azure Key Vault 进行本地开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66564623/

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