我无法弄清楚如何使用Java中的托管标识(MI / MSI)创建BlobClient或StorageAccount引用。创建和使用MI在存储上设置RBAC是很简单的,但我无法弄清楚如何在我的代码中使用它。
我以前使用KeyVault进行了这项工作,因为我在网上找到了更多其他人这样做的例子,最终它非常简单:
MSICredentials credentials = new MSICredentials(AzureEnvironment.AZURE);
KeyVaultClient kvClient = new KeyVaultClient(credentials);
但我找不到一个类似的存储类,它将MSICredentials作为参数,也找不到使用MSICredentials创建StorageCredentials的方法。
有没有其他人有这个工作或有任何好主意?
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的方式。