我创建了一个简单的 Spring Boot 应用程序来从密钥库中检索机密。 我添加了以下依赖项来解决,
<dependency>
<groupId>com.azure.spring</groupId>
<artifactId>azure-spring-boot-starter-keyvault-secrets</artifactId>
<version>3.5.0</version>
</dependency>
并在 application.properties 中添加以下内容
azure.keyvault.enabled=true
azure.keyvault.uri=<URL>
#keys
mySecretProperty=secret
和我的主要应用程序,
@SpringBootApplication
public class KeyVaultSample implements CommandLineRunner {
@Value("${mySecretProperty}")
private String mySecretProperty;
public static void main(String[] args) {
SpringApplication.run(KeyVaultSample.class, args);
}
@Override
public void run(String... args) {
System.out.println("property your-property-name value is: " + mySecretProperty);
}
}
但是每次我尝试在本地运行上述应用程序时,它都会尝试使用 ManagedIdentityCredential 进行连接。所以我添加了一个配置类,用于使用 AzureCliCredential 为 SecretClient 创建一个 bean,但结果也是一样的。
我的配置类,
@Configuration
public class AppConfiguration {
@Bean
public SecretClient secretClient() {
AzureCliCredential az = new AzureCliCredentialBuilder().build();
SecretClient sec = new SecretClientBuilder().vaultUrl("<url>")
.credential(az).buildClient();
return sec;
}
}
我正在寻找可以在本地使用/测试此密钥库的方法。 是否可以在属性文件中放入任何配置,使其使用 AzureCliCredential 而不是 ManagedIdentityCredential?
答案 0 :(得分:0)
azure-spring-boot-starter-keyvault-secrets
使用 MSI/托管身份。
如果您想使用 Azure CLI 进行身份验证,只需使用 azure-identity
和 azure-security-keyvault-secrets
。
import { x } from ...