尝试检索托管服务身份凭据时,Azure Java程序会阻塞

时间:2019-01-10 15:24:02

标签: azure azure-active-directory azure-java-sdk

我已为Azure Linux服务器启用了系统生成的托管服务身份,并且还授予了此VM对密钥保管库的访问权限。我已经通过在命令行上使用curl来检索令牌,然后使用令牌从Vault检索机密来验证此方法是否有效。

我需要在Java程序中执行相同的任务,但是当前的方式是阻止。这是我从另一个Stackoverflow帖子中提取的代码:

    LOGGER.debug("Getting credentials through Managed Service Identity");
    AppServiceMSICredentials credentials = new AppServiceMSICredentials(AzureEnvironment.AZURE);
    LOGGER.debug("Credentials acquired");
    KeyVaultClient keyVaultClient =  new KeyVaultClient(credentials);
    LOGGER.debug("Key Vault client created");

代码行试图获取凭据,因此我在日志中看到的只是“通过托管服务标识获取凭据”。

这是获取凭据的正确方法吗? 如果是这样,为什么这条线阻塞了?