来自非 Azure VM 的托管身份验证

Managed Identity Authentication from non Azure VM

我想从 Java 应用程序访问 Azure 密钥 Vault.I 想使用托管身份验证。 如果我理解正确的话,这个解决方案只能在 Azure 上使用 VM,而不能在 Microsoft 环境之外的服务器上使用。在这种情况下,我将不得不使用 ClientSecretCredential 通过 clientId、tenantId 和 secret 继续访问。 我是否理解正确,或者是否也可以在 Azure 以外的机器上使用托管身份验证?

这里有一些来源: https://github.com/Azure/azure-sdk-for-java/blob/azure-storage-blob_12.16.1/sdk/identity/azure-identity/README.md#authenticating-service-principals

https://github.com/Azure/azure-sdk-for-java/wiki/Azure-Identity-Examples#authenticating-in-azure-with-managed-identity

In this case I would have to proceed with access via clientId, tenantId and secret using ClientSecretCredential. Did I understand correctly or is it possible to use Managed Identity Authentication also on machines outside Azure?

是的,您仍然需要 clientIDtentantIDSecretClient 以及 DefaultAzureCredentialEnvironmentCredential 等环境变量。

例如,您可以参考这篇blog and 如何使用Azure Managed Identity访问其他云提供商的资源。