我不知道如何使用Java中的托管身份(MI / MSI)创建BlobClient或StorageAccount引用。创建和使用MI在存储上分配RBAC很简单,但是我无法弄清楚如何在我的代码中使用它。
我以前是通过KeyVault来完成这项工作的,因为我在网上发现了很多其他这样做的例子,并且最终确实很简单:
MSICredentials credentials = new MSICredentials(AzureEnvironment.AZURE);
KeyVaultClient kvClient = new KeyVaultClient(credentials);
但是我找不到类似的以MSICredentials作为参数的Storage类,也找不到使用MSICredentials创建StorageCredentials的方法。
其他人有没有做过这个工作或有什么好主意?
答案 0 :(得分:0)
Azure存储帐户还有一种从Java中的MSI进行身份验证的方法。只是与KeyVault不同。
它也显示在文档Azure AD Authentication for Azure Blobs and Queues now in public preview中。可以使用三种方法对Azure存储进行身份验证,请参见Credential in Azure Storage Java V10 Overview。
您应该首先使用MSI获取访问令牌,然后使用TokenCredentials进行身份验证。参见Getting a token for system assigned identity的方式。