如何在 VM/VMSS 上为特定用户分配的标识获取 Azure MSI 访问令牌?

How to get an Azure MSI access token for a specific user assigned identity on a VM/VMSS?

我想将多个用户分配的托管服务标识分配给 Azure 中的 VM 规模集。我可以按照 the docs.

我还没有弄清楚的是如何为特定的 identity.The 请求令牌 requesting a token via the IMDS endpoint 的文档没有提及任何用于指定的请求参数,例如一个 clientId.

有什么线索吗?

基督徒,

您可以通过在请求中传入 client_id 或 object_id 来请求特定托管身份的令牌。例如:curl 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/&object_id=<USERASSIGNED_OBJECT_ID>' -H Metadata:true -s

我们的文档正在更新以正确包含此信息。感谢您的来信! :)

-阿图罗

以前的答案提供了正确的指针。

如果您使用 Azure SDK 编写代码,则可以使用 Azure.Identity 库和 DefaultAzureCredential 对象,如此处所述 - https://docs.microsoft.com/en-us/dotnet/api/overview/azure/identity-readme#specifying-a-user-assigned-managed-identity-with-the-defaultazurecredential