从Azure密钥库中获取秘密

时间:2019-09-03 02:42:03

标签: java azure spring-boot azure-keyvault secret-key

我正试图从蔚蓝的钥匙库中获取秘密。

所以我找到了下面的代码,但出现了错误。

AppServiceMSICredentials credentials = new AppServiceMSICredentials(AzureEnvironment.AZURE);

KeyVaultClient keyVaultClient = new KeyVaultClient(credentials);

String secret =  keyVaultClient.getSecret("uri", "secretName").value(); 

我遇到了这样的错误:

Error >>> endpoint == null

我也尝试过这种方式:


AppServiceMSICredentials credentials = new AppServiceMSICredentials(AzureEnvironment.AZURE, "MSI Url????", "secret???");
KeyVaultClient keyVaultClient = new KeyVaultClient(credentials);

String secret =  keyVaultClient.getSecret("keyVault Uri", "secret name").value(); 

log.debug("secret=========",secret);

我是Azure的新手,现在我找不到解决方案。...

我该如何解决? 另外我如何找到msi端点和机密?

谢谢。

1 个答案:

答案 0 :(得分:1)

您正在使用managed identity。您无需提供任何端点或机密。

您唯一需要做的就是enable system identity in your web app

之后,您将获得服务主体的对象ID。那么您可以在密钥库中为该服务主体分配访问策略。

最后,您可以在Spring Boot应用程序中访问密钥库和密钥。


更新

如果无法创建托管身份,则可以使用Azure AD库获取访问令牌。然后使用该令牌访问密钥库。

这是一个代码示例:

./gradlew build --stacktrace