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

如何从Azure AD令牌请求的curl结果中提取access_token并赋值给变量?

提取Azure AD访问令牌并赋值给Bash变量

首先,你需要安装jq工具(大多数Linux发行版可通过包管理器安装,比如apt install jq或yum install jq),它是处理JSON输出的实用工具,能可靠解析字段值。

接下来可以把curl请求和JSON解析整合为一行命令,直接将access_token赋值给变量:

# 替换占位符为你的实际信息
TENANT_ID="<tenant-id>"
CLIENT_ID="<client-id>"
CLIENT_SECRET="<client-secret>"

# 获取并提取access_token
ACCESS_TOKEN=$(curl -s -X POST -H 'Content-Type: application/x-www-form-urlencoded' \
https://login.microsoftonline.com/${TENANT_ID}/oauth2/v2.0/token \
-d "client_id=${CLIENT_ID}" \
-d 'grant_type=client_credentials' \
-d 'scope=2ff814a6-3304-4ab8-85cb-cd0e6f879c1d%2F.default' \
-d "client_secret=${CLIENT_SECRET}" | jq -r '.access_token')

关键参数说明:

  • -s:让curl静默执行,不输出进度信息,只返回响应内容
  • jq -r '.access_token':-r参数表示输出原始字符串(不带JSON引号),直接得到令牌的纯文本值
  • 将敏感信息定义为变量,更便于维护和修改

后续使用示例:

拿到令牌后,可在后续REST请求中直接调用该变量,比如调用Databricks API:

curl -H "Authorization: Bearer ${ACCESS_TOKEN}" https://<databricks-instance>/api/2.0/clusters/list

如果环境无法安装jq,也可以用awk临时解析(但可靠性不如jq,仅适合简单场景):

ACCESS_TOKEN=$(curl -s ... | awk -F'"' '/access_token/ {print $4}')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:55:19