我正试图从蔚蓝的钥匙库中获取秘密。
所以我找到了下面的代码,但出现了错误。
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端点和机密?
谢谢。
答案 0 :(得分:1)
您正在使用managed identity。您无需提供任何端点或机密。
您唯一需要做的就是enable system identity in your web app。
之后,您将获得服务主体的对象ID。那么您可以在密钥库中为该服务主体分配访问策略。
最后,您可以在Spring Boot应用程序中访问密钥库和密钥。
更新:
如果无法创建托管身份,则可以使用Azure AD库获取访问令牌。然后使用该令牌访问密钥库。
这是一个代码示例:
./gradlew build --stacktrace