You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在自动化账户中使用用户选定的托管标识获取Databricks访问令牌

为托管标识请求访问令牌的方法

托管标识属于特殊类型的服务主体,它没有可手动导出的client_secret,因此无法直接套用服务主体的client_credentials授权流程。需要通过Azure提供的专属机制获取令牌,常见场景如下:

1. 在Azure资源内部运行时(如VM、App Service、Function等)

使用**Azure实例元数据服务(IMDS)**的专属端点请求令牌,这是生产环境中最常用的方式,无需手动配置任何凭据:

请求示例(curl)

curl -H "Metadata: true" \
"http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/"

参数说明

  • Metadata: true:必须添加的请求头,用于验证请求来自Azure资源内部
  • resource:指定目标服务的资源ID(例如Azure管理API为https://management.azure.com/,需根据实际访问需求替换)
  • 若使用用户分配的托管标识,需额外添加client_id参数指定标识ID:
    curl -H "Metadata: true" \
    "http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/&client_id=<你的用户分配托管标识ID>"
    

2. 本地开发/测试场景

如果需要在本地模拟托管标识获取令牌,可以使用Azure CLI快速实现:

步骤1:登录并切换到目标订阅

az login
az account set --subscription <你的订阅ID>

步骤2:获取访问令牌

# 系统分配托管标识
az account get-access-token --resource https://management.azure.com/

# 用户分配托管标识,需指定标识ID或名称
az account get-access-token --resource https://management.azure.com/ --identity <用户分配托管标识ID/名称>

3. 代码中集成托管标识

推荐使用Azure官方SDK(如Azure.Identity库),它会自动适配运行环境,无需手动调用IMDS端点:

C#示例

using Azure.Identity;
using Azure.Core;

var credential = new DefaultAzureCredential();
var tokenRequestContext = new TokenRequestContext(new[] { "https://management.azure.com/.default" });
AccessToken token = await credential.GetTokenAsync(tokenRequestContext);

说明

DefaultAzureCredential会自动检测运行环境:在Azure资源内部时使用托管标识,在本地时使用Azure CLI、Visual Studio等已登录的凭据,适配跨环境开发需求。


内容的提问来源于stack exchange,提问作者Ken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:22:14